Wake-On-LAN 简称WOL,顾名思义,可以实现在局域网(LAN)中唤醒关机了的设备。
我前些年配了一台MINI-ITX主板的小机器,然后放在桌子底下,每次都要去弯腰去开机很麻烦,主板又不支持键盘开机,所以想到了用Wake-On-LAN去开机。
一番折腾之后,当处于同一个局域网时,可以直接点手机开机,再也不用去机箱上按电源键了。更进阶一点,甚至可以在异地远程开机并使用Windows自带的远程桌面进行操控,着实非常方便。
想要实现设备的Wake-On-LAN有以下几个要点:
- 主板BIOS设置中开启网络唤醒开关;
- 路由器开DHCP服务,设置ARP绑定,把设备的IP固定下来并与其MAC地址绑定;
- 操作系统里设置为自动获取IP
BIOS设置
现在的主板BIOS都比较人性化,大多数还有中文,所以依次浏览,看见“Wake On LAN”或“网络唤醒”的选项,就打开然后保存重启即可。
以下以微星主板举例:
电脑重启,在启动的过程中,连续按 Del 键( Delete键) ,进入主板的BIOS设置,点击Advanced (高级模式)或直接按 F7 键。
进入高级 – 整合周边设备 – 网卡ROM启动,设置为允许
进入高级 – 电源管理设置 – Erp,设置为禁止
进入高级 – 唤醒事件设置 – PCIE 设备唤醒和网络唤醒,设置为允许
最后,完成所有的设置之后,按 F10 键,保存BIOS并退出即可
各种主板进BIOS的按键会有差别,可以自行网络搜索或查看主板说明书。
自动获取IP
大部分的路由器在默认情况下,Windows网络都设置为自动获取IP地址,如果你不确定,可以进入 控制面板->网络连接 (win10 设置 – 网络和互联网 – 变更适配器选项)在当前的网络连接处右键点“属性”,双击“TCP/IPv4”查看是否为自动获取。如果不是,则设置为自动获取IP即可。
极为特殊的情况下,假如设置为自动获取IP之后无法连接互联网,甚至无法获取局域网ip地址,那进一步检查路由器设置,查看路由器是否在提供DHCP服务,开启路由器的DHCP后,自动获取IP才能正常。
Windows 8.1 / 10 / 11 电源管理设置
在Windows8.1 / 10 / 11即便BIOS设置了允许网络唤醒,唤醒依然会失败,原因是新的操作系统电源管理开启了“快速启动”功能,此功能相当于更高级的“休眠”,事实上并不是真正的“关机状态,主板在这种状态下就不会给网卡提供持续的电源,导致发送给网卡的信号无法被接收,网络唤醒就失败了。
解决方法是将Windows8.1 / 10 / 11的“快速启动”关闭。
在控制面板中,将查看方式修改为“大图标”,找到并点击“电源选项”,点击左边窗口“选择电源按钮功能”,点击“更改当前不可用的设置”,在关机设置下面取消勾选“启用快速启动”,并点击保存修改。
另外一种关闭快速启动的方法是使用PowerShell,以管理员身份运行PowerShell,输入如下命令回车即可:
powercfg /h off
与控制面板-电源管理操作等效。
注意,此步骤非必须,Windows7并不支持快速启动也就不存在关闭步骤。
如果一切正常,网卡在关机后依然会保持通讯,如果你的网卡有指示灯,即便关机了,指示灯依然会间歇性持续闪烁待命,证明做好了WOL的准备。
发送WOL信号
Wake-On-LAN的本质是在局域网中对目标IP发送一条UDP信号,通常使用端口9或7,这个信号包含目标设备的网卡MAC地址。
当目标设备的网卡在自己端口9或7上收到信号,一看这信号里的MAC地址还跟自己的一样,就告诉主板说“快开机快开机”,主板检查了一下发现自己支持网卡叫醒服务,就自己合上了电源,开机成功。
最早发明这种技术的是英特尔和IBM,其后AMD将其标准化,当时AMD给这种唤醒信号取了个很魔幻的名字,叫:Magic Packet (魔法邮包),一般正统中文翻译为“幻数据包”。
在不同平台上有不同的应用可以帮我们发送Wake-On-LAN信号,我们只需要提前记下需要唤醒的设备的局域网IP地址和MAC地址,下载相应的App,就可以在其他设备发送“魔法邮包”。
Windows : Wake On Lan AquilaWOL
MacOS :Wake Me Up
iOS :Fring Wake-on-lan
Android : Wake On Lan
在这些APP中,只需填写待唤醒设备的IP和MAC地址即可实现一键开机。
远程WOL
离开了局域网,就不能使用WOL开机确实一点都不Cool。
特别是出门在外有时候需要电脑里的资料,要是可以实现远程的唤醒将会节省大量的时间精力。
总体来说,有两种思路可以实现远程的WOL,但是各有优劣。
公网IP端口转发
如果你的宽带有公网IP,只需要在路由器上做一个端口转发,把来自外网的某端口信号都转发至目标设备的9或7端口,即可实现远程开机。
如果公网IP会变动,DDNS到一个域名即可。
这样的好处是外出的时候极其方便,只要你的手机有网络,在任何地方都可以让家里或公司的电脑开机。无需为了某一个word文档专门跑几公里。
但坏处也是显而易见的,这样相当于把设备暴露在公网,假如没有良好的防御措施,很容易造成设备被远程恶意开启,进而被入侵,故不太推荐。
利用内网常开的设备发送魔法包
有很多内网穿透服务本身有较好的安全防御措施,只在使用的时候登录,虚拟化出一个局域网把远程的设备联系进来,这样我们就可以像在局域网一样对远程设备发送魔法包,进而远程开机。
局域网中的路由器24小时开机,我们可以通过远程控制路由器来发送“幻数据包”开启设备。有一些路由器内置了内网穿透服务,有一些直接提供远程开机功能,NAS则更不用说,直接用QuickConnect即可连接。连上之后,就可以发送魔法包,进而远程开机。
总结
对于需要关闭的设备,远程开机搭配诸如Windows远程桌面使用很香,虽然开启WOL会在设备关闭后消耗一定电能,但是带来的便捷性十分可观。在局域网中如果设备离的较远,或者开机不方便,用手机APP直接开机非常优雅。WOL设置并不算复杂,如果有能力建议自己尝试,当你设置成功之后,你就会觉得商家推出的“开机棒”是智商税。当然对于完全不想麻烦的小白,或许开机棒也是可以尝试的。
@科技本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可.
4 评论
lookd
2022年10月31日公网端口转发这种能收到唤醒包但是唤醒不起来 离谱
Duke Yin
2022年10月31日我这边的情况也差不多,从外网有时候能唤醒,有时候不行,估计运营商还是限制了什么。现在我的方法是把路由器后台放公网,登路由界面去唤醒,稍微麻烦点但很稳,不会失败。
网友
2022年8月18日WOL公网唤醒1.本身要公网ip,这点很难。2.内网穿透需要内网常开设备和公网IP。3.IPV6有没有可能做?我有IPV6,但是用了几个App都不能都不能唤醒
Duke Yin
2022年8月22日1申请一下试试,说简单也简单;
2主路由器刷个pandavan,自带ddns和wol
3 ipv6通常默认禁了几乎所有出入端口,需要自己写规则开端口,但不太安全,还是建议靠ddns登路由器wol,只要机器开了就可以远程桌面了。我现在就是这个方案。