WOL - 通过互联网唤醒局域网

Joa*_*rom 3 dd-wrt wake-on-lan

我的问题变得非常具体,但可能很容易解决。我已经按照互联网上的许多指南设置了局域网唤醒并设法让它工作得很好,尽管我仍然有一个问题。

我可以通过 LAN 甚至 3G 唤醒我的计算机,但是当我通过 3G 发送时,我只能在关闭计算机后大约一两分钟发送(可能更长),但如果需要更长的时间,我的计算机不会启动。

指南提到了一些关于路由器在一段时间后忘记我的 MAC 地址的事情,但如果这是问题所在,它是否应该在专用网络上工作?我该如何解决这个问题?

我已经在我的 DIR-615 路由器上安装了 DD-WRT。我要唤醒的计算机正在运行 Windows 7 Ultimate。

Maj*_*nko 7

WoL 的工作原理是向您计算机的 MAC 地址发送一个特殊格式的以太网数据包。如果您在本地网络 (LAN) 上,您可以直接与计算机的 MAC 地址通信,并且 WoL 一直运行得很愉快。

从本地网络之外的任何地方,您都依赖 IP 路由将 IP 封装的数据包通过网络转发到您的计算机。这种转发依赖于最后一跳(您的路由器到您的计算机)的 ARP(地址解析协议)。

您的路由器会记录哪些 IP 地址映射到哪些 MAC 地址 - ARP 表 - 定期清除过时的条目。

在正常的网络操作下,路由器首先向网络上的所有计算机(MAC 地址 ff:ff:ff:ff:ff:ff)发送一个 ARP WHOHAS 数据包,请求具有数据包中指定 IP 地址的计算机响应ARP HAS 数据包说明它具有相关的 IP 地址。这会在 ARP 表中缓存一段时间。

如果计算机已切换(或休眠),则网络堆栈无法再响应任何内容,因此 ARP WHOHAS 请求永远不会成功 - 因此路由器无法确定将数据包发送到何处 - 因此 WoL 将失败。

有两种可能的方法可以解决这个问题:

  • 在路由器上设置静态 ARP 条目

如果路由器能够永久存储 MAC->IP 映射,这是迄今为止最简单的。这将消除 ARP 尝试发现您计算机的 MAC 地址的需要。

  • 在本地网络上有另一个网络设备,它从不休眠并且能够为您执行 WoL。

似乎真的打败了对象,但这可能是远程WoL的唯一方法。