是否可以通过互联网唤醒连接到电缆调制解调器的局域网计算机?

是否可以通过互联网唤醒连接到电缆调制解调器的局域网计算机?

可能重复:
我可以在不广播的情况下发送 LAN 唤醒数据包吗?

我能够通过互联网唤醒我的电脑,因为我的电脑连接到路由器,而路由器连接到电缆调制解调器。路由器有自己的 IP,我可以使用我的电脑的 MAC 地址向此 IP 发送魔术包。我完全理解它,而且它有效。

我想知道从技术上来说,是否可以唤醒直接通过 ISP 连接到电缆调制解调器的计算机。我可能会将计算机的 MAC 地址发送到 ISP IP,但我的 ISP 是否可以通过电缆调制解调器向计算机发送魔术包?我的 ISP 知道我的调制解调器的 MAC 和计算机的 MAC(未知设备无法从 DHCP 获取 IP),所以也许可以?

答案1

路由器的工作原理是“重写”在网络(例如家庭网络和互联网)之间转发的数据包。此外,大多数路由器的 NAT 功能会进一步混淆路由器后面的流量,使从外部角度看的所有内容都看起来像是来自路由器。

因此,路由器会将设备的 MAC 地址隐藏在“背后”。因此,如果 ISP 真的想直接向网络中的特定 MAC 地址发送某些信息,就会造成困难。

如果您将计算机直接连接到电缆调制解调器,而无需通过路由器,并且您的计算机直接从有线电视公司的 DHCP 服务器获取 IP,那么这是可能的。

我认为“局域网唤醒”数据如何到达主机并不重要,它可以位于 IP 数据包中。因此,如果您(例如)在路由器上打开端口 5000,并将其设置为转发到网络中 IP 为 192.168.0.222 的机器,理论上您的 ISP 可以将包含局域网唤醒数据的 IP 数据包发送到端口 5000。

ARP 协议用于将 IP 地址转换为 MAC 地址。ARP 查询是广播的,因此不会跳过子网(即路由器默认不会转发广播流量)。当两个主机第一次互相通信时,各自主机的 TCP/IP 堆栈会发出 ARP 查询。成功的查询会被缓存一段时间。我忘了标准时间是多长。

为了让路由器尝试将其转发到 192.168.0.222,192.168.0.222 的 MAC 地址需要位于其 ARP 缓存中。这意味着您的路由器必须在 ARP 表中的该条目超时之前(不知道确切的持续时间)最近与 192.168.0.222“通话”。因此,继续我们的例子,如果您刚刚关闭 192.168.0.222,路由器可能仍会尝试将端口 5000 中的传入数据转发给它,直到它遇到超时,尝试另一个 ARP 请求并失败。如果您在关闭机器时清除路由器上的 ARP 缓存,则不会发生这种情况。当然,您的 ISP 必须非常狡猾地跟踪您的流量才能知道您已打开端口 5000。但可能是恶意的第三方可以做到这一点。

答案2

有线调制解调器肯定可以与 LAN 唤醒功能配合使用。它所要做的就是将数据包转发到 PC。如果启用了该功能,PC 将被唤醒。

相关内容