Ubuntu 20.04 的 wakeonlan 问题

Ubuntu 20.04 的 wakeonlan 问题

我已按照https://help.ubuntu.com/community/WakeOnLan但我很难让它工作。我的 BIOS 启用了局域网唤醒功能,我能够使用同一网卡的 Windows 休眠/睡眠功能来实现它。

答案1

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

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

答案2

Ubuntu 允许网络计划进行配置。查找接口条目/etc/netplan/*.yaml并启用wakeonlan。例如

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: true
      wakeonlan: true

查看具体信息

更改后运行“netplan apply”。要查看当前设置“netplan get all”

文件名可以不同,检查01-netcfg.yaml其他。也可以创建一个新的。

答案3

我最近升级到了 Linux Mint 20。重新安装“wakeonlan”包后,我发现它不起作用。原来,关机时,wakeonlan 选项被禁用了。下面是我解决这个问题的方法。

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

成为 root...

sudo su

在您想要远程唤醒的计算机上安装 wakeonlan 程序。

apt install wakeonlan

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

ifconfig -a

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

ethtool enp10s0

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

cat >> /root/wol_fix.sh <<EOF
#!/bin/bash
ethtool -s enp10s0 wol g
EOF

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

chmod 755 /root/wol_fix.sh

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

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

重新加载 systemd 管理器配置。

systemctl daemon-reload

启用 wol_fix 服务脚本。

systemctl enable wol_fix.service

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

reboot

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

# [another_computer]$

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

cat >> /home/$USER/wakeuppc.sh <<EOF
wakeonlan -i 192.168.1.255 <MAC ADDRESS>
EOF

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

chmod +x /home/$USER/wakeuppc.sh

答案4

我遇到过类似的问题...我尝试了所有可能的解决方案,但都没有奏效。最后我发现我的问题与 TLP 有关。在其配置中,/etc/ 文件夹中的 tlp.conf 文件,wol 服务已停用,因此在我更改后,wol 服务又开始工作了。

相关内容