远程开机Wake on LAN(WOL),俗称局域网唤醒、网卡开机,大家并不陌生,这一功能非常实用,但需要通过一定的配置才能起作用。局域网下的WOL唤醒非常简单,一台开启WOL唤醒功能的目标网络设备;一台安装有唤醒目标网络设备的WOL软件的设备,可以是电脑、平板、手机、嵌入式等;两者处于同一个网络下,即可实现远程开机。但是这种方式只能在同一个局域网下使用,一旦两台设备处在不同的网络,这种远程开机方式将失效。对于家中有些服务设备的人来说,如高功耗的台式机、群晖NAS等,如果保持一整天的开启,像上班时这一场景,在上班时保持开启状态,而不会使用,难免有些浪费。有一种在需要时远程开启,不需要时关闭设备的方法,不受时空和地域的影响,也显示十分必要。那么,有什么方法可以实现在任意外网状态下,唤醒家中关机状态的设备(群晖为例)呢?且往下看~
实现基本的局域网远程唤醒的必要条件
- 网卡支持WOL网络唤醒。(目前绝大设备都支持,如白裙、星际蜗牛、暴风二期等等)
- 群晖主板BIOS开启WOL功能,设BIOS中的全称为“Wake On Lan In S5”或者“WOL On S0(S3)”之类的字样,具体百度主板型号。
- 对于黑QH,群晖引导文件里的Mac必须和网卡的真实Mac一致。如果不一致,修改的思路:直接修改引导文件中的Mac修改为网卡真实的Mac。注此方法只针对[免费许可]或者未使用免费许可的QH,对于全洗白的QH,需要修改网卡的真实Mac,具体方法请百度。本文不涉及此内容。
- 保持关机状态下的供电。在正常开机状态下,关闭计算机,网卡仍保持着连接,网络唤醒才会正常工作,如果这时候断开电源再恢复供电,则网卡不会重新建立连接,也就不能远程唤醒。
- [题外话]针对与Windows系统的网络唤醒,Win7通过网卡的WOL,能够成功唤醒。对于Win8及以上的系统有很大的区别:就在于快速启动这个功能。快速启动将计算机置于S4状态中(正常关机是S5),如果主板的WOL仅在S5提供支持,所以需要关闭“快速启动”。这一点在不同的计算机上可能有区别。注:无线网卡不支持远程唤醒。
首先实现局域网下的远程唤醒
在满足上面的必要条件下,以通过手机唤醒局域网下的群晖Nas为例,按下面进行操作:
1. 首先确保群晖系统开启WOL功能:群晖管理桌面的控制面板->硬件和电源->勾选“其用局域网x的局域网唤醒”,然后点应用。
实现外网下手机远程唤醒群晖Nas
实现的原理:WOL远程唤醒,使用UPD协议将需要唤醒的设备Mac广播到局域网中的,需要唤醒设备的网卡扫描自身的端口7或者9,当接收到特定的包含自身Mac地址的报文,网卡就会给主板发生启动信号。外网下实现远程唤醒局域网内的设备,关键点是:公网ip、UDP协议且转发端口7或者9到局域网下的广播地址、唤醒局域网内设备的Mac地址。
本文使用Frp内网穿透,来远程转发到局域网下。
需要的准备:###
- 一台具有frp功能的路由器或者软路由,此软路由不能搭建在群晖上。参考文章:Unraid虚拟单网卡安装openwrt做旁路由,以及OpenWrt的优化配置;
- Frp服务器,通过白嫖Sakura Frp的免费内网穿透来实现公网ip, 参考教程内的注册及配置隧道的方法:[Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问];
- 具备"基本的局域网远程唤醒的必要条件";
注:此部分详细配置参考我的[发布过的文章]作参照。
1. 登录Sakura Frp,进入后点击“创建隧道”,按下图进行配置,其中:本文使用的事UDP协议,服务器优先选国内的,而且不限制UDP的。如本文使用服务器:“宿迁移动”;隧道类型选择“UDP”(不能选错);本地地址和端口和上文一致;远程端口随便写一个,范围是:10240-65535;关闭加密传输和压缩数据;设置访问密码。最后点击“完成创建”。



5. 点击frp插件中的"高级选项",按图所示配置。其中,“协议”选择TCP;代理用户填写自己的用户ID。勾选TLS,配置DNS。
6. 点击frp插件中的"常规配置",按图所示配置。点击"保存并应用",完成配置。
7. 打开手机软件WolOn,在WAN WOL一栏下,点击右下角的“+”号。
8. 按下图配置:其中“MAC Address”填写上面获取到的群晖’网络物理地址’;“Router IP or Hostname”填写隧道服务器的公网ip地址;端口是上面设置的"远程端口"。配置完成后点保存。
9. 接下来关掉群辉Nas,之后点击手机使用4g流量,然后在WAN WOL一栏下的刚刚创建的"QH"网络唤醒,成功实现了外网唤醒局域网内的群辉Nas。