一、简介
1、试想,当你的linux主机藏在犄角旮旯里面,是不是每次开机都要翻箱倒柜钻桌底,或者你的主机在家里,而自己又经常不在家,让它一直在哪里开着吧,又浪费电。所以远程开机就有了应用场景。
2、Wake-on-LAN简称WOL就是用于远程开机的一种技术,具体可以参考度娘。大致原理,就是通过网络给网卡发送指定的数据,网卡再经过PCI接口唤醒电脑主机。
3、于是信号流向为,可用设备发送信号->远程设备网卡接收信号->主板开机。所以其中的每个环节都要进行配置。
二、主板设置
1、要使主板能够通过PCI开机,首先当然是主板要支持这个功能,不过现在绝大部分的主板都已经默认带有了,只需要在bios里面开启就可以了。
2、博主的主板是华硕,开机按F12进入bios,把Advanced(高级选项)菜单内,Advanced\APM Configuration(电源配置)选项下的Power On By PCI-E(通过PCI上电)项,设置为Enabled。保存退出,主板就设置完成了。
三、网卡设置
1、在ubuntu下设置网卡,那我们就来到了shell终端。首先是输入命令su,然后根据提示输入密码,进入管理员模式。
2、在管理员模式下,执行命令ifconfig,查看当前网卡的设备名称,并且记录下网卡的MAC地址,和网络的IP地址。
3、可以看到,博主的网卡设备名称为enp2s0 。然后执行命令ethtool enp2s0(设备名称)查看设备状态。
其中Supports Wake-on:指的是网卡支持的功能
d-禁用
p-物理活动唤醒
u-单播消息唤醒
m-多播消息唤醒
b-广播消息唤醒
a-ARP唤醒
g-特定数据包magic packet唤醒
s-设有密码的特定数据包magic packet唤醒
Wake-on:指的是网卡远程唤醒相关功能是否开启,参数同上。如果是d,可以通过命令ethtool -s enp2s0 wol g开启唤醒功能。
三、开机软件
1、开机软件使用的是WakeOnLan,下面是博主使用的版本。
当然也可以在github上自行下载。
https://github.com/basildane/WakeOnLAN/releases
2、软件安装完成以后打开,右键空白处,在子菜单中选择“新增主机“。然后在显示属性选项卡内填写名称。
2、在唤醒选项卡内,填写MAC地址(远程设备的网卡MAC地址,在3.2节已经获取到了),子网络遮罩,和电脑名称。子网络遮罩可以通过子网络计算获取。
3、最后在状态控制选项卡内,填写远程设备的IP地址(在3.2节已经获取到了),点击确认。
4、此时软件空白处就会多出一个设备,右键设备,选择唤醒主机,此时,远端设备就会开机啦。
四、注意事项
1、上面所有操作,都是基于同一个网络下实现。比如,两台电脑都是在同一个路由器下联网,且都是第一级(中间没有再间隔其他路由器)。
2、如果两台设备中间间隔有路由器的情况下,就需要使用路由器的端口映射,具体原因可以参考NAT穿刺。
3、如果你的远端设备是通过互联网远程开机,那么你的远端设备就需要有公网IP,这个一般都是需要找网络服务商申请的。
4、一般情况下,家里面的主机也是2和3的条件同时存在,所以两个问题都需要解决。
Windows11下载用了这个软件总是崩溃
解决重启以后,配置失效问题:
执行sudo vim /etc/systemd/system/wol.service创建一个服务
在文件中输入:
[Unit]
Description=Configure Wake On LAN
[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s enp2s0 wol g
[Install]
WantedBy=basic.target
然后保存退出
执行命令:
sudo systemctl daemon-reload
sudo systemctl enable wol.service
sudo systemctl start wol.service