
在当今科技驱动的世界里,自动化趋势已延伸到我们生活的方方面面——从车辆到家居,尤其是在我们的计算环境中。一种有效的自动化 PC 启动方法是利用网络唤醒 (WoL)。虽然本指南专门介绍了如何在 Ubuntu 上启用 WoL,但这些说明也可以适用于其他 Linux 发行版,包括 Windows 系统。
了解局域网唤醒
网络唤醒是一种网络协议,旨在允许使用网络数据包远程启动计算机。这些数据包(称为“魔术包”)可以从同一本地网络上的任何设备(包括无线连接)发送。
每个“魔术包”都编码有目标计算机网卡 (NIC) 的 MAC 地址,从而提供唯一的标识符。当 NIC(持续处于低功耗状态)接收到“魔术包”时,它会提示主板启动启动序列。
准备系统以进行 LAN 唤醒
首先,您必须确保您的设置满足以下先决条件:
- 有线以太网连接(Wi-Fi 选项通常功能有限)。
- 经过 WoL 认证的主板和网卡(大多数现代型号都支持此功能)。
- 启用 WoL 的适当 BIOS/UEFI 配置。
- 您的 Ubuntu 系统上的管理员权限。
验证硬件和 BIOS 设置
首先,确认您的硬件兼容网络唤醒功能。大多数现代台式机和笔记本电脑都提供此功能,但务必进行验证。
要检查,请重启电脑并进入 BIOS/UEFI 设置(通常按F2、 F10、 Del或键访问Esc——观察启动屏幕以获取指导)。搜索标有“网络唤醒”、“通过 PCI-E 开机”或“允许 PCI 唤醒事件”的选项,并确保它们已设置为“已启用”。
此外,您可能需要禁用名为 ErP Ready 或 Deep Sleep 的功能,该功能可以完全切断网卡的电源并阻止其接收魔术包。此外,某些笔记本电脑需要启用 Always On USB 等设置,以便网卡在系统关机或睡眠模式下保持供电。
检查网卡兼容性
您的网卡必须支持网络唤醒功能才能有效运行。过去十年生产的大多数网卡都支持此功能,但建议您务必确认一下。
要识别您的网卡,请在终端中执行以下命令:
ip a
您的以太网接口名称将类似于enp8s0
,这在本指南中作为示例。

Ethtool 是一个用于修改网络驱动程序设置的开源工具,对于网络唤醒配置至关重要。
使用以下命令安装 Ethtool:
sudo apt install ethtool
接下来,检查您的网卡是否支持 WoL:
sudo ethtool <Your interface name>
输出将提供关键信息,包括以下行:
Supports Wake-on: g
“g”的存在确认了 WoL 兼容性,而下一行表示它当前是否已启用。
临时启用局域网唤醒
要暂时激活 WoL(直到下次重启),请使用以下命令:
sudo ethtool -s <interface_name> wol g
要确认更改,请运行:
sudo ethtool <interface_name>
如果输出包含Wake-on: g
,则 WoL 已成功激活,尽管只是暂时的。
永久启用局域网唤醒
为了确保局域网唤醒在系统重启后仍然有效,请配置一个 Systemd 服务,该服务在系统启动时自动执行 ethtool 命令 – 这是在现代 Linux 发行版上维护设置的可靠方法。
首先,您需要创建一个 systemd 服务文件。虽然nano
建议使用,但您可以选择任何适合您偏好的文本编辑器:
sudo nano /etc/systemd/system/wol.service
如果不确定 etahtool 的安装位置,请运行:
which ethtool
将以下内容插入您的服务文件中:
[Unit] Description=Enable Wake On Lan [Service] Type=oneshot ExecStart=<Your filepath> --change <Your ethernet interface name> wol g [Install] WantedBy=basic.target
粘贴配置并替换后
接下来,启用新创建的服务,以便它在启动时使用以下命令执行:
sudo systemctl enable wakeonlan.service
您可以使用以下命令立即启动服务而无需重新启动:
sudo systemctl start wakeonlan.service
您的 Ubuntu 计算机现已配置为在重启后持续激活 LAN 唤醒功能。
使用高级网络连接编辑器进行配置
对于运行 Ubuntu 桌面的用户来说,激活局域网唤醒的最简单方法是通过图形高级网络连接编辑器。
通过应用程序菜单打开此工具。

在网络窗格中,找到您的以太网连接,单击齿轮图标,然后访问连接设置。

