如何通过网络远程开启电脑(即WOL(WAKEONLAN))
这个选题比较的简单,我们需要两个东西作为必要前置。
实际上是三个。
至少两台电脑,以及一个不管是不是动态的ip,支持WOL的主板,以及最好是有线网卡。
事先说明。
如果是动态IP,请搞一个域名和ddns。
主板十多年前就支持WOL了,如果你的不支持,请更换主板。
如果你用的是无线网卡,请不要有问题来找我。我只讨论有线。
那么从开头开始说吧。
因为台式机这个东西爆发起来很吵,所以最好是该用的时候再开机。特别是上床下桌的时候,台式机能把震动传到床上,晚上不关机就睡不安宁。但是呢,作为懒鬼,要用的时候我总不可能从床上下去然后去开机——当然得直接通过床上笔记本直接开下面的电脑的机,然后用远程桌面连接。上床下桌,爬上爬下总是累的。
于是,我找到了WOL,也就是局域网唤醒。
WOL的原理就是从网卡唤醒电脑,将网卡作为一种开机键来用,而在这种方式中,你按下关机键的方式就是发送一个“魔术包(magic packet)”。至于为什么是这个名字,请向想出这个名字的开发人员进行咨询。
主板支持WOL也不用细说,现代主板大约都支持,用远古的板子算你倒霉。我们现在来到网卡那方面。
网卡,不同规格的网卡对WOL的支持是不一样的,需要开启的配置不同。问我为什么的话不如去问开发人员。
以linux为例,和mac相同,一般可以使用wakeonlan这个程序。
Ubuntu:
1 | sudo apt-get install wakeonlan |
Mac:
1 | sudo brew install wakeonlan |
windows有自己的应用程序。
当然,你也可以在局域网中直接使用MAC地址进行使用,也就是说,(从标准教程来看但总会出现奇怪问题)可以用以下的代码方式:
1 | wakeonlan xx:xx:xx:xx:xx:xx #服务器网卡地址 |
反正我失败了,所以建议用上面那种精确一些的。
因为我并未使用以linux为主的服务端,所以我以使用华硕主板的windows为服务端作例子。
网卡型号 | BIOS设置 | 网卡属性高级设置 | 快速启动设置 |
---|---|---|---|
Realtek 8111X | Power On By PCI/PCI-E 设置为开启 | “关机 网络唤醒”请保持开启(默认开启的) | 无需设置 |
Intel i218/9V | Power On By PCI/PCI-E 设置为开启 | “启用PME”设置请保持开启(默认开启的) | 取消快速启动 |
Intel i210AT/i211AT | Power On By PCI/PCI-E 设置为开启 | “启用PME”设置请设置开启(默认关闭的) | 无需设置 |
Intel i225-V | Power On By PCI/PCI-E 设置为开启 | “启用PME”设置请保持开启(默认开启的) | 取消快速启动 |
所有设置都需要进入控制面板,不是win11和win10那鸡肋的设置。
快速启动位于控制面板>>电源管理>>选择电源管理功能
BIOS设置在开机的高级>>电源管理
网卡属性在控制面板>>网络和共享中心>>更改适配器设置>>你自己正在使用的网卡>>属性>>配置>>高级
先确定你使用的网卡型号,然后确定你要如何开启WOL。
于是就会有小天才会问一个问题:我是动态ip,没有域名,我要怎么用WOL呢?
两个方案。
买个域名,或者上传你的ip并更新到任意一个代码仓库。前一个需要ddns,后一个需要python脚本循环使用。
没有动态ip?
自己去找物联网设备。去玩向日葵一类的吧。除非你自己写代码,否则救不了你。
我是做了一个桥接的方式,通过我自己在之前做的玩客云小服务器(日常功耗3w左右),不直接把主电脑暴露在公网上,再将这个小服务器进行加密通信,通过内网开启主电脑。
当然你也可以直接把服务器暴露在公网上。
以及,WOL的默认端口号为9。
- Title: 如何通过网络远程开启电脑(即WOL(WAKEONLAN))
- Author: 鸽子 aka. Kar1n
- Created at : 2024-05-01 07:31:46
- Updated at : 2025-01-18 08:49:10
- Link: https://cole-anderson.top/posts/9109d0c6.html
- License: This work is licensed under CC BY-NC-SA 4.0.