BIOS/UEFI 层级配置
这是所有设置的前提。如果硬件层关闭,系统层做再多努力也无效。
- 进入 BIOS:通常是开机连续按
Del或F2。 - 电源管理设置 (Power Management):
- Wake On LAN 或 Resume By PCI-E Device:设为 Enabled。
- ErP Ready:设为 Disabled(这是关键!ErP 开启会将待机功耗降至 0.5W 以下,直接切断网卡电源)。
- Deep Sleep:设为 Disabled。
操作系统设置
、 Windows 操作系统配置
Windows 默认倾向于在关机时“彻底休眠”,这有时会干扰网卡状态。
1. 网卡属性设置
- 右键“此电脑” -> 管理 -> 设备管理器。
- 找到你的网卡(如 Realtek 或 Intel Ethernet),右键 -> 属性。
- 高级选项卡:找到 “Wake on Magic Packet”,设为 Enabled。
- 电源管理选项卡:
- 勾选“允许计算机关闭此设备以节约电源”。
- 勾选“允许此设备唤醒计算机”。
- 勾选“只允许幻数据包唤醒计算机”。
2. 关闭快速启动 (Fast Startup)
Windows 的快速启动会将系统进入一种特殊的休眠态,有时会导致网卡驱动不响应 WOL。
- 控制面板 -> 电源选项 -> 选择电源按钮的功能 -> 取消勾选“启用快速启动”。
Linux 操作系统配置
由于你遇到 Linux 下失效的问题,这里是重点。Linux 的电源管理策略通常比 Windows 更保守。
1. 使用 ethtool 手动开启
使用 ip address 命令查看网卡名称:
sudo ip address检查状态(假设网卡名为 eth0):
Bash
sudo ethtool eth0 | grep Wake-on- 如果
Wake-on: d,说明被禁用。 - 执行开启命令:
sudo ethtool -s eth0 wol g
2. 持久化设置 (防止重启失效)
单纯执行命令重启后会重置。作为程序员,建议通过 NetworkManager 或 Systemd 解决。
方法 A:NetworkManager (推荐)
# 查看连接 ID
nmcli connection show
# 开启 WOL (替换 'Wired connection 1' 为你的连接名)
nmcli connection modify "Wired connection 1" 802-3-eth.wake-on-lan magic方法 B:Systemd Service (最彻底) 如果 NM 不管用,创建一个服务在关机前强制开启: 创建 /etc/systemd/system/wol.service:
[Unit]
Description=Enable Wake On Lan
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/ethtool -s eth0 wol g
[Install]
WantedBy=multi-user.target然后启用它:sudo systemctl enable wol.service。