局域网唤醒(Wake On LAN)+树莓派实现远程设备唤醒
- 相关代称
- 实现路径
- 为什么要使用这种方式
- 具体实现方式
- 被控电脑开启WOL服务
- 树莓派配置
- 远程唤醒测试
相关代称
- 蒲公英:蒲公英组网服务(链接:https://pgy.oray.com/)
- 被控电脑:目标电脑设备,即需要被远程开机的电脑;
- 树莓派:Raspberry Pi 4B,与被控电脑位于同一局域网下;
- 主控电脑:接入广域互联网的任意已安装并开启蒲公英的电脑(Windows/macOS/Linux均可);
- 主控手机:接入广域互联网的任意已安装并开启蒲公英的手机(iOS/Android均可);
- 真实局域网:即被控电脑与树莓派同在的网络;
- 虚拟局域网:即通过蒲公英实现的网络。
实现路径
- 树莓派上电自启动,判断网络连接情况,正常联网后开启蒲公英;
- 主控手机/主控电脑开启蒲公英,与树莓派蒲公英成虚拟局域网;
- 通过SSH访问树莓派,并通过树莓派发送WOL指令至真实局域网内被控电脑;
- 真实局域网内被控电脑通过WOL开机,相关远程桌面服务打开,实现远程办公。
为什么要使用这种方式
- 笔记本BIOS不支持上电自启动(AC Recovery);
- 无公网IP;
- 虽然可以借助路由器实现广域网唤醒,相对复杂;
- 手头有树莓派在跑一些其他服务,长期开机在线(不在线也可以通过智能插座上电自启动实现开机)。
具体实现方式
被控电脑开启WOL服务
- BIOS打开WOL服务:不同主板BIOS服务各有不同,请根据主板型号自行查找打开方式;
- Windows进入系统→设备管理器→网络适配器→双击使用的网卡→选择“电源管理”标题页→将“允许计算机关闭此设备以节约电源”和“允许此设备唤醒计算机”勾选,“只允许幻数据包唤醒计算机”视需求选择是否勾选→选择“高级”选项卡→选择“魔术封包唤醒”→设置值为"开启";
- 通过控制面板进入Windows Defender防火墙→点击左侧“高级设置”选项卡→选择左侧“入站规则”→点击右侧“新建规则”→选择“端口”→选择UDP,特定端口栏输入9,配置文件选择公用;
4. 绑定静态地址
以管理员身份运行cmd
→键入 netsh i i show in
,记住正在使用的网卡idx→键入netsh -c “i i” add neighbors idx IP MAC
, (idx 是之前查到的,IP是正在使用网卡的IP地址,mac可通过ipconfig /all
查询)→在命令提示符下使用arp -a
命令查看所添加IP地址是否在列表中且为静态。
5. 关闭快速启动(重要)
控制面板→硬件和声音→电源选项→点击左侧选项卡进入系统设置→更改当前不可用的设置→取消勾选启用快速启动(推荐)
树莓派配置
- 树莓派接入真实局域网并完成相关基础配置;
- 使用
sudo apt-get install wakeonlan
命令安装wakeonlan; - 通过
wakeonlan xx:xx:xx:xx:xx:xx
命令发送唤醒包对被控电脑进行真实局域网WOL测试(xx代指被控电脑MAC地址)。 - 部署蒲公英树莓派端服务(部署说明:https://service.oray.com/question/6177.html);
- 编辑脚本设置蒲公英开机自启
远程唤醒测试
- 主控手机/主控电脑安装蒲公英客户端,接入VPN与树莓派形成虚拟局域网;
- 使用蒲公英提供的树莓派虚拟局域网IP实现SSH远程登录树莓派;
- 执行
wakeonlan xx:xx:xx:xx:xx:xx
命令实现被控电脑WOL; - 使用智能插座实现树莓派上电自启动。