WOL(Wake On Lan)是一种通过网络唤醒电脑的方式,一般在局域网内,通过使用广播地址发送魔术包的方式,使得关机或者休状态的计算机转变成引导或者运行状态。但是过在复杂的环境里,比如在外网唤醒内网的计算机,由于路由器都不转发目的地址为有限广播地址的数据包,需要使用子网定向广播地址,使用路由器的DDNS和端口转发来实现。
WOL需要几个必须的条件:
- 需要知道目标计算机MAC地址
- 需要硬件进行支持
局域网内的唤醒对于个人用户似乎意义不大,我们更关心的是在外网远程唤醒家里的电脑。我们可以这么做。
确认计算机的网卡支持网络唤醒(WOL)
主流的电脑应该都是支持的,除非是古董机,最好的方式就是进入BIOS,找到和网卡相关的配置选项,确认开启WOL(不同主板可能有细微区别,根据自己的主板型号搜索)。
获取网卡的MAC地址
以Windows为例,在命令提示符中输入ipconfig /all
即可查询系统所有网卡的信息,找到你想用作唤醒网口的网卡,记下它的MAC。
开启端口映射
魔术包默认发送至网卡的9端口,在路由器端口映射添加一条映射规则,外部端口随意(例如我设置为9999),内部IP填写你想要唤醒的计算机的IP,端口填写9,协议为UDP协议。
添加ARP绑定
为什么要添加这个绑定?原因和端口映射有关,因为家用的路由器大部分只支持IP地址映射,不支持MAC映射,我们一开始也说过,我们的唤醒魔术包是要通过MAC地址发送给网卡的,只配置了端口映射,在目标计算机没有开机或者休眠的情况下,是无法通过IP地址定位的。添加了ARP绑定之后,就可以理解为:唤醒数据包 -> 外网IP:9999 -> 内网IP:9 -> 主机MAC:9。我们绑定的就是内网IP和主机MAC。这样数据包就可以通过ARP列表找到主机所在了。
配置DDNS
为什么要配置DDNS?因为家用宽带大部分都是动态的公网IP(可能更多的人甚至都没有公网IP),我们不可能记住每次更新的IP,所以需要一个域名解析到这个公网IP,因为IP是会变的,所以DDNS才叫做动态域名解析服务。
通过DDNS(公网IP)发送唤醒数据包
手机可以安装WOL软件,大同小异,不做推荐。在外网唤醒的时候在配置里要使用指定的IP,而不是广播地址,这一点要注意。
这里推荐一个网站,WOL远程唤醒,只需要填写IP地址,映射的端口,以及内网主机的MAC地址即可进行远程唤醒。
后记:之所以折腾这个,是因为我经常使用远程连接访问家里的电脑,以前的做法是24小时开机,其实还是有点浪费电的,不过也没出过什么问题。直到有一天,我一不小心点了关机,然后就傻了。这种时候就很想瞬移到家里给它开个机,现在有了WOL,终于实现了这个梦想。