抄作业啦!超好用的WOL方法,NAS远程唤醒家中电脑
大家好,我是fanfan。本文是在公网ip下进行操作的,请确保你使用的是公网IP,或者能够远程访问家中nas的方法,不管是内网穿透,还是虚拟网络(VPN)都可以,原理基本上一致。
本次带来的方法无需任何第三方软件,无需登陆路由器后台即可完成远程唤醒,手机电脑可以通用,而且有很多玩法。欢迎大家集思广益,碰撞出更多的想法。
主要依赖于docker镜像来实现。点击前往了解详情
背景
因为最近研究公网ip无法自拔,之前说到家里的路由器无法arp绑定,只能实现内网进行局域网唤醒。后来我仔细一想,如果路由器不行,家里的NAS基本上是24小时开机状态,跟路由器的在线时间也貌似也差不多。所以我就有了一个想法,既然很多路由器能唤醒局域网的设备,那如果我的路由器没有WOL的功能,是不是能通过NAS去唤醒局域网设备呢?
于是我开始自己的验证,没想到真的被我找到方法了,完美实现远程(外网)开机。这个方法真的爽到我了,当我验证成功的时候,我兴奋了一个晚上,这也许就是垃圾佬的成就感吧。
对于部分有wol的路由器来说,使用的时候要么使用第三方的WOL软件,要么远程登录路由器后台进行唤醒。如下图所示的两种方法。
基本知识探讨
在说具体怎么操作之前,得先弄清几个概念。首先,什么样的网络布局才能实现唤醒呢?一开始我认为的是这样的,很快就被证明我是错误的了。
实际上远程唤醒的过程是局域网设备之间的通信,如果要让nas唤醒局域网中的其他设备,只需要局域网内能够互通即可。所以后来我才有一点明白了,画出了下面的这个图来帮大家理解一下,也可能不太对,这是我的理解。
我家里的nas是爱速特的5202T,x86架构的双盘位nas,性能对我来说已经足够了,目前使用的是西数的红盘PLUS,感觉噪音稍微有点大,不知道其他人的硬盘噪音怎么样。
当然,因为本文基于docker,所以基本上支持docker的nas都可以实现本文的wol功能,不管是arm架构还是x86都可以,像威联通的212p3,群晖的DS220j,爱速特的AS1102T这些arm架构的NAS都能胜任。
我家的网络布局如下图所示,使用的是领势的领势 Velop MX5502,一对路由组成mesh网络,家里的各个角落基本上信号都可以满格。交换机使用的是TP-link的交换机,因为买的比较早就是普通千兆的交换机,后续准备升级2.5G,不知道大家有没有推荐的品牌。可以评论区推荐一波。
电脑BIOS开启WOL
另外一点需要知道的是,WOL的硬件门槛,电脑必须支持WOL,要想知道是否支持,就要去BIOS设置里的电源管理中是否有相关的WOL选项。如下图所示,不同品牌主板的界面不一样。常见品牌进BIOS设置的方法如下图,不是很全面,建议大家根据自己的实际情况搜索设置方法。
笔记本
进入BIOS之后,在电源设置里面找到Wake on Lan的选项,选择Primary,然后F10保存重启即可。
我的联想台式机,如果选择Automatic的话,能远程使用路由器点亮电脑,但是系统加载会出现失败的情况,如下图所示,我不知道什么原因,总之选择Primary没有问题。
另外需要记录需要被唤醒电脑的mac地址。可以在网络连接处查看(如下图),也可在cmd里面使用ipconfig/all命令查看。 都是些基本知识,别喷我!到此,电脑端就操作结束了。
NAS端
这个折腾的方法是基于NAS来进行功能实现的,NAS的应用商店里面没有相关的应用。我在找这个docker之前,很少搜到有品牌直接支持启动局域网中的其他设备的相关信息。大都是NAS被远程唤醒的教程。不断的搜索之后,终于找到了一个方法。是一个叫WolGoWeb的Docker,部署Docker来实现WOL的功能。
虽然dockerhub有不少wol的镜像,对比之后我发现接下来介绍的这个非常方便。部署完成之后,无需第三方应用,无需登陆nas后台即可一键远程开机,不管是在什么操作系统的机器上,只要有浏览器可以访问网页,就可以实现外网一键开机,超级神奇。
WolGoWeb是一款远程唤醒WebAPI工具,主要用于搭建在局域网服务器或NAS中,实现WebAPI唤醒局域网内主机。而且作者还提供了win、linux等操作系统的客户端。
他的原理,我的理解就是通过DDNS向要被唤醒的电脑网卡(需要记住网卡的mac地址)发送开机指令。
Docker部署(本文核心)
这里以爱速特AS5202T为例,来介绍具体的部署方法,部署方法有两种:portainer和ssh,ssh只需要一条指令即可完成。关于如何开启ssh我就不再介绍了。
直接在ssh界面运行这个命令即可完成部署。
docker run -d --net=host chishin/wol-go-web
爱速特使用的是Portainer图形化界面,如果使用portainer的话,其实也相对比较简单,先拉取镜像。如果你理解上面的 命令,那么可以直接填写相关信息即可。如果不理解的话,可以去站内搜一下,有大佬写的很详细。
输入以下信息
注意:网络选择host
环境变量添加PORT 9090(可以修改,不冲突即可),这个端口号就是后续我们访问的时候需要用到的,而且我们需要在路由器界面开启9090(如果修改了,请使用修改后的端口号)的端口映射。然后点击Deploy the container就可以完成部署了。
部署完毕,自动运行如下图。
远程唤醒操作
完成部署工作即可开始使用,首先使用浏览器访问 http://服务器IP或域名:端口号。结果如下图所示,表示已经部署成功了。
唤醒请求:http://服务器IP或域名:9090/wol?mac=需要唤醒主机的MAC地址
可以先尝试一下内网ip能否唤醒要唤醒的电脑,唤醒请求如下
http://192.168.50.176:9090/wol?mac=(之前记下来的mac地址,格式00-00-00-00-00-00,不含括号)
浏览器输入,会车,马上就唤醒了,喜出望外的感觉。
当然我们需要将9090端口映射出去,这样我们才能实现在外网远程开机。完成映射之后,电脑连接手机热点,访问http://DDNS域名:9090/wol?mac=(mac地址,不含括号)
当出现以下界面表示唤醒命令发送成功。再看看要被唤醒的电脑,屏幕已经被点亮了。
远程开机小技巧
1、因为我们使用的是网页指令让电脑开机,最简单方便的方法就是在手机/电脑浏览器中将地址添加书签到桌面,这样我们就可以直接点击进行远程开机了。
2、更有甚者你还可以讲这个网址创建一个二维码,通过扫码进行开机。
3、使用ios的快捷指令,创建快捷指令,放在桌面上,可以通过快捷指令开机。也可以通过siri,语音运行快捷指令,然后语音唤醒电脑。
应该还有更多方法,我个人想法也有限,大家可以集思广益,有新方法的朋友可以分享给我,我愿意进行尝试学习新的知识。
以上就是本次的所有分享,希望对大家的远程唤醒有帮助。我是Fanfan,一个拖更很久的数码领域作者,你们的支持和互动是我最大的东西,希望能帮到所有人,也希望疫情早日散去。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
有牵挂就不会飞远
校验提示文案
有牵挂就不会飞远
校验提示文案
火星车变速箱
校验提示文案
乱买指南
校验提示文案
天河之东
校验提示文案
貮贰
校验提示文案
晋升奶爸的垃圾佬
校验提示文案
值友1589282566
校验提示文案
值友5620578155
校验提示文案
Agonie
校验提示文案
无人熟悉大菠萝
校验提示文案
云将先生
校验提示文案
值友5699964178
校验提示文案
灵KOYB
校验提示文案
MSG--
校验提示文案
usee00123
校验提示文案
值友9693653579
校验提示文案
值友7130908298
校验提示文案
邻家王老
校验提示文案
rucio
校验提示文案
jeffersonz
校验提示文案
Levo8561
校验提示文案
雪影乱舞
校验提示文案
东兴药杨
校验提示文案
我逗是小黑
校验提示文案
熊喵烧山
校验提示文案
浪浪山山贼
校验提示文案
Jing0917
校验提示文案
金蜘蛛
校验提示文案
奇德隆咚墙
校验提示文案
杨氏太极
校验提示文案
羽一凡
校验提示文案
leon_zj
校验提示文案
鈈告訴伱
校验提示文案
jamesyucn
校验提示文案
rucio
校验提示文案
whyiyou
校验提示文案
timespace
校验提示文案
邻家王老
校验提示文案
飞帆飞帆
校验提示文案