必须同时满足硬件支持、BIOS启用、内核驱动识别和系统级配置四个条件;先用ip命令查网卡名,再用sudo ethtool 网卡名 | grep -i "wake|supports"确认Supports Wake-on: g且Wake-on: d,然后sudo ethtool -s 网卡名 wol g启用,最后通过systemd服务或nmcli等方法设为永久生效,并在BIOS中启用WOL且禁用ErP/EuP模式。

要在Linux系统中让关机状态下的电脑能被局域网内发送的魔术包唤醒,必须同时满足硬件支持、BIOS启用、内核驱动识别和系统级配置四个条件,缺一不可。
确认网卡是否支持WOL并查看当前状态
先用ip命令找出你实际使用的有线网卡名,例如:ip -br a | grep UP,常见名字有enp0s31f6、eno1、eth0等。
执行命令查看网卡WOL能力:sudo ethtool 网卡名 | grep -i "wake\|supports"。
重点看两行输出:【Supports Wake-on: g】 表示硬件支持魔术包唤醒;【Wake-on: d】 表示当前禁用,需手动开启;若显示g则已启用,跳过下一阶段。
注意:如果Supports Wake-on字段为空或只有d,说明该网卡不支持WOL,换物理网卡或查主板手册。
临时启用WOL(重启失效)
执行命令启用魔术包唤醒模式:sudo ethtool -s 网卡名 wol g。
这一步仅在当前运行状态下生效,关机后会丢失。验证是否成功:sudo ethtool 网卡名 | grep "Wake-on:",输出应为Wake-on: g。
若提示No such device,说明网卡名错误或驱动未加载;若提示Operation not supported,说明内核模块或固件不支持该功能。
让WOL设置永久生效
方法一:使用systemd服务(推荐,兼容所有主流发行版)
创建服务文件:sudo nano /etc/systemd/system/wol@.service。
写入以下内容(注意%I会自动替换为网卡名):
[Unit]
Description=Enable Wake-on-LAN for %I
After=network.target
[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s %I wol g
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
启用服务:sudo systemctl daemon-reload → sudo systemctl enable wol@网卡名.service → sudo systemctl start wol@网卡名.service。
方法二:通过NetworkManager连接配置锁定(仅适用于使用nmcli管理网络的系统)
执行:sudo nmcli connection modify "连接名称" 802-3-ethernet.wake-on-lan ignore。
这条命令告诉NetworkManager不要在连接启停时重置WOL状态,否则它可能把wol g覆盖回d。
方法三:修改Netplan(Ubuntu 20.04+ 使用此方式)
编辑/etc/netplan/*.yaml,在对应网卡段添加wakeonlan: true,例如:
ethernets:
eno1:
dhcp4: true
wakeonlan: true
保存后执行:sudo netplan apply。
BIOS/UEFI与主板供电检查
进入BIOS/UEFI设置,查找“Wake on LAN”、“PME Event Wake Up”、“Resume by PCI/PCI-E Device”等类似选项,设为Enabled。
部分主板需同时开启“ErP Ready”或“EuP 2013”电源模式——【务必关闭ErP/EuP模式,否则关机后网口断电,WOL彻底失效】。
插上网线,关机后观察网口指示灯:若仍有一盏常亮或缓闪(非完全熄灭),说明PHY芯片保持供电,硬件层准备就绪。
测试唤醒是否成功
在另一台局域网内的Linux机器上安装wakeonlan工具:sudo apt install wakeonlan(Debian/Ubuntu)或sudo dnf install net-tools(Fedora)。
获取目标机器网卡MAC地址:ip link show 网卡名 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'。
执行唤醒命令:wakeonlan MAC地址,例如:wakeonlan aa:bb:cc:dd:ee:ff。
若目标机器在关机状态下几秒内启动,说明WOL配置完成。


















