通过挂起功能唤醒局域网 - Ubuntu 服务器 20.04

通过挂起功能唤醒局域网 - Ubuntu 服务器 20.04

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

谢谢

答案1

网络唤醒功能是一种硬件设置,而不是操作系统控制的功能,因此技术上机器在收到魔术包时保持挂起状态是有道理的。话虽如此,对于希望服务器唤醒并恢复运行的人来说,这可能会相当麻烦。

首先,让我们确认网卡使用的驱动程序是否支持 WoL。打开终端并输入:

sudo ethtool <interface>

笔记:务必更换 <interface> 替换为设备名称。如果你不确定设备名称是什么, ip link show 将提供接口名称。

输出应如下所示:

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

Wake-on检查包含字母的值那不是 d。如果确实如此,则意味着要唤醒机器,它需要接收“MagicPacket”而不是其他东西。机器可能会监听几种不同的选项。完整列表可以找到在文档中(搜索字符串Wake-on-LAN options)。

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

sudo ethtool -s <interface> wol g

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

不幸的是,此命令需要在每次系统启动时运行,因此请确保将其添加到适当的启动脚本中,例如up中的部分规则/etc/network/interfaces

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

答案2

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

sudo systemctl suspend

代替:

systemctl suspend

相关内容