
Windows系统电脑,主板设置WakeOnLan(WOL)打开Enable以后就自动生效了。而相同的电脑在Ubuntu下则无法WOL唤醒,很费解。
首先查看网卡名称(还有很多命令可以查,ifconfig等等等等不一一列举)
ip a
例如我这里网卡名是enp2s0,那么进一步查看网卡信息。
sudo ethtool enp2s0
找到Wake-on这一项,后面的字字母是d或者g。d就是禁用(未开启),g则是开启。我这里是d。
既然没打开,那我们就先打开它:
sudo ethtool -s enp2s0 wol g
再次sudo ethtool enp2s0查看,Wake-on已经变成g了。
关机测试,WOL开机成功。
然而,再次关机后,发现,又没有反应了。手动开机,再次sudo ethtool enp2s0查看网卡信息。Wake-on又变成d了。
也就是说要每次开机都执行一次开启命令,不然就又关了。但总不能让我手动每次输入吧,就算是复制粘贴也的记得弄才行呀,忘了咋办。真麻烦。
要不写个脚本如何。算了,就一句命令,还写什么脚本,直接写进service吧
sudo gedit /etc/systemd/system/wakeonlan.service
写入下面内容,将其中enp2s0网卡名称替换为您实际查到的网卡名称。
[Unit]
Description=Enable Wake-on-LAN
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/ethtool -s enp2s0 wol g
[Install]
WantedBy=multi-user.target
然后允许开机自启动
sudo systemctl enable wakeonlan.service
搞定。
关机前手动运行一次。或者直接重启电脑让它自动运行
sudo systemctl start wakeonlan.service