Skip to content
Tenvo AI · 实时 · v0.16.4 · TLS · 每设备证书 · AGPL-3.0 · 免费方案 · 30 台设备 · 可自托管基础设施 · 自带 API 密钥 · MCP,适用于 CLAUDE & CURSOR
返回博客Tutorial

远程桌面 Wake on LAN:设置与故障排查

Tenvo Editorial Team8 分钟阅读
远程桌面 Wake on LAN:设置与故障排查

你准备远程连接一台机器,却发现它处于睡眠或已关机。Wake‑on‑LAN 是解决办法。本文覆盖 BIOS、操作系统、网络和路由器的具体设置步骤,以及通过互联网安全唤醒机器的可行方法。

你准备远程连接一台机器,却发现它处于睡眠或已关机。'Remote desktop wake on lan' 是解决办法——前提是它能正常工作。本指南逐项说明 BIOS、操作系统、网络与路由器的精确设置,以使 Wake‑on‑LAN(简称 WoL)在远程桌面场景中可靠运行,并提供通过互联网安全唤醒机器的方法。

Wake‑on‑LAN 的工作原理

Wake‑on‑LAN 使用所谓的“魔术包”发送到目标机器的网络接口。该数据包由 6 字节的 0xFF 头部,后跟目标 MAC 地址的 16 次重复组成。网卡在主机处于低功耗睡眠态(S3)或在某些情况下处于软关机(S5)时监测该模式,具体取决于 BIOS 与硬件。

两个重要的网络事实:

  • 在局域网内,该数据包通常以广播方式发送(例如 255.255.255.255 或子网广播,如 192.168.1.255)。
  • 跨 Internet 发送通常需要路由器技巧(定向广播)、VPN 进入 LAN,或在相同 LAN 上部署一台常在线的中继来转发魔术包。

准备主机:BIOS/UEFI 与操作系统设置

在开始任何网络配置之前,请确认硬件与操作系统已配置为允许唤醒。

BIOS / UEFI

  • 进入 BIOS/UEFI(常见按键:F2、DEL、F12),查找 'Wake on LAN'、'Power on by PCI‑E' 或 'Wake on PME' 并启用。在某些系统中,此项位于 Advanced → Power Management 下。
  • 检查是否允许从 S3(睡眠)和从 S5(关机)唤醒。许多消费级主板仅支持 S3;部分服务器主板支持 S5。

Windows 10 / Windows 11

  • 设备管理器 → 网络适配器 → 选择网卡 → 属性。
  • 在电源管理中:勾选 'Allow this device to wake the computer';如遇问题,可选择取消勾选 'Allow the computer to turn off this device to save power'。
  • 在高级选项中:启用 'Wake on Magic Packet'(驱动可能命名不同),并关闭任何阻止唤醒的省电功能。
  • 关闭快速启动(控制面板 → 电源选项 → 选择电源按钮的功能 → 更改当前不可用的设置 → 取消勾选 'Turn on fast startup')。快速启动使用混合休眠,可能会导致 WoL 失效。
  • 有用的命令:在提升权限的提示符下运行以检查唤醒能力:
powercfg -devicequery wake_armed
powercfg -a

powercfg -devicequery wake_armed 显示可唤醒系统的设备。powercfg -a 显示可用的睡眠状态(S3 与 S4/S5)。如果未列出 S3,则网卡无法监听魔术包。

Ubuntu / Debian / other Linux (example: Ubuntu 22.04)

  • 安装 ethtool(sudo apt install ethtool)。
  • 检查当前 WoL 状态:
    sudo ethtool eth0 | grep -i wake
    该行应显示 Wake-on: g(magic packet)。
  • 立即启用 WoL:
    sudo ethtool -s eth0 wol g
  • 要持久化此设置,请添加 systemd 单元或配置你的网络管理器。示例 systemd 单元:
[Unit]
Description=Enable Wake-on-LAN for eth0
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s eth0 wol g

[Install]
WantedBy=multi-user.target

eth0 替换为你的接口名(使用 ip link show)。如果网卡报告其他字母(p、u、d),请参阅 ethtool 文档;你需要 'g' 标志。

