如何在 Ubuntu 16.04 中启用网络唤醒 (WOL)

如何在 Ubuntu 16.04 中启用网络唤醒 (WOL)

如何在 Ubuntu 16.04 LTS 中启用网络唤醒 (WOL)?

答案1

我找到了一种对我有用的更好的方法。至少是一种更干净的方法。显然 Ubuntu 改变了暴发户为了systemd,在 Ubuntu 15.04、Ubuntu 16.04 以及可能还有下一个版本中。我对这两个系统都不熟悉,但这对我来说很管用。

我发布这篇文章是因为谷歌搜索 Ubuntu 16 操作系统以及我多次遇到的类似搜索。这可能会对其他人有所帮助。

为了保持 WOL 正常工作,每次系统启动时我都必须重新启用它。为了避免手动执行此操作,我为此使用了 systemd。这是我所做的:

  1. 首先,创建文件(保留@符号)。将其放入其中:/etc/systemd/system/[email protected]

    [Unit]
    Description=Wake-on-LAN for %i
    Requires=network.target
    After=network.target
    
    [Service]
    ExecStart=/sbin/ethtool -s %i wol g
    Type=oneshot
    
    [Install]
    WantedBy=multi-user.target
    
  2. 在启动时为接口启用此功能,运行以下命令(将 eth3 更改为您的接口):

    systemctl enable wol@eth3
    

    你应该看到类似这样的内容:

    Created symlink from /etc/systemd/system/multi-user.target.wants/[email protected] to /etc/systemd/system/[email protected].
    
  3. 要检查它是否已启用,请运行以下命令(使用您的接口更改 eth3)并且它应该返回enabled

    systemctl is-enabled wol@eth3
    
  4. 为了测试这一点,请重新启动并运行(用您的接口更改 eth3):

    ethtool eth3
    

    您应该看到以下内容:

    Wake-on: g
    

资料来源:

答案2

在 Ubuntu 16.04 中设置WOL_DISABLE=N/etc/default/tlp避免被 TLP 电源管理禁用 WOL。

http://linrunner.de/en/tlp/docs/tlp-configuration.html

添加NETDOWN=no关机/etc/default/halt时防止关闭网卡

/etc/network/interfaces当使用静态网络配置时启用局域网唤醒。

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface

auto lo
iface lo inet loopback
# The primary network interface

auto eth0
iface eth0 inet static
        address 192.168.0.10
        netmask 255.255.255.0
        gateway 192.168.0.1
        dns-nameservers 192.168.0.1
        up ethtool -s eth0 wol g

在 BIOS 中启用局域网唤醒,进入 BIOS 设置并查找“PCI 事件唤醒”、“局域网唤醒”或类似内容。将其更改为启用。保存设置并重新启动。

https://help.ubuntu.com/community/WakeOnLan

警告某些主板/网络控制器不支持冷启动(S5 状态,系统电源物理关闭并重新打开)时的 WOL。在这种情况下,必须执行至少一次电源循环(开机、关机)。为了缓解此问题,可以将 BIOS 配置为在交流电恢复时开机,然后在 Ubuntu 内安排关机。有关更多详细信息,请参阅主板手册。

答案3

在终端中运行以下命令:

sudo ethtool -s {your network interface} wol g 
sudo ethtool {your network interface}

你应该看到G旁边网络唤醒写入第二条命令后

来源

答案4

为了使 WOL 正常工作,请确保关闭电源时系统正确关闭了以太网接口。

请尝试以下操作:

  1. 创建一个名为wol_关机命令/etc/rc6.d/目录:

    sudo nano /etc/rc6.d/wol_poweroff.sh
    
  2. 把这段代码放进去:

    #!/bin/bash
    ifconfig eth0 down
    poweroff
    
  3. 将其复制到/etc/rc0.d目录(因此它也适用于):

    sudo cp /etc/rc6.d/wol_poweroff.sh /etc/rc0.d/wol_poweroff.sh
    
  4. 使它们都可执行:

    sudo chmod 755 /etc/rc6.d/wol_poweroff.sh
    sudo chmod 755 /etc/rc0.d/wol_poweroff.sh
    

sudo shutdown now现在通过使用或关闭您的机器sudo poweroff并使用 WOL 工具向其发送魔术包来测试它是否有效。


这是唯一对我有用的方法。我在 launchpad.net 上的错误报告中找到了这些步骤。

根据作者 Robbie Williamson 的说法,这种方法之所以有效,是因为:

要使 WOL 正常工作,必须在系统关闭过程中正确关闭以太网接口。这应作为运行级别 rc0 和 rc6 的一部分执行,请注意 Linux 通常有 7 种不同的运行级别(或操作模式):

rc0.d——系统停止

rc1.d——单用户模式

rc2.d - 带网络的单用户模式

rc3.d——多用户模式——以文本模式启动

rc4.d——尚未定义

rc5.d——多用户模式——在 X Windows 中启动

rc6.d——关机和重启


来源:https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/981461

相关内容