WOL介绍
WOL是Intel 和IBM在1997年推出的一种技术
处于同一个局域网内的设备,可以发送一个Magic packet包来唤醒局域网内另外一个设备
Magic packet有2种形式
1、 使用udp报文(ubuntu里面wakeonlan程序是发这种报文)
这种报文会发送一个二层的广播报文,即目的mac地址是FF:FF:FF:FF:FF:FF
UDP层的负载内容是ff*6+要唤醒的设备的mac地址*16 一共102个字节

2、使用纯2层报文(ubuntu里面的etherwake程序、爱快路由器的网络唤醒功能 是发这种报文)
这种报文的二层的type类型是0x0842

使用WOL唤醒局域网内电脑
1、首先要确认网卡是支持WOL的

在控制面板>硬件和声音>设备管理器里面找到网卡设备,

在网卡属性里面 确认关机 网络唤醒是开启的

确认魔术封包唤醒是开启的

在网卡属性的电源管理里面勾选 允许此设备唤醒计算机
2、在主板的BIOS设置里面把WOL相关的设置打开
我的电脑主板是微星的,参考微星给的步骤(其他主板的厂商也有相应的文档)
https://www.msi.com/support/technical_details/MB_Wake_On_LAN(这里面主要有下面3步)
把windows的快速启动关闭
[ SETTINGS ] → [ Advanced ] → [ Power Management Setting ] → [ ErP Ready ] → [ Disable ].
[ SETTINGS ] → [ Advanced ] → [ Wake-up event settings ] → [ Resume By PCI-E Device ] → [ Enable ]
把Resume By PCI-E Device 设置为Enable的作用是电脑关机后,只要不拔掉电源线,是会维持PCIE设备的电压的,网卡是PCIE设备,会监听是否收到了magic packet,如果收到了,会给主板一个开机信号,
3、我的网络拓扑是这样的

网络拓扑
4、记下电脑网卡的mac地址,安卓手机安装一个WakeOnLan的APP
可以从github上面下载https://github.com/Florianisme/WakeOnLan

打开软件后先扫描同局域网内的设备,根据IP地址找到要唤醒的电脑

进入add device界面,name随便填,mac地址填要唤醒的电脑的mac地址,因为macgic packet报文里面是包含了被唤醒的电脑的mac地址的,不填mac地址无法发送magic packet报文

添加后在设备页面可以看到有个绿色的点,表示设备现在是开机的
5、关机,然后按turn on 按钮开机

红色的点表示关机

网络唤醒后,绿色点代表开机了