macOS (example: macOS 13 Ventura)

  • Apple 将其称为 'Wake for network access'(旧版 macOS 为 Energy Saver,新版为 系统设置 → 电池 → 选项)。请在笔记本和台式机上检查该设置。
  • 命令行:
    sudo pmset -a womp 1
    'womp' 启用 Wake on Magic Packet。macOS 还使用 Bonjour Sleep Proxy,为 Apple 设备提供按需唤醒(适用于有服务广播的 Macs)。

Wireless clients

通过 Wi‑Fi 的 WoL(WoWLAN)支持有限。许多无线网卡与驱动不支持在断电状态下唤醒,且不同操作系统与硬件的支持差异很大。如有可能,为可靠的 WoL 优先使用有线以太网。

发送魔术包:工具与方法

主机可唤醒后,你需要一种从任意位置发送魔术包的方式。

  • 本地 LAN:使用手机应用或 PC 工具,例如 wakeonlan(Linux)、WakeMeOnLan(NirSoft,Windows)或 Android/iOS 上的移动应用。示例:
    sudo apt install wakeonlan
    wakeonlan 00:11:22:33:44:55
  • 从同一 LAN 的主机(推荐):一台小型常在线设备(Raspberry Pi、NAS)可以接收远程命令(SSH、HTTP)并发送本地魔术包,从而避免路由器广播问题。
  • 通过互联网:以下三种常见模式各有利弊。

选项 A — 路由器定向广播(脆弱)

某些路由器允许将 UDP 端口 9(或 7)转发到 LAN 广播地址(例如 192.168.1.255)。这样会以广播形式发送魔术包,使睡眠中的网卡能够接收。注意事项:

  • 许多消费级和企业级路由器出于安全原因默认屏蔽定向广播。
  • 你会向互联网上暴露一个 UDP 端口——攻击者可能滥用它。如采用此方法,请限制源 IP 或使用高随机端口并配合严格的防火墙规则。

选项 B — 通过 VPN 进入 LAN(为安全推荐)

通过 VPN(OpenVPN、WireGuard)将远程设备连接到 LAN。一旦 VPN 将客户端置于相同子网(或路由器可以路由到该子网),就像在本地一样发送魔术包。这样就无需对外开放端口,并且与我们的指南 无需端口转发的远程桌面 兼容。

选项 C — LAN 上的常在线中继

在 LAN 上运行一台小型中继(Raspberry Pi、低功耗 PC 或常在线的 NAS),该中继接受来自互联网的经过认证的请求并在本地发送魔术包。这是办公室常见做法,例如在 Pi 上运行一个 HTTPS 端点以触发唤醒。使用 SSH 密钥或带有长随机令牌的 HTTPS 来保护该端点。

一旦唤醒:如何进入

一些专有套件将唤醒触发器捆绑进它们自己的基础设施或局域网内配对的网关设备——同样是 Option C 模式,只是它们的 agent 在中间而不是你的 Pi。无论哪种方式,magic packet 只是完成了一半工作:机器已开机,你仍然需要一种进入方式。那一半值得不自己去构建。托管中继可以在不需要延伸 VPN 隧道、不需要转发端口、也不需要你自己维护并打补丁的网关盒子的情况下到达被唤醒的主机——参见 托管构建与 TeamViewer 的比较

实用示例:使用 Raspberry Pi 和 WireGuard 从互联网唤醒 Windows PC

总体步骤:

  1. 按 MAC 为目标 PC 保留静态 DHCP 地址(以便你知道子网)。
  2. 在 LAN 上设置一台 Raspberry Pi,并用小脚本调用 wakeonlan
  3. 在 Pi 与远程客户端上安装 WireGuard。连接后,远程客户端可以 SSH 登录 Pi 或调用其本地 HTTP 端点以发送魔术包。

示例 Pi 脚本(通过 apt 安装 wakeonlan):

#!/bin/bash
# /usr/local/bin/send-wol.sh
MAC="$1"
if [ -z "$MAC" ]; then
  echo "Usage: send-wol.sh "
  exit 1
