首先确保几个重要的关键点:
1、机器bios开启Wake On LAN
2、网卡支持WOL唤醒模式
3、确保操作系统关机后网卡处于待唤醒状态(重要关注点)
第3点是最容易卡壳的地方,需要记住2个命令:ifconfig,ethtool(如果系统没有这两个命令先安装它)
首先用ifconfig查看需要唤醒的网卡接口名称,一般是eth0,enp0s25等之类的
然后用”ethtool 网卡接口名称”查看网卡的相关配置,比如:#ethtool enp0s25
找到以下字段:
Supports Wake-on: pumbg
Wake-on: g
若Wake-on为g,表示网卡已经启用网络唤醒,若为d,表示禁用Wake On LAN,需要用以下指令启用它。
# ethtool -s eth0 wol g
再次查看Wake-on状态,变成了g就OK了。
但是这里有个问题,有时候重启机器后Wake-on状态又会变成d,我的办法是把
ethtool -s eth0 wol g 这条指令加入开机启动,这样保证每次关机的时候是启用唤醒的。
关于外网唤醒
如果内网唤醒没有问题了,想要在外网通过wol来唤醒内网的机器,需要做端口转发,转发端口号用7和8,这里还要注意一个问题,如果关机的时间长了以后,路由器的arp表里面会自动删除要唤醒机器的MAC地址,那么外网转发进来的唤醒数据包就不会发送到指定的网卡接口,所以在路由器需要做arp绑定,
比如:arp -s 192.168.31.11 00:1D:72:92:07:02
同样的,建议把这条指令加入路由器启动列表里面,确保路由器重启后绑定信息不会失效。
恭喜你,完成以上配置后,你的机器几乎可以在任何时候任何地方唤醒了。