一段时间后,局域网唤醒不起作用,如何解决这个问题?

一段时间后,局域网唤醒不起作用,如何解决这个问题?

上周我安装了 Ubuntu 并尝试通过网络唤醒来启动它。

我将端口 9 上的所有传入数据包重新路由到服务器。当收到魔法包时,服务器将启动。一切顺利,直到第二天我从另一个位置尝试。它不起作用。因此,我开始使用 Google 搜索并进行了一些测试,发现服务器在 x 分钟后不会响应魔法包。

我可以通过 telnet 访问我的路由器,看看是否需要更改那里的任何内容。

答案1

如果您的路由器配置为将 WOL 数据包转发到睡眠中的计算机,则它需要能够根据 IP 地址发现计算机的 MAC 地址,这就是 ARP 协议的作用。但是,当计算机关闭时,ARP 将不起作用,因此一旦路由器的 ARP 缓存变得陈旧,相关条目就会被删除,您就没戏了(在您的情况下,这显然需要 20 分钟)。

一些路由器允许您静态配置此 ARP 映射,或者使用静态 IP 配置作为 ARP 映射,或者包含自己的 WOL 工具来完成这项工作(例如 Tomato 和 DD-WRT 固件) - 您必须检查您的路由器是否受支持。

另一个选择是将 WOL 数据包转发到广播地址(例如 192.168.1.256,如果这是您的子网地址),但这也不是所有路由器都支持。

答案2

如果您正在使用企业级交换机或路由器,您可能需要查看以下两个指令:

ip directed-broadcast

ip forward-protocol

这些指令在 Cisco 或采用类似 Cisco CLI 的其他供应商中最为常见。该ip directed-broadcast指令指示交换机/路由器将任何发往子网广播地址的数据包转发为单播数据包。这意味着,发往 192.168.1.255(子网 192.168.1.0/24)的 UDP 数据包将被转发到目标子网 192.168.1.0/24,就好像它是可寻址的一样。一旦数据包到达直接连接到 192.168.1.0/24 的跃点(路由器/交换机),您的ip forward-protocol指令就会接管。

由于 192.168.1.255 是广播地址,因此没有与之关联的 MAC 地址。因此,交换机必须爆炸将目标 MAC 地址改为 FF:FF:FF:FF:FF:FF。这意味着,交换机/路由器必须将数据包发送到交换机上的所有操作端口(即第 2 层广播)。该ip forward-protocol指令就是这么做的。这样就无需在路由器/交换机的 ARP 表中存储静态 ARP 条目。注意,您不需要不是想要使用该ip helper-address指令(除非您需要),因为它仅限于转发一些常见的 udp 协议,如 NTP、NetBIOS 等。LAN 唤醒不是其中之一。

此外,我们在工作场所遇到了机器 BIOS 设置和不同 NIC 的问题。在某些情况下,WoL 只能工作一次,然后随后失败。完全断开 PC 与墙壁(网络和电源线)的连接,让主板上的电容器放电,然后重新连接这些 PC 似乎可以解决问题。然而,这不是解决方案。我们目前正在与供应商(戴尔)一起调查这些异常情况。希望这能有所帮助。

答案3

有些路由器不会将 LAN 唤醒数据包转发到您的本地网络,您需要检查路由器是否

相关内容