远程开机 WOL——让关机的设备被远程唤醒
什么是 WOL
WOL(Wake On LAN,局域网唤醒)是一种允许通过网络发送特定数据包(魔术包)来唤醒处于关机或休眠状态的电脑的技术。BilldDesk 在 GitHub README 的功能列表中明确标注了支持「远程开机(WOL)」。
这意味着,即使被控端电脑完全关机(电源仍插着),只要网卡和主板支持 WOL,就可以通过 BilldDesk 远程唤醒它开机,然后立即发起远程连接。
前置条件
WOL 功能不是 BilldDesk 单方面就能实现的,需要被控端电脑的硬件和操作系统配合:
硬件条件
- 网卡支持 WOL(主流 Intel / Realtek 网卡都支持)
- 主板 BIOS 中开启了 WOL 功能
- 被控端电脑连接有线网络(部分无线网卡也支持但较不稳定)
- 电源保持连接(WOL 耗电量极低,但电脑完全断电不行)
系统设置
Windows 端需要:
- 设备管理器 → 网络适配器 → 网卡属性 → 电源管理 → 勾选「允许此设备唤醒计算机」
- 高级 → 找到 WOL / Magic Packet 相关选项,开启
- BIOS 中也需要开启 WOL(不同品牌主板 BIOS 位置不同)
为什么不是所有远程软件都支持 WOL
WOL 需要配合被控端网卡的 MAC 地址来发送魔术包。大多数远程桌面软件只做远程连接功能,不涉及物理层的唤醒。BilldDesk 把 WOL 集成进了远控工作流中:
- 主控端在 BilldDesk 中对一个离线设备发起远程
- 如果设备离线且主控端能拿到被控端的 MAC 地址,BilldDesk 先发送 WOL 魔术包唤醒设备
- 等设备开机并启动 BilldDesk 被控端后,自动建立远程连接
BilldDesk 的 WOL 实现
从 BilldDesk 的功能列表和源码结构推断,WOL 的实现方式可能是:
- 信令服务器记录每个被控设备的 MAC 地址
- 设备离线后,主控端发起远程时触发服务器发送 WOL 魔术包
- 如果主控端和被控端在同一个局域网,也可以直接从主控端发送 WOL 包
WOL 的局限
WOL 功能有几个常见的局限:
跨网段唤醒
WOL 魔术包默认只在同一个广播域内有效。如果主控端和被控端不在同一个局域网(一个在公司一个在家里),需要:
- 路由器支持 WOL 转发(部分路由器支持)
- 或者通过 VPN 把主控端和被控端拉到同一个网段
关机 vs 休眠 vs 断电
- 正常关机:WOL 可以唤醒(前提是 BIOS 开了 WOL)
- 休眠:可以唤醒
- 快速启动(Fast Startup):Windows 10/11 的快速启动模式下,网卡可能不会保持供电,WOL 可能不工作。解决方法是在电源选项中关闭快速启动
- 完全断电:无法唤醒
非 Windows 系统
WOL 主要针对 Windows 桌面端。macOS 和 Android 端的远程唤醒实现方式不同,BilldDesk 没有公开说明是否支持。
如何确认 WOL 正常工作
- 开启被控端的 BIOS WOL 和 Windows 网卡 WOL 设置
- 确认主控端和被控端在同一个局域网或通过 VPN 连接
- 把被控端电脑关机(保持插电)
- 在主控端 BilldDesk 中对这台离线设备尝试发起远程
- 如果一切配置正确,被控端会在几秒到几十秒后自动开机
与开机自启的配合
WOL 唤醒后,配合 BilldDesk 的开机自启功能,被控端开机后会自动启动 BilldDesk 并进入被控待命状态。整个远程流程变成:
- 被控端关机 → WOL 唤醒开机
- 开机 → BilldDesk 自动启动
- 自动接受远程 → 建立连接