很多人和我一样有很多台电脑,公司一个,家里一个,还有笔记本一台。你可能也有过这样的经历:在公司想访问家里的电脑里的文件,却想起了家里电脑没有开机;冬天在暖和的被窝里打开笔记本看片,却想起片源还在关掉的台式机里面,在痛苦的思考了半晌后决定放弃。如果能远程开机就好了!也许你想问为什么不一直开着机器呢?如果你能忍受环保主义者的口水和拿着电费账单老婆的怒火,那我不得不承认你是个坚强的人。
其实远程开机已经存在很多年了。从Intel和IBM在1997年公布标准以来,现在几乎所有的主板都支持网络开机。经过合适的设置,我们可以在局域网或者广域网上开启另一台电脑,甚至用手机开启电脑!但这条路上充满荆棘,我们一起来看看它的原理和都有哪些陷阱。
网络开机叫做Wake-on-LAN,缩写是WoL。过程很简单,即通过发送一组特殊格式的网络封包(Magic Packet)给某个mac地址的电脑,让该电脑从睡眠模式甚至是关机模式苏醒,即从ACPI的Sx(S3,S4,S5)模式返回S0运行模式。Sx的定义见(一起学习电脑如何睡眠S3)
1. 固件
固件需要保证网络设备和网口(Phy)的电源在Sx的情况下保持供电,以用来监听网络中的Magic Packet。这通常都是通过写一组主板芯片组的寄存器来实现的。
2. Magic Packet
这组特殊封包看起来是这样:
它通常被发送的该机器的UDP端口7和9。如果网卡在Sx的状态收到了这组封包,它就知道有人要开机,它会通过PME#或者其他方式唤醒电脑。
原理看起来相当简单,但具体操作起来却充满陷阱。
1. 硬件
如果你是在十年内买的电脑或者主板,而且使用板载网卡连接网络,那么恭喜你,你的硬件已经合格!相信没有人还在用十年前的电脑,但确实有些人在用PCI/PCIe扩展的网卡,这些网卡要支持WoL,有个三个针脚的连线需要连接主板,如下图:
需要连接主板的:
2. 固件设置
市面上几乎所有UEFI固件都支持WoL,但坑爹的是几乎所有的WoL缺省都是关闭的,而且如何打开千差万别!下面有几个例子:
窍门就是寻找Wake up、NIC、PME、PCI等等。
3. 操作系统
我们同样需要在操作系统里面开启WoL。打开设备管理器,找到你的网卡,右键点击并选择属性:
在电源管理里面有关于它的设置:
这是第二个坑。不同网卡的设置位置和说明完全不同,有些网卡还需要在高级设置里面打开Wake on Magic Packet:
而有些不用,如我这个Intel网卡就不需要。
4. WoL软件
唤醒软件有不少,大部分都是免费的,这里推荐两个:
Depicus:有图形接口和命令行接口的软件,下载地址(
http://www.depicus.com/wake-on-lan/welcome.aspx)。
Wake On Lan:丰富的图像接口。
下载地址(
https://sourceforge.net/projects/aquilawol/)
大家也可以在App store或者google market上搜到很多WoL的应用。
5. 广域网设置
如果你的目标电脑躲在家里的路由器后面,那么这又是一个大坑。基本来说有两个步骤;
A . 你需要知道你家的IP地址。而大家知道ADSL每次拨号后IP都会重新分配,这就需要一个中介将一个名字转换成你的动态IP。大家可以搜索花生壳等工具,而现在有很多只能路由器是支持花生壳的。转换成功以后你就可以只要用名字来访问了。
B. 你需要设置路由器的端口地址转发DMZ。这样你访问路由器的广域网IP才会给你转发成内网IP。每个路由器设置界面千差万别。请大家根据自己的路由器型号自行Google.
6. 其他
你终于可以远程开机了,但开机后又能干什么呢?最好和远程桌面一起使用。这里推荐Teamviewer。
电脑上各种“远程桌面控制”软件大家应该都不陌生了,偶尔可能都会用一用。但是,它们都有一个共同的“缺陷”,就是不能远程开机!将其和WoL结合起来终于形成了完整的闭环。但其中WoL不太广为人知的原因可能和设置中有太多环节和太多陷阱有关,也许市场期待某个“一键开启WoL”类软件的出现(市面上有个“向日葵开机棒”小设备,不过不太好用)。