远程开机,网络唤醒,出门在外连接家里电脑 so easy。
手里头好几台电脑,家里电脑就这么放着吃灰太浪费了,于是通过Wireguard组了个内网,不在家的时候也能访问。
但是,这时候问题来了,电脑这么一直开着太浪费电,我使用频率也不是很高,有什么可以远程开机的办法么?
诶是有的————向日葵开机棒,这玩意儿虽说稳定,但是秉承着能不花钱就不花钱的原则,还是让我找到了不需要这玩意儿的技术方案。
网络唤醒(Wake On Lan)
这里给大家介绍下这玩意儿是个什么东东。
网络唤醒是一种技术,它允许你通过互联网远程唤醒或激活一台电脑或设备,就像按下电源按钮一样。这对于在不同地方远程控制你的电脑或设备非常有用,因为它可以让你在需要时启动它,而无需亲自到达设备旁。
啰嗦的差不多了,开始干正事儿。
首先呢,我们得确定你电脑主办支持不支持这项技术。我这个主板是微星的B450M-MORTAR-MA。在网上查了查资料,显示是支持WOL的。
我一看这支持就很Nice。立马开搞。
我们在微星的BIOS中设置下如下的配置
- 高级-唤醒事件设置-PCIE 设备唤醒-设置为允许
- 高级-电源管理设置 Erp-设置为关闭
然后开机进系统。
光有BIOS的改动还不行。
Linux中还要安装下软件用来设置,我用的是Manjaro基于Arch的Linux系统
安装ethtool sudo pacman -S ethtool
接着检查网卡enp34s0是否支持
sudo ethtool enp34s0 | grep Wake
Supports Wake-on: pumbg
Wake-on: d
是支持的。
因为使用ethtool
命令设置的网卡启动在设备重启后就会失效,因此采用 systemd 服务开机设置
执行以下Shell命令设置下systemd 服务
sudo cat > /etc/systemd/system/wol.service << EOF
[Unit]
Description=Configure Wake On Lan
[Service]
Type=oneshot
ExecStart=/usr/bin/ethtool -s enp34s0 wol g
[Install]
WantedBy=basic.target
EOF
刷新服务配置
sudo systemctl daemon-reload
设置开机启动
sudo systemctl enable --now wol.service
在 OpenWrt 的软件包中安装luci-app-wol
在服务-网络唤醒中,选择机器唤醒
结合 OpenWrt 的 WireGuard 软件和其他设备组成内网,即可在外连接路由器,使用网络唤醒你的主机