LAN 唤醒无法在公共网络上工作,但可以在本地

LAN 唤醒无法在公共网络上工作,但可以在本地

我有一个问题。我正在尝试制作一个 WoL 脚本,它将打开我的 PC。我对该项目的细节不感兴趣。

我的手机上有一个应用程序,允许我输入 MAC 地址和本地 IP,然后 PC 就会打开。它运行正常,但无法通过互联网连接。

我已经转发了端口 7、9 和 2304。我输入了正确的 IP,但仍然不起作用。我的其他端口转发工作正常,所以这不是问题。

就像说的那样:它在本地有效,但不能通过互联网。可能是什么问题?

我有一个 Netgear wnr2000v3 供您参考。

答案1

您需要在路由器上放置静态 ARP 映射,这样它就不会忘记您尝试唤醒的机器的 MAC 地址。

UDP/IP 端口映射允许您的路由器知道将 WoL 魔术包转发到哪个本地私有 IP 地址,但如果目标机器已经休眠超过 2 分钟左右,路由器的 ARP 缓存中将不再有其 MAC 地址,因此路由器将不知道在链路层将哪个 MAC 地址放在数据包上。由于目标机器处于休眠状态,它可能不会响应 ARP 请求,因此路由器无法了解正确寻址数据包所需的 MAC 地址。

因此,您必须将目标机器的 MAC 地址静态/永久地输入到路由器的 ARP 表中。

如果路由器上的出厂固件不允许您向 ARP 表添加静态/永久条目,请查看售后市场(通常是开源)固件发行版是否允许您这样做。或者找到另一个可以为您提供更多控制的路由器。

答案2

WOL 无法在更广泛的互联网上工作,因为更广泛的互联网不携带 MAC 地址。您可能能够在路由器上安装一些可以“代理”或创建请求的东西。

相关内容