经常做过Wol远程唤醒,但没细究过里面的设置,这里归纳一下如何设置以及为什么要这样设置,以一台Windows10的机器为例子

首先我们需要更改BIOS设置,大部分情况下只需要注意打开有以下关键字的选项为Enabled状态即可

  • Wake on lan

其次是开机后在Windows10里,按Win+X打开快捷菜单,按M打开设备管理器,找到网络设配器并展开,选择你的网卡,有线网卡通常是Realtek开头的,右键打开属性对话框,选择选项卡电源管理

勾选如下两个选项

  • 允许计算机关闭此设备以节约电源(这里可以理解为接管网卡电源)
  • 允许此设备唤醒计算机

可选选项

  • 只允许幻数据包唤醒计算机(不勾选则任何数据包都可以激活你的电脑,勾选则只允许魔术包激活你的计算机)

再选中高级选项卡,查看以下两个值,确保是 Enabled状态

  • Wake on Magic Packet
  • Wake on pattern match

确保下面这个选项是 Disabled状态(有些计算机没有这个选项也很正常,注意,此选项若是启用,则在关机一段时间后无法唤醒)

  • Wake on lan after shutdown

关机后,查看网口提示灯是否亮着,如果亮着则说明设置成功,但请注意如果网口提示灯没有亮并不代表失败!

有些机型是默认设置即使开启WOL唤醒网口提示灯也不会亮的,我们需要尝试使用唤醒计算机来最终确认是否设置成功

发送WOL包的方法很多,这里以Ubuntu 18.04为例子,安装etherwake并发送wol包

chancel@chancel-nas ~ » sudo apt install etherwake                                                                                                                                      100 ↵ Reading package lists... Done
Building dependency tree
Reading state information... Done
...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
chancel@chancel-nas ~ » ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 70:85:c2:82:20:27 brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.11/24 brd 192.168.11.255 scope global enp1s0
       valid_lft forever preferred_lft forever
    inet6 fe80::7285:c2ff:fe82:2027/64 scope link
       valid_lft forever preferred_lft forever
chancel@chancel-nas ~ » sudo etherwake -i enp1s0 -b 3C:97:3E:E0:01:DC