如何从 TP-WR741N(或类似设备)对 LAN 执行“网络唤醒”

如何从 TP-WR741N(或类似设备)对 LAN 执行“网络唤醒”

我有一台运行完美的 TP-WR741ND 路由器,带有其原生固件(可能不是那么重要,但这里是:3.12.4 Build 100910 Rel.57694n)。

路由器直接连接到 LAN PC(192.168.0.0/24 网络)。我可以从办公室(即从互联网)管理路由器。我希望能够醒来我办公室里的家用电脑。

我能够从办公室的 PC 向路由器发送 WoL 数据包(“魔术数据包”,UDP 端口 9)。我可以设置路由器将其重新发送到 LAN 地址(转发 > 虚拟服务器),在正在运行的目标 PC 上,我可以看到“魔术包”到达了它(我已经检查了网络流量以确保无误)。问题是我在转发时无法提供 192.168.0.255 地址。我得到:

错误代码:26106 该 IP 地址与 LAN IP 地址不在同一子网。

是否可以让路由器正常发送魔法包到网络广播地址 *.255 ?如果是,该怎么做?

答案1

LAN 唤醒数据包通常以特定 MAC 地址为目标。远程执行此操作的问题在于您无法以非本地网络的 MAC 地址为目标。

通常,当数据包发往某个 IP 地址时,与目标设备位于同一网络上的路由器会说“谁有 IP 地址 xxxx”,而拥有该地址的设备会回复“是我,将其发送到 mac 地址 xx:xx:xx:xx:xx:xx”。这是一个 arp 请求。一旦得到答复,路由器就会将数据包转发到 mac 地址。

将数据包转发到关闭的机器的问题是它无法响应 arp 地址。但是,如果您使用路由器的 ARP 绑定功能,则可以说 IP 地址 xxxx 是 mac 地址 xx:xx:xx:xx:xx:xx,因此路由器不需要执行 ARP 请求 - 它已经知道 IP 地址的 mac 地址,它已将其保存在其 ARP 绑定表中。

所以你需要做三件事:

  1. 向要进行 WOL 的 PC 发出一个静态地址(最好通过 dhcp 完成)
  2. 找出 PC 的 MAC 地址,并使用 MAC 和您选择的静态 IP 设置 ARP 绑定条目
  3. 设置 udp/9 到静态 IP 地址的端口转发规则

因此 WOL 数据包将以路由器的公共 IP 地址为目标,并被网络地址转换到内部地址。然后路由器将看到其 ARP 绑定表中存储了一个 MAC 地址,因此将数据包转发到 MAC 地址(即使机器已关闭)而不尝试 ARP 请求。

WOL 功能将看到数据包到达其网卡,并带有正确的 MAC,然后打开 PC。

答案2

看这个:TP-Link TL-WR841ND 上的端口转发局域网唤醒

要测试您是否正确配置了 LAN 唤醒,您可以使用http://wakeonlan.me地点。

相关内容