fi
/usr/bin/wakeonlan "$MAC"

将脚本设为可执行并从经过认证的接口调用(SSH、systemd socket 或一个最小的 HTTPS 端点)。这样你就不必向全网暴露 UDP 9,并且 Pi 可以在本地访问 LAN 广播地址。

故障排查清单

如果 WoL 无法工作,请按以下清单逐项排查:

  • BIOS:是否启用 Wake‑on‑LAN(或等效项)?是否提供 S3/S5 唤醒选项?
  • 网卡是否在报告中显示 Wake-on: g(在 Linux 上使用 ethtool)。
  • Windows:确认 'Allow this device to wake the computer' 已勾选;快速启动已禁用。
  • 主机确实有供电:检查网卡的指示灯,在睡眠状态下通常仍会亮起。
  • 魔术包发送端:能否到达目标子网?跨子网发送时,路由器是否允许定向广播?
  • 如果使用无线,请用有线以太网进行测试以排除驱动限制。
  • 检查 MAC 地址:错误的 MAC 或格式会导致失败。大多数工具使用冒号格式 00:11:22:33:44:55。

安全注意事项与推荐做法

将 UDP 9 对外开放是最弱的方案——它会暴露端口且几乎没有身份认证。优先采用下列更安全的模式:

  • 通过 VPN 进入 LAN(WireGuard/OpenVPN)并在本地发送该数据包。
  • 在局域网内的 Pi 或 NAS 上使用经过认证的中继(SSH 或 HTTPS),该中继接受经过认证的请求并发送 magic packet。
  • 将唤醒触发器保持得尽可能小——一个只做发送 magic packet 的端点——并通过托管中继运行远程会话本身,而不是扩大你刚刚建立的隧道。

有关保护远程访问的更多内容,请参阅我们的 远程桌面安全 文章,以及为什么通常避免开放端口更明智:无需端口转发的远程桌面

何时 WoL 无济于事

如果机器物理断电、PSU 没有供给网卡的待机 5V、或主板/网卡不支持目标电源状态下的 WoL,Wake‑on‑LAN 无效。此外,休眠(S4)和完全关机(S5)的行为因固件与操作系统而异——请测试你的实际关机路径。

结语与推荐设置

要实现可靠的远程桌面唤醒,请遵循此最小且安全的流程:

  1. 在 BIOS/UEFI 和 NIC 驱动中启用 WoL(确认 'Wake-on: g')。
  2. 尽可能优先使用有线以太网;先在本地测试唤醒。
  3. 使用 VPN 或局域网内始终在线的经过认证的中继从远程位置发送 magic packet——必须由子网内的某个设备来完成。
  4. 将远程会话本身通过托管中继运行,而不是延伸该隧道:唤醒机器是局域网的工作,访问它不是。
  5. 除非别无选择并且你能严格锁定端口,否则避免将 UDP 广播暴露到互联网。

WoL 唤醒机器;之后如何访问是另一个问题——而这个你无需自己去构建。让位于局域网内的设备发送 magic packet,然后通过 Tenvo 及其托管中继来运行会话:不需延伸 VPN、无需转发端口、无需你自行维护打补丁的网关。免费版为 $0,Lite $2.99/月,Pro $7.99/月 —— 查看各方案覆盖内容。自托管中继是真实可行的选项(该产品采用 AGPL-3.0),当有明确要求时也是正确之选:例如禁止第三方基础设施的合规规则、隔离网络、数据驻留。若没有此类要求,托管中继在总体成本上更具优势——待命、打补丁、密钥管理、证书续期,以及仅有一个区域且无故障切换等成本。我们的 自托管远程桌面指南 提供完整说明。

都设置好了但仍然卡住?请重新检查 BIOS 的睡眠状态支持与网卡电源指示灯,仔细核对 MAC,并在增加路由器复杂性之前先进行本地唤醒测试。一旦正常工作,你就能节省时间并避免最常见的远程支持问题:“计算机已关机”。

获取 Tenvo

准备自己试用吗?

免费支持 30 台设备,无需信用卡。两分钟内即可运行并连接。