网络唤醒(Wake-on-LAN)

这是一份关于网络唤醒(Wake-on-LAN,WoL)的指南,内容包括:它是什么、如何设置,以及如何排除故障。

什么是网络唤醒

网络唤醒(WoL)是一种网络标准,可以通过一条网络消息,让电脑从睡眠或休眠等低功耗模式中开机。它的原理是向电脑的网卡(NIC)发送一个“幻数据包”(magic packet),从而触发唤醒过程。

前提条件

要使用网络唤醒,目标电脑的主板和网卡都必须支持该功能,并且已经启用。此外,电脑还必须接通电源并连接网络

网络唤醒通常需要有线连接。如果你的电脑没有有线网口,或许仍可以通过一种叫作无线网络唤醒(Wake-on-Wireless-LAN,WoWLAN)的标准来唤醒它。遗憾的是,支持 WoWLAN 的设备并不多,请查看电脑的硬件规格,确认是否支持。

一般来说,网络唤醒只能把电脑从待机或休眠状态唤醒。有些电脑可以设置为在关机状态下也能被唤醒,但这属于少数情况。

如何启用网络唤醒

以下介绍如何在 Windows 11 中启用网络唤醒,同样的步骤也适用于 Windows 10 及更早版本。

点按 Windows 图标并搜索“设置”,点按它打开“设置”。

在 Windows 11 中打开“设置”

在“设置”中,你会在右上方看到当前的网络适配器。点按它打开“网络和 Internet”设置。

在“设置”中打开网络设置

在“网络和 Internet”设置中,点按“高级网络设置”。

进入高级网络设置

点按你的网络适配器将其展开(如果有多个,请选择刚才在“设置”中显示名称的那个)。在“更多适配器选项”旁点按“编辑”,会弹出一个新窗口。

展开网络适配器选项

在新窗口中点按“配置”按钮。

配置网络适配器

点按“高级”选项卡,向下滚动,找到“Wake On Magic Packet”(魔术封包唤醒),将其“值”设为“已启用”(Enabled)。

这项设置的确切名称因设备而异。如果找不到“Wake On Magic Packet”或类似的选项,你需要更新网卡驱动程序;你很可能在使用 Windows 默认驱动程序,它无法提供完整的控制选项。你可以在主板制造商的网站上找到完整的驱动程序包。

在高级设置中启用 Wake On Magic Packet

如果还有以下属性,可能也需要进行设置。

  • Shutdown Wake-On-Lan(关机网络唤醒):已启用
  • Wake on pattern match(模式匹配唤醒):已启用
  • WoL & Shutdown Link Speed(网络唤醒和关机连接速度):10Mbps

点按“电源管理”选项卡,确保已勾选“允许计算机关闭此设备以节约电源”“允许此设备唤醒计算机”和“只允许幻数据包唤醒计算机”。然后点按“确定”保存设置。

设置电源管理选项

现在,你可以让电脑进入待机,然后用网络唤醒 App(例如 Off)来唤醒它了。

网络唤醒故障排除

如果按照上述步骤操作后仍无法通过网络唤醒电脑,请尝试以下排查步骤:

  • 确认已接通交流电源。电脑使用电池供电时,网络唤醒无法工作。
  • 如果电脑的以太网端口有指示灯,请确认电脑关闭后这些灯仍然亮着。如果连接指示灯不亮,说明网卡已经断电,无法接收用来唤醒电脑的幻数据包。
  • 确保已在 BIOS 中启用网络唤醒。该选项通常位于电源管理设置中。
  • 确保已在 BIOS 中停用深度睡眠(Deep Sleep,并非所有电脑都有此选项),因为这项节能设置会关闭网卡。
  • 如果你使用的是通过 USB 等方式连接的以太网转换器,电脑睡眠时可能会切断它的电源。请检查 BIOS 设置是否允许 USB 设备在睡眠时保持通电。
  • 尝试在 BIOS 中调整系统的睡眠级别。这些睡眠状态一般称为 S1 到 S5,各自会关闭不同程度的组件。

