我无法通过互联网启用 WOL。
我的网络(LAN)内部的 WOL 工作正常 - 我能够向 UDP 9 发送一个数据包然后机器就会被唤醒。
问题是唤醒 LAN 外的计算机。使用 WireShark 我看不到任何数据包进入网络。端口 9 被端口转发到 192.168.0.127(广播 IP,我的子网是 255.255.255.128)。
我读到有人建议在广播 IP 192.168.0.127 上设置 DHCP 保留到 FF:FF:FF:FF:FF:FF,但是我的路由器没有给我这个选项(.127 超出了允许的范围..)。
有什么建议么?
答案1
目前还不清楚您的 NAT 是否真的遵守到广播地址的映射。相反,将您想要唤醒的机器置于静态 IP 地址上(通过手动将其配置为 NAT 子网内但在 DHCP 租约池之外的 IP 地址,或者通过配置 DHCP 服务器为该机器的 MAC 地址(或其他 DHCP 客户端 ID)保留特定 IP)。
然后添加一个静态 ARP 映射路由器的 ARP 表。为获得最佳效果,请确保以重启后仍能继续使用的方式执行此操作。有些路由器没有在其基于 Web 的管理 UI 中公开执行此操作的方法。如果您的路由器为您提供了访问 shell 的方法,则可能必须通过 shell 执行此操作。如果您的路由器没有提供任何选项,您可以在其上安装售后开源固件发行版,例如 OpenWrt 或 DD-WRT。
远程 WoL 无法工作的最常见原因是,当目标机器处于睡眠状态时,其默认网关路由器会超时处理该机器的 ARP 表条目,然后当 WoL 数据包进入时,路由器无法将其转发到 LAN,因为它不知道要将哪个目标 MAC 地址放入以太网报头中。静态 ARP 映射(ARP 表条目)是解决此问题的一种方法,但许多家庭网关路由器产品不提供此方法。
答案2
我很难实现互联网上的 WOL。我尝试了多个选项,例如路由器上的 openvpn、ddns,但总是无法正常工作。
最后我得出结论,为了实现平稳一致的运行,我绝对需要一台通过本地网络运行的机器。例如任何远程桌面应用程序或任何基于树莓派的迷你电脑等。然而,这意味着这个其他系统也应该全天候运行。
在考虑在我的 LAN 上运行的机器时,我意识到我的 Amazon ECHO 全天候在 LAN 上运行并连接到互联网。因此,我最终可以使用 LAN 唤醒 Alexa 技能在互联网上实现一致的 WOL。您可以通过安装在手机上的 Alexa 应用程序通过互联网控制您的 ECHO 设备。通过 LAN,您只需发出语音命令来打开 PC 或按下手机上 Alexa 应用程序中的按钮即可。