我已按照https://help.ubuntu.com/community/WakeOnLan上的说明进行操作,但无法正常工作。我的 BIOS 启用了局域网唤醒,我已经能够使用 Windows 休眠/睡眠和相同的 NIC 来做到这一点。
如果原因是重启后 WoL 设置不持久,如上一个答案所述,有一个更简单的解决方案,发布在这里:https : //askubuntu.com/a/1051894/883129
ethtool并wakeonlan安装。/etc/network/if-up.d/wol_fix包含以下内容的文件:
#!/bin/sh
/sbin/ethtool -s [card] wol g
Run Code Online (Sandbox Code Playgroud)
其中[卡]是你的以太网适配器,如名称eth0,enp4s0等等。(你可以检查此用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)