Skip to content

Linux | Wake-on-LAN 配置

约 727 字大约 2 分钟

Linux

2021-04-01

Wake-on-LAN(WOL)允许你通过网络唤醒一台处于关机状态的计算机,只要该设备的硬件支持且仍处于供电状态(例如关机后主板灯亮)。


📋 教程概要

  • 启用主板 BIOS 设置
  • 在 Debian 系统中配置网卡支持 WOL
  • 使用 wakeonlan 工具从另一台设备发送魔术唤醒包

🔧 第一步:启用 BIOS 中的 Wake-on-LAN 设置

  1. 重启电脑并进入 BIOS/UEFI(一般是按 DelF2
  2. 查找类似下列的设置项,并启用它们:
    • Power Management > Wake on LAN
    • Advanced > Wake on PCI-EResume by LAN
  3. 确保选项设置为 Enabled
  4. 保存并退出 BIOS

🌐 第二步:在 Debian 中启用网卡 Wake-on-LAN

1. 确认网卡名称

使用以下命令查看网卡名称(假设为 eth0,你可能看到的是 enp3s0 等):

ip link

2. 查看当前 WOL 支持情况

sudo ethtool eth0

查找输出中以下内容:

Supports Wake-on: pumbg
Wake-on: d
  • Supports Wake-on 显示网卡支持的唤醒模式
  • Wake-on: d 表示目前已禁用 WOL,我们需要启用为 g(magic packet)

3. 临时启用 Wake-on-LAN

sudo ethtool -s eth0 wol g

这将在当前会话中启用 WOL,但重启后会失效。


4. 开机自动启用 Wake-on-LAN

使用 Systemd 服务自动设置

创建一个 systemd 服务:

sudo nano /etc/systemd/system/wol@.service

写入以下内容:

[Unit]
Description=Enable Wake-on-LAN on interface %i
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s %i wol g

[Install]
WantedBy=multi-user.target

保存并关闭,然后启用服务(替换 eth0 为实际网卡名称):

sudo systemctl enable wol@eth0.service

🧪 第三步:获取 MAC 地址

使用以下命令获取网卡的 MAC 地址:

ip link show eth0

查找 link/ether

link/ether 00:1a:2b:3c:4d:5e brd ff:ff:ff:ff:ff:ff

记录该地址,稍后将用于发送魔术包。


📦 第四步:安装并使用 Wake-on-LAN 客户端工具

1. 使用 apt 安装 wakeonlan 工具

sudo apt update
sudo apt install wakeonlan

2. 使用 wakeonlan 命令唤醒目标主机

wakeonlan -i 192.168.6.255 -p 9 00:1a:2b:3c:4d:5e

请将上面的 MAC 地址替换为你目标主机的真实 MAC 地址。

这个命令需要在 同一个局域网内的其他计算机 上运行。


🚧 第五步:常见问题与排查

问题描述排查建议
BIOS 中没有 Wake-on-LAN 选项查看是否有 Wake on PCI-EPower on by LAN 类似选项
Debian 重启后设置失效确保已启用 systemd 的 WOL 服务
魔术包发送后无效确保设备关机后仍有供电(主板指示灯亮),网线连接正常
防火墙或路由器阻止广播包确保 UDP 广播端口(通常为 9)未被阻断

🧾 参考链接

更新日志

2025/6/15 11:14
查看所有更新日志
  • 13186-initial