- 发布于
网络唤醒(WOL)完全指南
- 作者

- 姓名
- Corner430
- 社交账号

1 概述
网络唤醒(Wake-on-LAN,简称 WOL)是一种通过网络远程开启计算机的技术。其原理是:当计算机处于关机或休眠状态时,网卡仍然保持微弱供电并监听网络流量。当网卡收到一个特殊的**魔术包(Magic Packet)**时,会向主板发送信号,触发计算机开机。
魔术包是一个包含目标网卡 MAC 地址的特殊数据包,由 6 个 0xFF 字节后跟 16 次重复的目标 MAC 地址组成。只要网卡、主板和操作系统都正确配置了 WOL 支持,就可以从局域网甚至互联网远程唤醒计算机。
要实现 WOL,需要满足以下条件:
- 主板支持:BIOS/UEFI 中启用了 WOL 相关选项
- 网卡支持:有线网卡支持 WOL(绝大多数有线网卡都支持)
- 操作系统配置:在 OS 层面启用了网卡的 WOL 功能
- 唤醒端:有设备能够发送魔术包(如路由器、另一台电脑等)
2 BIOS 设置
这是 WOL 的基础,必须首先在 BIOS/UEFI 中启用唤醒功能:
- 开机时按
Del、F2或对应按键进入 BIOS 设置界面 - 找到电源管理(Power Management)相关选项
- 将以下选项设为 Enabled(不同主板名称可能不同):
Wake on LAN/Wake on PCI/PCIEPower On By PCI-E/Power On By PCIE DeviceResume by LAN/Resume on LAN
- 部分主板还需要设置关机后网卡供电:
ErP Ready设为 Disabled(ErP 节能模式会切断关机后的网卡供电)- 或确保
Deep Sleep设为 Disabled
- 保存并退出 BIOS
如果 BIOS 中找不到相关选项,请查阅主板说明书或搜索对应主板型号的 WOL 设置方法。
3 Windows 端配置
在 Windows 系统中,需要在网络适配器属性中启用 WOL:
- 右键点击「开始」菜单,选择「设备管理器」
- 展开「网络适配器」,找到有线网卡(如 Intel I219-V、Realtek PCIe GbE 等)
- 右键点击网卡 → 「属性」→ 切换到「高级」选项卡
- 在属性列表中找到并启用以下项目:
- Wake on Magic Packet → 设为
Enabled - Wake on Pattern Match → 设为
Enabled(可选) - Energy Efficient Ethernet → 设为
Disabled(部分网卡需要关闭)
- Wake on Magic Packet → 设为
- 切换到「电源管理」选项卡,勾选以下选项:
- 允许此设备唤醒计算机
- 只允许幻数据包唤醒计算机
此外,还需确保 Windows 电源设置不会阻止 WOL:
- 打开「控制面板」→「电源选项」→「选择电源按钮的功能」
- 点击「更改当前不可用的设置」
- 取消勾选「启用快速启动」(快速启动可能导致 WOL 不生效)
4 Ubuntu/Linux 端配置
4.1 安装 ethtool
sudo apt install ethtool
4.2 检查网卡是否支持 WOL
查看网络接口名称:
ip addr
找到有线网卡接口名(常见如 eth0、enp2s0、eno1 等),检查 WOL 支持:
sudo ethtool <interface>
在输出中查找 Wake-on 行:
Wake-on: d— 网卡支持 WOL,但当前处于禁用状态Wake-on: g— WOL 已启用(g 代表 magic packet)
4.3 激活 WOL
sudo ethtool -s <interface> wol g
执行后再次确认:
sudo ethtool <interface>
此时 Wake-on 的值应变为 g。
4.4 创建 systemd 服务(持久化 WOL)
ethtool 命令在每次重启后会失效,需创建 systemd 服务:
sudo vim /etc/systemd/system/wol.service
[Unit]
Description=Wake-on-LAN Configuration
After=network.target
[Service]
ExecStart=/usr/sbin/ethtool -s enp2s0 wol g
[Install]
WantedBy=default.target
请将
enp2s0替换为实际的网络接口名。
启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable wol.service
sudo systemctl start wol.service
重启后验证:
sudo systemctl status wol.service
sudo ethtool enp2s0 | grep Wake-on
5 OpenWrt 发送唤醒包
5.1 安装 etherwake
opkg update
opkg install etherwake
5.2 发送唤醒命令
# -i 指定 LAN 口接口(通常是 eth1 或 br-lan)
etherwake -i br-lan AA:BB:CC:DD:EE:FF
5.3 通过 LuCI 网页界面发送
- 登录 OpenWrt 管理界面(LuCI)
- 导航到「服务」→「网络唤醒」
- 选择目标设备的 MAC 地址或手动输入
- 点击「唤醒」按钮
如果 LuCI 中没有此选项,需安装
luci-app-wol:opkg install luci-app-wol
6 防火墙与端口转发(远程唤醒)
默认情况下 WOL 只能在局域网内使用。从外网远程唤醒需要在路由器上配置端口转发。
6.1 开启 OpenWrt 外网访问
- 登录 OpenWrt 管理界面
- 进入「网络」→「防火墙」→「端口转发」
- 添加规则,将外网端口转发到 OpenWrt 管理端口
- 保存并应用
建议使用 HTTPS 并修改默认端口以提高安全性。
6.2 配置 WOL 端口转发
WOL 魔术包默认使用 UDP 端口 9。配置端口转发规则:
- 协议:UDP
- 外部端口:9(或自定义端口)
- 内部 IP 地址:
255.255.255.255(广播地址) - 内部端口:9
6.3 远程唤醒方式
- SSH 到路由器:登录 OpenWrt 后执行
etherwake命令 - 在线 WOL 工具:部分网站提供在线发送魔术包的功能
- 手机 App:如 Wake On Lan(Android/iOS),填入公网 IP 和 MAC 地址
如果没有公网 IP,可配合 DDNS 或内网穿透工具(如 frp、ZeroTier)实现远程访问。
版权声明
- 作者: Corner430
- 标题: 网络唤醒(WOL)完全指南
- 链接: https://corner430-ai-blog.vercel.app/blog/网络唤醒WOL完全指南
- 许可协议: CC BY-NC-SA 4.0
除非另有说明,本文内容采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处。