相信很多人都有远程开机的需求,有时候需要远程控制家中的电脑办公、玩游戏。远程控制比较好实现,安装类似向日葵的软件即可。而远程开机稍微麻烦一点,有的通过物理开关实现(开机棒)我们选择远程网络唤醒的方式实现,Wake on Lan(WOL)。
必备条件
本方案是通过跟电脑同一局域网下的nas发送唤醒信号,实现远程开机的。首先需要具备以下必备条件,也许其他方案中有些条件不是必备的,这里只是列出了我实现的方案:
- 拥有一台nas或者保持开机的服务器/电脑
- 电脑有线连接路由器
- nas和电脑在同一局域网下
- 主板支持wol唤醒
- 网卡支持wol唤醒
- nas可以外网访问
我家的网络布局
我的电脑虽然是有线连接路由器的,但是连接的路由器是通过无线mesh连接的主路由器。所以我一度以为无法通过wol唤醒,最后居然成功了。
+-- 主路由器 ----+---- 网线 ----+ NAS
| |
光猫 +---- 卧室路由器 (中继) ---+---- 网线 ----+ 卧室电脑
开启主板的wol功能
首先需要开启主板wol支持,近年来的主板基本上都支持这一功能。
- 首先进入BIOS界面(开启按下DEL、F2、F12等按键)
- 找到如下选项开启wol,不同品牌主板的选项和位置不一样。常见名称包括:
- Wake on LAN
- Resume by LAN
- Power on by LAN
- Power Management -> Wake Up Event Setup -> Resume by PCI-E Device (网络唤醒)
- APM Configuration -> Power On By PCI-E/PCIE Devices
- 设置为enabled开启
- 保存后重新启动
部分常见主板品牌的BIOS设置说明:
华硕 (ASUS):
进入BIOS设置界面。
选择"高级模式(Advanced Mode)"。
进入"高级(Advanced)"选项卡。
选择"APM 配置(APM Configuration)"。
将"通过 PCI-E 设备开启电源(Power On By PCI-E/PCIE Devices)" 设置为"已启用(Enabled)"。
微星 (MSI):
进入BIOS设置界面。
选择"设置(Settings)"。
选择"高级(Advanced)"。
选择"唤醒事件设置(Wake Up Event Setup)"。
启用"通过 PCI-E 设备唤醒(Resume by PCI-E Device)"。
开启网卡的wol功能
- 进入设备管理器: 右键点击"此电脑",选择"管理" -> "设备管理器"。
- 找到网卡驱动: 展开"网络适配器",找到您的网卡设备。
- 进入网卡属性: 双击网卡设备,进入"属性"窗口。
- 开启WOL相关选项:在 电源管理 选项卡中,勾选 允许此设备唤醒计算机 和 只允许幻数据包唤醒计算机 ;在<高级>选项卡中,找到 Wake on Magic Packet 或类似选项,将其设置为Enabled。
- 保存设置并退出。
安装wol-web
我家用的是威联通nas,这里不限制品牌,只需要支持docker。还是熟悉的通过docker-compose部署:
version: '3.8'
services:
wol-web:
image: huakunshen/wol:latest
container_name: wol-web
restart: unless-stopped
volumes:
- ./wol-web:/wol-server/data
network_mode: host
配置wol-web
安装成功默认端口是9090,你需要访问nas的ip+9090来配置wol-web。第一次需要注册后才能登录,注册后别人无法注册。
然后注册设备,只需要填写有线网卡的mac地址,ip和port保持默认。mac地址查询可以打开cmd命令行,输入ipconfig /all 找到以太网卡的物理地址(MAC)。
最后点击绿色按钮即可唤醒开机,这里可以注册多个唤醒设备。
外网访问(可选)
到这里如果配置正确已经实现了通过网页访问唤醒电脑,接下来需要能远程访问这个网页才能实现远程唤醒,这里不做具体介绍,可以查看我的另一篇文章:远程访问NAS
如果没有公网IP,有域名,可以通过cloudflare tunnel来访问。