Ubuntu 18.04 LTS 启用 WakeOnLAN
本文记录局域网内,网络唤醒主机的办法,需要BIOS开启WOL支持。
1. 本机安装ethtool
sudo apt install ethtool -y
2. 查看本机MAC地址
ifconfig -a
本机网卡名为eno1
,有的名叫eth1
,MAC地址保存在如下行内:
ether xx:xx:xx:xx:xx txqueuelen 100 (Ethernet)
3. 本机配置开机启动ethtool服务
一种是写死使用的网卡:
sudo vi /etc/systemd/system/wol.service
wol.service 编写如下:
[Unit]
Description=Configure Wake On LAN
[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s INTERFACE wol g
[Install]
WantedBy=basic.target
然后设置开机启动:
sudo systemctl daemon-reload
sudo systemctl enable wol.service
sudo systemctl start wol.service
另一种是通过参数指定网卡,推荐使用:
sudo vi /etc/systemd/system/wol@.service
注意这里有一个@
,后面使用的时候会有对应用法。
wol@.service 编写如下:
[Unit]
Description=Wake-on-LAN for %i
Requires=network.target
After=network.target
[Service]
ExecStart=/sbin/ethtool -s %i wol g
Type=oneshot
[Install]
WantedBy=multi-user.target
调用的时候注意传入网卡名称,如本机网卡名为eno1
:
sudo systemctl daemon-reload
sudo systemctl enable wol@eno1
sudo systemctl start wol@eno1
4. 远程启动机器
首先安装wakeonlan包:
sudo apt install wakeonlan -y
然后直接把MAC地址作为命令行参数
wakeonlan <MAC-Addr>
奇怪的是,我在局域网内另一台有线联网的主机可以唤醒该主机,笔记本无线联网却无法唤醒??
参考
https://askubuntu.com/questions/764158/how-to-enable-wake-on-lan-wol-in-ubuntu-16-04
最后一个是netplan启用wakeonlan的方法