更改 BIOS 设置后,可能需要启动进入 Windows 桌面,设置才能正确生效。

通过互联网启用网络唤醒

不在家时,也可以用网络唤醒来唤醒你的电脑。在尝试之前,请先确认能在本地网络中唤醒电脑,因为如果在本地都不行,通过互联网也不会成功。

要通过互联网唤醒电脑,你需要设置路由器,允许网络唤醒的幻数据包通过,并将它转发到你想唤醒的电脑。

登录路由器的管理页面

要配置路由器,你需要登录它的管理页面。在网页浏览器中输入路由器的 IP 地址即可访问,通常是 192.168.0.1、192.168.1.1 或 192.168.1.254,但不同制造商可能有所不同。登录需要用户名和密码。如果你不知道,通常可以在路由器机身上找到。有些型号设有默认密码,可以在此处查询。

路由器管理页面

使用 UPnP 配置路由器

如果你在使用 Off Helper,它会自动尝试通过 UPnP 在路由器上设置所需的端口转发。因此,不妨先关闭手机的 Wi-Fi,试着通过蜂窝网络唤醒 PC,看看是否还需要额外设置。

如果你还在往下读,说明没能成功,你需要更改路由器的设置。大多数路由器默认关闭了 UPnP。

不同制造商和型号的路由器管理页面差别很大。在这个例子中,UPnP 复选框位于“高级设置”下。

路由器管理页面中的 UPnP 设置

打开 UPnP 并确认设置已生效后,你可以点按菜单中的 Off Helper 图标,将“自动映射端口”(Auto Map Ports)先打开再关闭,重新触发 Off Helper 的自动端口映射。

“开始”菜单中的命令提示符

手动配置路由器

如果 UPnP 设置不起作用,或者你更想手动配置路由器,可以按以下步骤操作。同样,相关设置在路由器管理页面中的位置因路由器而异,但大致思路是一样的。

在管理页面中,找到“端口转发”部分。网络唤醒的默认端口是 9。你需要添加一条新规则,将端口 9 转发到你想唤醒的电脑的 IP 地址。内部端口和外部端口都应设为 9,协议选择 TCP 和 UDP。

路由器管理页面中的端口转发

虽然少见,但有些路由器允许转发到广播地址。广播地址就是把电脑 IP 地址的最后一组数字换成 255。例如,如果电脑的 IP 是 192.168.0.20,就转发到 192.168.0.255;如果是 10.10.10.15,就转发到 10.10.10.255。如果路由器接受这个地址,那么用它可能比转发到某台电脑的具体 IP 更好,因为这样就不必操心每台电脑的 IP 了。

顺利的话,你会在端口转发设置页面上看到你的电脑及其 IP 地址。如果路由器没有显示,你需要查出电脑正在使用的 IP 地址。一种方法是在电脑上打开命令提示符。

“开始”菜单中的命令提示符

在命令提示符中输入“ipconfig /all”并按回车键。这会列出所有网络连接的信息,你可以在“IPv4 地址”旁找到本地 IP 地址。

命令提示符中 ipconfig /all 的输出结果

配置好端口转发通常就足以让网络唤醒正常工作。不过,路由器可能会不时更改电脑的 IP 地址。一旦发生这种情况,端口转发设置可能就会失效。为避免这种情况,你可以让路由器把这个 IP 地址保留给这台电脑专用。

该设置在路由器管理页面中的位置各不相同,名称一般类似于“静态 IP 地址”或“地址保留”。你可以从网络设备列表中选择你的电脑;如果没有列表,就输入在命令提示符中用“ipconfig /all”获得的信息。

路由器管理页面中的静态 IP 地址保留

如果你在查找或配置时需要更多帮助,路由器制造商的网站上应该提供路由器的使用手册。另一个有用的资源是 openmyip.com。

