Wake on Lan on Linux
linux上
reference https://help.ubuntu.com/community/WakeOnLan
ifconfig看网卡
1 | enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 |
找到所在局域网的网卡名称和MAC
sudo ethtool <ifname>
注意这两行
1 | Supports Wake-on: *** |
如果显示d就说明被禁用了,使用sudo ethtool -s enp3s0 wol g
来启用。
Enable on every booting
不过这每次shutdown后WOL功能都会关闭,需要每次boot都操作一遍很麻烦,这里创建一个system service来enable WOL。
vim /etc/systemd/system/[email protected]
1 | [Unit] |
systemctl enable wol@<ifname>
接下来可以通过 systemctl status wol@<ifname>
来查看状态。
你的个人机器上
安装wakeonlan
首先试试在局域网内wake,wakeonlan <MAC_ADDR>
成功唤醒,抓包
然后试试从WAN唤醒
先看linux主机公网IP nslookup xhzq233.tpddns.cn
在路由器添加规则将magic pkt转发到linux主机。
1 | wakeonlan -i <WAN_IP> -p <OPEN_PORT> <MAC_ADDR> |
成功,结束,(需要注意每次断电WOL服务都会失效)。