当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何在 Linux 中启用 LAN 唤醒 (WOL)

作者:精品下载站 日期:2024-12-14 06:37:08 浏览:14 分类:玩电脑

如何在 Linux 中启用 LAN 唤醒 (WOL)


LAN 唤醒 (WoL) 功能允许您通过发送包含要打开的主机的 MAC 地址的特殊广播以太网数据包(魔术数据包)来远程唤醒 Linux 计算机。

在 Linux 上启用 WoL 之前,您需要确保您的主板支持此功能并在 BIOS 设置中启用它。重新启动主机并打开 BIOS (UEFI) 设置。 WoL 选项的名称可能会有所不同,具体取决于供应商、主板型号和固件版本。该选项可以称为

Wake on PCI/PCI-E

,

Power or Resume on PCI/PCI-E

,

S5 Wake on LAN

。找到并启用此选项。保存 BIOS 设置。

ethtool 工具通常用于管理 Linux 中的 LAN 唤醒。安装它:

$ sudo apt install ethtool

列出网络接口:

$ ifconfig

复制以太网 LAN 适配器的接口名称并运行以下命令:

$ sudo ethtool enp3s0 | grep "Wake-on"

[玩转系统] 如何在 Linux 中启用 LAN 唤醒 (WOL)

在这种情况下,WoL 被禁用 (d)。

为特定适配器启用 LAN 唤醒:

$ sudo ethtool --change enp3s0 wol g

Wake On Lan 选项应更改为 g(Wake on MagicPacket)。

这 '

netlink error: cannot enable unsupported WoL mode (offset 36)

' 表示网络适配器不支持 WoL 或在 BIOS 中禁用了 WoL。

[玩转系统] 如何在 Linux 中启用 LAN 唤醒 (WOL)

您现在可以远程唤醒您的 Linux 主机。但是,网络接口的 WoL 选项将在重新启动时重置。有多种方法可以在计算机启动时自动为适配器启用 LAN 唤醒。

NetworkManager 是许多 Linux 发行版(包括 Ubuntu、Rocky 和 Debian)中的默认网络管理工具。在 NetworkManager 中,您可以使用 nmcli 命令为适配器启用 WoL:

$ nmcli con show

复制以太网连接的名称(本例中为有线)并启用 WoL:

$ sudo nmcli c modify "wired" 802-3-ethernet.wake-on-lan magic

检查接口上是否启用了 LAN 唤醒:

$ nmcli c show "wired" | grep 802-3-eth

[玩转系统] 如何在 Linux 中启用 LAN 唤醒 (WOL)

对于其他 Linux 发行版,您可以使用 systemd 在启动时启用 WakeOnLan。创建一个新的 systemd 单元:

$ sudo systemctl edit wol.service --full --force

添加以下配置:

[Unit]
Description=Enable Wake-on-LAN
After=network-online.target
[Service]
Type=oneshot
ExecStart=/sbin/ethtool --change enp3s0 wol g
[Install]
WantedBy=network-online.target

[玩转系统] 如何在 Linux 中启用 LAN 唤醒 (WOL)

启用该服务:

$ sudo systemctl daemon-reload
$ sudo systemctl enable wol.service
$ sudo systemctl start wol.service

检查服务是否正在运行:

$ systemctl status wol

您现在可以测试 LAN 唤醒如何在此主机上工作。复制已启用 WoL 的网络适配器的 MAC 地址。

[玩转系统] 如何在 Linux 中启用 LAN 唤醒 (WOL)

检查 Linux 上的睡眠模式是否已启用:

$ sudo systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target

让你的 Linux 主机进入睡眠状态:

$ sudo systemctl suspend

要在Linux上发送魔术包,您可以使用wakeonlanetherwake工具:

$ sudo apt-get install wakeonlan etherwake

要远程唤醒计算机,请输入其 MAC 地址(WoL 数据包不会被路由,因此计算机必须位于同一 LAN 网段):

$ wakeonlan <MAC-address>

或者:

$ etherwake <MAC-address>

收到魔法包后,计算机应该被唤醒。请注意,WoL 不需要在 Linux 防火墙中打开端口。 WoL UDP 广播数据包由网络适配器直接接收和处理,无需使用 Linux 网络堆栈。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