603 字
3 分钟
[配置] WOL 远程唤醒
Wake-on-LAN (WOL) 是一项允许通过网络消息(Magic Packet)将计算机从低功耗状态(睡眠、休眠或关机)唤醒的技术,本文将记录在 Linux 环境下配置网卡 WOL 的完整过程
1. 确认硬件支持
在开始之前,首先需要确认你的网卡硬件是否支持 WOL 功能
NOTE我们需要使用
ethtool工具来查看网卡状态,如果系统中未安装,可以通过包管理器安装:sudo apt install ethtool(Ubuntu/Debian) 或sudo pacman -S ethtool(Arch Linux)
使用以下命令检查网卡信息(请将 eth0 替换为你实际的网卡名称):
sudo ethtool eth0查看输出中的以下两行:
- Supports Wake-on: 如果包含
g,说明硬件支持 Magic Packet 唤醒 - Wake-on: 如果显示
d(Disabled),表示当前已禁用;如果显示g,表示已开启
2. 临时开启 WOL
你可以使用以下命令立即开启 WOL,但该设置在重启后会失效:
sudo ethtool -s eth0 wol gTIP开启后再次运行
sudo ethtool eth0确认Wake-on状态已变为g
3. 永久生效配置
由于 ethtool 的设置在重启后会被重置,我们需要通过以下方式之一使其持久化
方法 A:使用 NetworkManager (推荐)
如果你的系统使用 NetworkManager 管理网络,这是最简单的方法:
# 查看所有连接名称nmcli connection show
# 修改指定连接开启 wol (假设连接名为 'Wired connection 1')nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic方法 B:使用 Systemd 服务
如果方法 A 不适用,可以创建一个 systemd 服务在开机时自动执行
注意请确保将脚本中的
eth0替换为你真实的网卡名称
- 创建服务文件
/etc/systemd/system/wol.service:
[Unit]Description=Enable Wake Up on LANAfter=network-online.target
[Service]Type=oneshotExecStart=/usr/sbin/ethtool -s eth0 wol g
[Install]WantedBy=multi-user.target- 启用并启动服务:
sudo systemctl enable wol.servicesudo systemctl start wol.service4. BIOS/UEFI 设置
CAUTION即使在操作系统中配置完成,如果 BIOS/UEFI 中禁用了相关选项,WOL 仍无法工作
请进入 BIOS 检查并开启以下类似选项:
Wake on LANResume by PCI-E DeviceAllow PCI-E Wake Up- 确保关闭
ErP Ready(如果开启了 ErP,关机后网卡将完全断电导致无法唤醒)
验证
在另一台设备上,你可以使用 wakeonlan 工具测试:
# 格式:wakeonlan [目标MAC地址]wakeonlan AA:BB:CC:DD:EE:FFip link show 或 ifconfig 查看网卡的 MAC 地址