一、實現遠程開機的原理
遠程喚醒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綁定。
三、這是我試着在單位遠程啟動家中電腦的截圖:
家中電腦我上班前退出了的,現在能夠遠程控制,證明已順利喚醒並進入系統。