通过挂起在 LAN 上唤醒 - Ubuntu 服务器 20.04

Ben*_*via 5 server suspend wakeonlan wakeup 20.04

我使用的是 Ubuntu 服务器 20.04,并且我已经设置了 LAN 唤醒。当我关闭计算机时一切正常,我可以唤醒它。但是当我挂起它时:不可能通过局域网唤醒它。有人遇到过这个问题吗?如果有人有解决方案,非常欢迎。

谢谢

小智 2

局域网唤醒功能是一种硬件设置,而不是操作系统控制的东西,因此从技术上讲,机器在接收到魔术数据包时保持暂停状态是有意义的。也就是说,对于那些希望服务器唤醒并恢复运行的人来说,这可能会很麻烦。

\n

首先让\xe2\x80\x99s确认网卡使用的驱动程序支持WoL。打开终端并输入:

\n
sudo ethtool <interface>\n
Run Code Online (Sandbox Code Playgroud)\n

注意:请务必替换 <interface> 为您的设备名称。如果您\xe2\x80\x99不确定名称是什么, ip link show 将提供接口名称。

\n

输出应如下所示:

\n
Settings for enp0s31f6:\n    Supported ports: [ TP ]\n    Supported link modes:   10baseT/Half 10baseT/Full \n                            100baseT/Half 100baseT/Full \n                            1000baseT/Full \n    Supported pause frame use: No\n    Supports auto-negotiation: Yes\n    Supported FEC modes: Not reported\n    Advertised link modes:  10baseT/Half 10baseT/Full \n                            100baseT/Half 100baseT/Full \n                            1000baseT/Full \n    Advertised pause frame use: No\n    Advertised auto-negotiation: Yes\n    Advertised FEC modes: Not reported\n    Speed: 1000Mb/s\n    Duplex: Full\n    Port: Twisted Pair\n    PHYAD: 1\n    Transceiver: internal\n    Auto-negotiation: on\n    MDI-X: off (auto)\n    Supports Wake-on: pumbg\n    Wake-on: g\n    Current message level: 0x00000007 (7)\n                   drv probe link\n    Link detected: yes\n\n
Run Code Online (Sandbox Code Playgroud)\n

检查 的值是否包含非 的Wake-on字母。如果是这样,这意味着唤醒机器,它需要接收“MagicPacket”而不是其他东西。机器可能正在侦听多种不同的选项。完整的列表可以在文档中找到(搜索字符串)。 dWake-on-LAN options

\n

如果值为d,则表示唤醒值已禁用。如果是这种情况,您可以使用以下命令启用它:

\n
sudo ethtool -s <interface> wol g\n
Run Code Online (Sandbox Code Playgroud)\n

-s意思是“设置”,<interface>是网络接口,wol是“Wake on LAN”,g是“MagicPacket”。您还可以选择其他唤醒选项,这些选项已记录在上面的链接中。

\n

不幸的是,每次系统启动时都需要运行此命令,因此请务必将其添加到适当的启动脚本中,up例如/etc/network/interfaces.

\n

希望这能为您提供将计算机从挂起状态唤醒所需的信息。

\n


小智 0

当我这样做时,它对我有用:

sudo systemctl suspend
Run Code Online (Sandbox Code Playgroud)

代替:

systemctl suspend
Run Code Online (Sandbox Code Playgroud)