使用 Ubuntu 20.04 的唤醒问题

cor*_*gun 6 wakeonlan

我已按照https://help.ubuntu.com/community/WakeOnLan上的说明进行操作,但无法正常工作。我的 BIOS 启用了局域网唤醒,我已经能够使用 Windows 休眠/睡眠和相同的 NIC 来做到这一点。

bka*_*lli 7

如果原因是重启后 WoL 设置不持久,如上一个答案所述,有一个更简单的解决方案,发布在这里:https : //askubuntu.com/a/1051894/883129

  • 确保您已安装ethtoolwakeonlan安装。
  • 创建/etc/network/if-up.d/wol_fix包含以下内容的文件:
    #!/bin/sh
    /sbin/ethtool -s [card] wol g
    
    Run Code Online (Sandbox Code Playgroud) 其中[卡]是你的以太网适配器,如名称eth0enp4s0等等。(你可以检查此用ifconfig命令)。
  • 然后运行:
    sudo chmod +x /etc/network/if-up.d/wol_fix
    
    Run Code Online (Sandbox Code Playgroud)


小智 1

我最近升级到 Linux Mint 20。重新安装“wakeonlan”软件​​包后,我发现它不起作用。事实证明,关机后,wakeonlan 选项被禁用。这是我解决这个问题的方法。

在计算机上您希望能够远程唤醒...

成为根...

sudo su
Run Code Online (Sandbox Code Playgroud)

在您希望能够远程唤醒的计算机上安装wakeonlan 程序。

apt install wakeonlan
Run Code Online (Sandbox Code Playgroud)

找到您的以太网适配器,我的适配器名为“enp10s0”(通常称为“eth0”)。

ifconfig -a
Run Code Online (Sandbox Code Playgroud)

检查以太网适配器以查看“唤醒”的设置。请参阅下面的链接了解不同的选项及其含义。 https://www.thomas-krenn.com/en/wiki/Wake_On_LAN_under_Linux

ethtool enp10s0
Run Code Online (Sandbox Code Playgroud)

非交互式创建脚本,将“Wake-on”选项设置为“g”,这意味着“Wake on MagicPacket”。为了使下一步 (systemd) 正常工作,您必须将 she-bang 行包含在文件的第一行中。

cat >> /root/wol_fix.sh <<EOF
#!/bin/bash
ethtool -s enp10s0 wol g
EOF
Run Code Online (Sandbox Code Playgroud)

为修复脚本设置正确的权限。

chmod 755 /root/wol_fix.sh
Run Code Online (Sandbox Code Playgroud)

非交互式创建脚本,该脚本将在启动时运行以运行修复脚本。

cat >> /etc/systemd/system/wol_fix.service <<EOF
[Unit]
Description=Fix WakeOnLAN being reset to disabled on shutdown

[Service]
ExecStart=/root/wol_fix.sh
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOF
Run Code Online (Sandbox Code Playgroud)

重新加载 systemd 管理器配置。

systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)

启用 wol_fix 服务脚本。

systemctl enable wol_fix.service
Run Code Online (Sandbox Code Playgroud)

注意:必须重新启动才能使启动脚本生效。或者,您可以仅在下次关机或重新启动之前手动运行 /root/wol_fix.sh 脚本。

reboot
Run Code Online (Sandbox Code Playgroud)

在您想要用来远程唤醒另一台计算机的计算机上...

# [another_computer]$
Run Code Online (Sandbox Code Playgroud)

非交互式创建脚本来唤醒网络上的计算机。“255”表示仅广播到本地网络上 IP 范围的特定子集。

cat >> /home/$USER/wakeuppc.sh <<EOF
wakeonlan -i 192.168.1.255 <MAC ADDRESS>
EOF
Run Code Online (Sandbox Code Playgroud)

添加wakeonlan调用者脚本的执行权限。

chmod +x /home/$USER/wakeuppc.sh
Run Code Online (Sandbox Code Playgroud)