远程开机,网络唤醒,出门在外连接家里电脑 so easy。

远程开机,网络唤醒,出门在外连接家里电脑 so easy。

2023-10-1·devcxl
devcxl

手里头好几台电脑,家里电脑就这么放着吃灰太浪费了,于是通过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 软件和其他设备组成内网,即可在外连接路由器,使用网络唤醒你的主机