要确认一切都已设置正确,你可以使用这个开放端口检测工具。它会自动获取你的公网 IP 地址。输入你刚刚开放的端口,确认工具显示该端口为“Open”(开放)。

现在,你的电脑应该可以通过互联网接收网络唤醒数据包了。

端口转发仍然不起作用?检查是否为 CGNAT

如果你已正确设置端口转发规则,但端口检测工具仍显示端口为“Closed”(关闭)或“Filtered”(已过滤),你的网络服务提供商可能在使用运营商级 NAT(CGNAT)。在 CGNAT 下,网络服务提供商会让许多用户共用一个公网 IP 地址,而不是给每位用户分配独立的地址。包括网络唤醒幻数据包在内的传入连接,在到达你的路由器之前就会被网络服务提供商丢弃,所以无论你在路由器上怎样设置端口转发都无济于事。

要检查自己是否处于 CGNAT 之后,请登录路由器的管理页面,找到标为 Internet、WAN 或公网 IP 的地址(通常显示在状态或互联网设置页面中)。然后,在同一网络中的设备上访问 whatismyipaddress.com。如果两个地址相同,说明你不在 CGNAT 之后,问题出在别处。如果不同,说明你的流量在路由器和互联网之间的某处又经过了一次 NAT 转换。

如果路由器的 WAN 地址以 100.64 到 100.127 开头(例如 100.69.90.211),那肯定是 CGNAT,因为这个地址段是专门为它保留的。如果 WAN 地址以 192.168、10. 或 172.16 到 172.31 开头,说明你要么处于 CGNAT 之后,要么家里还有第二台路由器或调制解调器(即“双重 NAT”)。如果是双重 NAT,请检查网络服务提供商的调制解调器(光猫)能否设为“桥接模式”,或者在它上面也设置同样的端口转发规则,转发到你的路由器。

如果你处于 CGNAT 之后,可以这样解决:

  • 向网络服务提供商申请公网 IP 地址。这是最好的解决方法。联系你的网络服务提供商,要求取消 CGNAT,并分配一个公网(有时称为“固定”或“专用”)IPv4 地址。很多网络服务提供商会应要求免费提供,也有的作为低价附加服务提供。设置好之后,路由器的 WAN IP 就会与 whatismyipaddress.com 显示的地址一致,你现有的端口转发规则应该就能生效了。
  • 改用 VPN 连回家庭网络。如果网络服务提供商无法或不愿提供公网 IP,你可以通过 VPN 连回家庭网络,彻底绕过 CGNAT。CGNAT 只会阻止传入连接,而 VPN 是从家里向外建立连接的,因此不受影响。有些路由器内建了 VPN 服务器(可在管理页面中查找 WireGuard 或 OpenVPN),你也可以在网络中一台始终开着的设备上运行 Tailscale 等免费服务。手机连上 VPN 后,就和在家庭网络中一样,你可以像在家时那样唤醒电脑,无需任何端口转发。

如果你家庭网络中有多台电脑需要唤醒,可以重复上述步骤,每次使用不同的外部端口。路由器应该允许你重复使用端口 9 作为内部端口,但外部端口和内部电脑 IP 地址之间必须一一对应。在网络唤醒客户端中指定为该电脑配置的端口,就能唤醒那台电脑。在 Off App 中,这项设置位于“电脑详情”页面的“网络唤醒端口”(Wake-on-LAN Port Override)下

Off App 的“电脑详情”页面:网络唤醒端口

如果你的电脑通过 VPN 联网,你可能会发现,向它连接 VPN 时报告的公网 IP 地址发送幻数据包是行不通的。网络唤醒客户端需要你真实的公网 IP 地址,才能通过互联网唤醒电脑。断开 VPN 后访问 whatismyipaddress.com,就能查到你真实的 IP 地址。在 Off App 中,你可以在“电脑详情”页面的“公网IP地址覆盖”栏中输入这个地址。请注意,这个 IP 可能会不时变化,以后你可能需要更新它。

Off App 的“电脑详情”页面:公网IP地址覆盖