在以太网设置选项卡中,找到“局域网唤醒”选项。勾选“Magic”或“MagicPacket”复选框,然后点击“应用”。

您的网络唤醒功能现已成功配置。要验证,请执行以下命令:
sudo ethtool enp0s3
Wake-on: g
在结果中查找。
使用 nmcli(网络管理器命令行界面)激活 WoL
如果您是 Ubuntu 桌面用户,您可能已经熟悉 NetworkManager。此工具简化了 Wi-Fi 和有线网络的连接,并且允许使用 进行命令行配置nmcli
。
首先识别您的活动网络连接:
nmcli connection show
如果输出显示802-3-ethernet.wake-on-lan: default
,则表示 WoL 已禁用。如果显示“magic”,则表示您的系统已配置为响应此类数据包。
要通过 NetworkManager 启用 LAN 唤醒,请执行以下命令:
nmcli connection modify 802-3-ethernet.wake-on-lan magic
运行此命令后,您的 Ubuntu 桌面现在应该准备好响应魔术包,尽管您可能不会立即收到反馈。
如果需要,禁用它同样简单。只需将“magic”改为ignore
:
nmcli connection modify 802-3-ethernet.wake-on-lan ignore
此命令指示您的网络适配器忽略传入的魔术包,从而禁用该连接的 LAN 唤醒功能。
测试您的网络唤醒配置
要测试你的 WoL 设置,请关闭或挂起你的 Ubuntu 机器。然后,使用另一台设备(可以是 PC、智能手机、Raspberry Pi 等)向你的机器的 MAC 地址发送一个魔法数据包。有很多应用程序和命令行工具可用;在你常用的应用商店中搜索“Wake-on-LAN”。
如果您的网络上有另一个 Linux 或 macOS 系统,则可以使用名为 wakeonlan 的实用程序直接通过终端发送魔术包。
对于使用基于 Debian/Ubuntu 发行版的用户,请按如下方式安装:
sudo apt install wakeonlan
发送魔术包很简单:
wakeonlan <Your Ubuntu MAC Address>
确保将其替换为您的 Ubuntu 机器的实际 MAC 地址。
Windows 用户还可以轻松访问各种免费实用程序,其中一个值得一提的选项是NirSoft 的 WakeMeOnLan。这款便携式应用程序可以扫描您的网络并协助发送魔术数据包。或者,高级用户可以利用 PowerShell 进行命令行操作,尽管需要稍微多一些设置。
启用 WiFi 唤醒 (WoWLAN)
既然已经实现了通过 LAN 开机,那么如何设置无线局域网唤醒 (WoWLAN) 呢?目前,只有一个 snap 应用程序(网络管理器)提供此功能。
您可以通过 Snap Store 或终端使用以下命令安装它:
sudo snap install network-manager

请注意,这款应用在应用商店中获得了一星的低用户评分。不过,在我们的测试中,它在终端模式下表现良好,并且包含 Canonical 提供的详尽文档。
通过不同的网络管理器激活 WoWLAN 的替代尝试可能会面临限制,因为默认(networkd)缺乏启用方法。
要激活无线局域网唤醒,请使用以下命令:
sudo snap set network-manager wifi.wake-on-wlan=magic
如果担心安全问题,特别是在开放网络上,请使用以下方式设置密码:
sudo snap set network-manager wifi.wake-on-wlan-password=<Your password>
这种方法在安装速度和无线 WoL 功能方面比 ethtool 更具优势。由于它在内核级别运行,因此在断电后仍然可以实现网络唤醒。
然而,Canonical 建议 Ubuntu Core 用户主要使用它,可能是为了最大限度地降低破坏用户操作系统稳定性的风险。
常见问题
我可以使用局域网唤醒功能关闭我的电脑吗?
网络唤醒严格用于将您的 PC 从睡眠或关机状态唤醒,而不是关闭它。
启用局域网唤醒是否存在安全风险?
任何系统都不可能完全没有风险。然而,局域网唤醒需要授权才能恢复运行。只要您使用强密码保护设备,对敏感数据进行加密,并避免使用不安全的网络,启用局域网唤醒通常都是安全的。
如果我的设备断电后局域网唤醒功能停止工作怎么办?
使用 ethtool 实施的更改在断电后不会保留。请重新登录系统以重新启用该服务。相反,通过 network-manager 方法设置的配置即使在断电后也会保持不变。
发表回复 ▼