一、实现远程开机的原理
远程唤醒Wake onLAN(WOL),又叫远程开机。现在很多网卡都支持的功能。而远程唤醒的实现,主要是向目标主机发送特殊格式的数据包。其实就是通过socket向目标的机器发送MagicPacket(魔术包),魔术包的格式,包含有连续6个字节的“FF”和连续重复16次的MAC地址。
你可以在任何协议的数据包(如在TCP/IP、IPX包)中填上 "FFFFFFFFFFFF"+连续重复16次的MAC地址,就可利用该协议作出一个使用该协议的MagicPacket。只要NIC检测到数据包中任何地方有这样的片段,便会将计算机唤醒。
假设被控计算机的Mac地址为01:02:03:04:05:06 (6 bytes),那么那台机器的网卡在数据帧内发现以下的片断便会将计算机唤醒。
FFFFFFFFFFFF010203040506010203040506010203040506010203040506
010203040506010203040506010203040506010203040506010203040506
010203040506010203040506010203040506010203040506010203040506
010203040506010203040506
正是因为这个Magic Packet可以封装在任何协议的数据包中,可以在各种Router和switch之间传送,而不会影响MagicPacket唤醒的功能。也就是说,不管Magic Packet是来自于LAN还是WAN,只要网卡检测到MagicPacket就能唤醒。
所以我们要做的是如何让目标计算机的网卡接收到这个开机指令。至于发送指令的功夫已经有软件帮我们做了。这类软件很多,如:LanHelper、Magic Packet Utility、NetWaker for windows、WakeOnLanGui
二、实现远程开机的步骤:
1、网卡开启远程唤醒功能。
2、BIOS开启远程唤醒功能。
3、路由器的设置(要实现WAN唤醒,则需要这步,如果是局域网内的唤醒则不需要):
A、端口映射
“转发规则”-“虚拟服务器”,添加一新条目,端口为7(7是默认的端口号,也可以是其它端口号,只要不和其它的冲突),IP地址为需要唤醒电脑网卡所使用的IP地址(比如192.168.1.8),协议为UDP,并使之处于“生效”状态。这一步使得当路由器收到发到它7端口的数据都会转发到192.168.1.8这台电脑上。
B、IP与MAC绑定
“IP与MAC绑定”-“静态ARP绑定设置”,添加一新条目,MAC地址添为网卡(被唤醒电脑上的)MAC,如00-0B-2F-XX-XX-XX,IP为上一步设置的IP192.168.1.8
C、设置为静态IP
为了确保该电脑在启动后可以获得192.168.1.8这个IP,需要在DHCP服务器中设置一个静态地址分配,即MAC 00-0B-2F-XX-XX-XX 静态分配192.168.1.8永不过期。
D、开启DDNS功能
在路由器上使用动态DDNS功能,这样可以用一个域名来访问而不用查看经常改变的公网IP(ADSL拨号上网的IP是经常变的)。同时,允许路由器可以进行无端WEB管理,以方便当我们在任何地方都可以检查路由器的状态。
4、接下来就可以利用软件启动远程计算机了(如果是局域网间的唤醒,不需要第3步的路由设置)。
注:Mac Address 是目标机网卡而不是WAN口的Mac。因为数据包要有目标机网卡的Mac地址;有做映射的端口都可以试着用,不一定是7;如果是广域网,Subnet Masks要用255.255.255.255;Internet Address就是WAN口的IP地址,如果IP地址不是固定的,就要用DDNS绑定。
三、这是我试着在单位远程启动家中电脑的截图:
家中电脑我上班前退出了的,现在能够远程控制,证明已顺利唤醒并进入系统。