这是一个不断发展的问题。请参阅底部的 2 个编辑以获取最新版本。不过,我仍将原始问题保留在这里,因为它可能会有用。
好的,首先,很抱歉,又一个关于网络唤醒的问题。我在 Google 上搜索了好几个小时,昨晚彻夜未眠,试图解决这个问题。网上确实有很多关于网络唤醒的文献,但我仍然无法解决这个问题。
问题描述(问题现已改变,请参阅下面的编辑)很简单。关机后一两秒内 WOL 就会停止工作。我判断“关机”的时刻是所有 LED 熄灭并且机箱上的风扇停止旋转的时候。做如果我在它关闭的瞬间发送魔法包,它就会工作。有时我可以等待 1 秒(一千零一秒),它就会工作。再等下去,它就再也无法工作了。
我听说过其他人在几个小时后无法完成此操作。但几秒钟后就不会了。
系统详细信息:
- 采用技嘉(GA-Z68X-UD3H-B3)主板的自制电脑
- 使用主板内置的 Realtek 网络适配器
- TP-Link WR842ND 路由器(默认固件已升级到最新版本,考虑过在其上安装 OpenWRT 或 DD-WRT,但现在工作量太大)
- 使用 GRUB2 引导加载程序的 Ubuntu 和 Windows 7 双启动系统
我做过的事情:
- 我已经关注这是 Ubuntu 的官方教程。
- 还有这个Windows 的非官方版本这看起来很彻底,但可能有点矫枉过正。
- 进入我的 BIOS 设置并启用所有可能有帮助的功能(BIOS 甚至警告我如果使用 WOL 则需要禁用几项功能,因此我将其保持禁用状态)
- 我已经在 Google 上搜索了几个小时并做了一些调整但无济于事。
- 我还将路由器完全恢复出厂设置并重新配置了它。
路由器配置:
- 我正在使用“地址保留”设置来确保我的 realtek 网络适配器 MAC 地址始终分配相同的 IP。
- 我正在使用 ARP 绑定来绑定我的 mac 地址/IP 地址
- 我正在使用端口转发(虚拟服务器)来转发端口 9(WOL)和 22(SSH)。
- 我之前只是将 PC 放在 DMZ 中,但当我重置所有内容时,我没有这样做,而是使用了端口转发。我知道端口转发至少对 SSH 有效,因为我能够通过 WAN IP 登录到我的机器。
考虑到我的机器通过魔术包成功唤醒(尽管只能持续很短的时间),我认为我的 PC(BIOS/网络适配器/操作系统)的配置总体上没有问题。我无需在启动后重置任何设置即可让 WOL 下次正常工作。每次我关机时它都会工作,只需一两秒钟。
我的测试用例目前只使用我的 LAN IP(因此此时端口转发应该不是问题)。我很确定如果我能让它工作,那么 WAN 就可以工作。所以我们正在讨论一个非常典型的 WOL 用例,但它不起作用。
最后一条信息,我不知道在这篇文章中还能放在哪里:PC 主板上的网络适配器在关机后似乎仍保持开启状态。我的路由器显示与我的 PC 以太网电缆插入位置相对应的指示灯亮起。我的路由器上插入并关闭的其他设备没有出现这种情况。所以我的意思是……它应该可以工作吧?!
我为此快疯了。请帮帮忙。希望这是发布此内容的正确“StackExchange”,只有一百万个可供选择。
重要编辑
成功了!!有点……我需要做更多的实验。但基本上,昨晚我都在使用本地 IP 在本地网络上进行测试,而且它有点成功了(就那么一小会儿)。今天,当我还在工作的时候,我决定使用 WAN 将数据包从手机发送到我的电脑(我使用 freedns 给我一个 DNS 名称)。几分钟后,我就可以通过 ssh 登录了。很奇怪吧?也许我今天早上只是忘了关电脑(虽然不太可能)。发送命令sudo shutdown -h now
关闭电脑(我认为不是挂起或睡眠)。我吃午饭的时候等了一个小时。尝试通过 ssh 登录,但超时了,发送了魔法包,几分钟后 ssh 就可以正常工作了。
现在的问题是,为什么 WOL 可以在 WAN 上工作,但在 LAN 上却不行?!难道不应该反过来吗?就在你以为自己了解技术的时候,它却做了类似的事情。
编辑2
测试过。当我通过 WAN 发送数据包时,它确实可以正常工作。通过 LAN 发送则不行。我仍然很困惑。此时可能会尝试寻找网络专家。不过这里有一个问题。当我通过 LAN 发送时,我应该将数据包发送到我想要唤醒的机器的本地 IP 地址(192.168.0.100)以外的其他地址吗?或者我应该将它发送到其他地方吗?我看到有些人将它发送到看起来像子网掩码的东西。我应该这样做吗?但我不明白为什么我的本地 IP 不起作用。
答案1
我快速浏览了一下主板手册,其中只提到了与 ACPI S3 状态相关的唤醒。这暗示着这是唯一可以唤醒的模式。
http://download.gigabyte.us/FileList/Manual/mb_manual_ga-z68x-ud3h-b3_e.pdf
使系统能够进入 ACPI S3(挂起到 RAM)睡眠状态(默认)。在 S3 睡眠状态下,系统似乎处于关闭状态,消耗的电量比 S1 状态少。当唤醒设备或事件发出信号时,系统将恢复到其停止时的工作状态。