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 替换为你实际的网卡名称):

Terminal window
sudo ethtool eth0

查看输出中的以下两行:

  • Supports Wake-on: 如果包含 g,说明硬件支持 Magic Packet 唤醒
  • Wake-on: 如果显示 d (Disabled),表示当前已禁用;如果显示 g,表示已开启

2. 临时开启 WOL#

你可以使用以下命令立即开启 WOL,但该设置在重启后会失效:

Terminal window
sudo ethtool -s eth0 wol g
TIP

开启后再次运行 sudo ethtool eth0 确认 Wake-on 状态已变为 g

3. 永久生效配置#

由于 ethtool 的设置在重启后会被重置,我们需要通过以下方式之一使其持久化

方法 A:使用 NetworkManager (推荐)#

如果你的系统使用 NetworkManager 管理网络,这是最简单的方法:

Terminal window
# 查看所有连接名称
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 替换为你真实的网卡名称

  1. 创建服务文件 /etc/systemd/system/wol.service:
[Unit]
Description=Enable Wake Up on LAN
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/ethtool -s eth0 wol g
[Install]
WantedBy=multi-user.target
  1. 启用并启动服务:
Terminal window
sudo systemctl enable wol.service
sudo systemctl start wol.service

4. BIOS/UEFI 设置#

CAUTION

即使在操作系统中配置完成,如果 BIOS/UEFI 中禁用了相关选项,WOL 仍无法工作

请进入 BIOS 检查并开启以下类似选项:

  • Wake on LAN
  • Resume by PCI-E Device
  • Allow PCI-E Wake Up
  • 确保关闭 ErP Ready(如果开启了 ErP,关机后网卡将完全断电导致无法唤醒)

验证#

在另一台设备上,你可以使用 wakeonlan 工具测试:

Terminal window
# 格式:wakeonlan [目标MAC地址]
wakeonlan AA:BB:CC:DD:EE:FF

小技巧:你可以通过 ip link showifconfig 查看网卡的 MAC 地址

[配置] WOL 远程唤醒
https://www.eustia-astraea.top/posts/configs/wake-on-lan-linux-config/
作者
mcsl
发布于
2026-01-11
许可协议
CC BY-NC-SA 4.0