Windows 7 Pro 计算机无法通过外部网络的 Magic Packet 在 LAN 上唤醒

Windows 7 Pro 计算机无法通过外部网络的 Magic Packet 在 LAN 上唤醒

我刚买了一台运行 Windows 7 Professional x64 的新电脑。我想让它在一小时后进入睡眠状态以节省电量,但​​我还想在空闲时通过远程桌面进入它。

我设置了静态 IP,并在路由器上设置了端口转发。如果计算机处于唤醒状态,RDP 连接就可以正常工作。

我下载并安装了网络唤醒谢谢本文

如果我让新电脑进入睡眠状态并从家庭网络内的旧电脑发送魔术包,新电脑就会被唤醒。但是,如果我从网络外的工作电脑执行相同操作,新电脑就不会被唤醒。

我认为防火墙阻止了传入的流量,但 Windows 防火墙日志中没有任何内容表明发生了这种情况。

我想知道是否有人有任何建议或我可以进行的任何测试,以缩小问题的范围。

答案1

我遇到了与您类似的问题,我使用服务器上的网页发送了魔术包。

我使用了以下代码和 WolAsp.dll:德皮库斯

Active Server Pages 的局域网唤醒功能允许任何带有 ASP 解释器的 IIS Web 浏览器向远程计算机发送魔术包

来自他们的常见问题解答页面:

通过互联网实现局域网唤醒(否则为什么这么麻烦)

“IP 定向广播用于极为常见且流行的“smurf”拒绝服务攻击,并且还可用于相关攻击。

IP 定向广播是一种数据报,它被发送到发送方机器未直接连接的子网的广播地址。定向广播以单播数据包的形式通过网络路由,直到到达目标子网,然后转换为链路层广播。由于 IP 寻址架构的性质,只有链中的最后一个路由器(即直接连接到目标子网的路由器)才能最终识别定向广播。定向广播偶尔会用于合法目的,但这种用途在金融服务行业之外并不常见。

在“smurf”攻击中,攻击者从伪造的源地址向定向广播地址发送 ICMP 回应请求,导致目标子网上的所有主机向伪造的源发送回复。通过连续发送此类请求流,攻击者可以创建更大的回复流,从而完全淹没地址被伪造的主机。

如果 Cisco 接口配置了 no ip direct-broadcast 命令,则该接口上原本会“分解”为链路层广播的定向广播将被丢弃。请注意,这意味着必须在可能连接到目标子网的每个路由器的每个接口上配置 no ip direct-broadcast;仅配置防火墙路由器是不够的。no ip direct-broadcast 命令是 Cisco IOS 软件版本 12.0 及更高版本中的默认命令。在早期版本中,应将该命令应用于每个不知道转发合法定向广播的 LAN 接口。”

引自思科。

我想知道数据包是否在某个地方被阻止了。你可以尝试Depicus 的互联网 WoL 页面看看数据包是否能到达您的计算机。

答案2

除了这些,您还可以尝试设备管理器 - 展开网络适配器 - 您正在使用的网络控制器的属性 - 然后转到电源管理选项卡 - 取消选中仅允许魔术包唤醒您睡眠中的计算机的选项。好的好的好的 - 然后测试。这种情况(禁用仅使用魔术包唤醒 PC 的要求)在我们的例子中有效。需要注意的一件事 - 有时在 PC 处于睡眠状态时建立远程桌面连接 - 第一次尝试 RDP 时会失败,但它会唤醒 PC。第二次尝试时 - 它将正常连接。PC 处于睡眠状态时,Ping 不起作用。这是针对 HP 6000pro 台式机的,不确定将来是否会通过操作系统补丁或网卡驱动程序更新修复此问题。

仍在排除故障,为什么如果电脑在几个小时内进入休眠状态而不是睡眠模式,它就无法唤醒。

答案3

您的路由器需要配置为接受和转发这些数据包。除非您这样做,否则流量无法从外部传到内部的休眠计算机。

是否真的这么做取决于你。转发流量有一些固有的风险。

基本步骤:

  1. 将 UPD 端口 7 或 9 转发到所需 WOL 计算机的 IP。您需要使用哪个端口取决于您使用的 WOL 客户端。如果客户端允许,您可能可以使用任何随机的高编号端口。
  2. 如果您在多个专用网络上,您可能需要添加 WOL 计算机的静态 ARP 条目,其中 MAC 为 FF:FF:FF:FF:FF:FF。这应该允许它在交换机之间转发。

您还可以做的另一件事是,如果兼容,请在路由器上安装 DD-WRT。这样您就可以将路由器用作 WOL 客户端,您只需远程登录路由器并发出相应的命令即可。

来自 DD-WRT 的优秀文档(也是我找到所有这些信息的地方)==>DD-WRT WOL 页面

答案4

据我所知,只有当魔术包从与要唤醒的机器相同的子网发送到广播地址时,LAN 唤醒才有效。因此,我很好奇解决方案是否需要让辅助计算机作为“唤醒者”来代表您发送数据包。

我只有传闻证据需要验证。我想对我们工作中的测试机器做同样的事情;偶尔它们会进入睡眠状态,而 LAN 唤醒将是完美的选择。我无法从我的开发机器唤醒测试机器,但成功地从其他测试机器唤醒了测试机器。我可以验证测试机器是否正在接收数据包,但它们无法从我的开发机器唤醒。我最终放弃了,并假设由于我的开发机器和测试机器位于不同的私有网络上,因此无法实现。

相关内容