我已按照https://help.ubuntu.com/community/WakeOnLan但我很难让它工作。我的 BIOS 启用了局域网唤醒功能,我能够使用同一网卡的 Windows 休眠/睡眠功能来实现它。
答案1
如果原因是 WoL 设置在重启后不持久,如上一个答案中所述,那么有一个更简单的解决方案,发布在此处:https://askubuntu.com/a/1051894/883129
- 确保您已安装
ethtool
并wakeonlan
。 - 创建
/etc/network/if-up.d/wol_fix
包含以下内容的文件:
其中 [card] 是您的以太网适配器的名称,例如#!/bin/sh /sbin/ethtool -s [card] wol g
eth0
等enp4s0
(您可以使用命令检查ifconfig
)。 - 然后运行:
sudo chmod +x /etc/network/if-up.d/wol_fix
答案2
答案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 服务又开始工作了。