原文:http://blog.csdn.net/flyoxs/article/details/6583389
背景:很多人熟悉遠端桌面并經常地利用它所帶來的友善,但是前提是伺服器(遠端電腦)必須是處于開機狀态。對于機房裡有專人管理的伺服器,這點不成問題,但如果是放在家裡的電腦,要讓它7*24地開機似乎就不好辦了。是以,關鍵的問題是如何能夠在需要的時候可以啟動/關閉家裡的電腦(或者者說任何連着internet的電腦)。
1.WOL原理
WOL(Wake on Lan),即區域網路喚醒,從根本上來說是硬體裝置提供的一項管理功能。該功能可以當電腦處于關機或休眠狀态時,通過給網卡發送特定的資料包進而指令網卡向主機闆發送開機指令,進而實作上電開機。
可見,網絡喚醒需要硬體(主要是主機闆和網卡)的支援。目前幾乎所有品牌的硬體都支援WOL(2000年以前的硬體産品有可能不具有該功能),但有可能在軟體上預設WOL處于關閉狀态(為什麼不是預設啟用狀态呢?當然是出于安全考慮),如何啟用硬體的這兩個功能,網絡上有很多這樣的文章,下面也将簡單介紹。不同的産品,界面略有不同,但這些都是很簡單的。
a.主機闆WOL啟動:進入BIOS,将“Power Management Setup”中的“Wake Up On LAN”或“Resume by LAN”項設定為“Enable”或“On”。
b.網卡WOL啟動:進入windows後,進入裝置管理器,選擇要用于WOL的網卡,進入屬性視窗選擇“進階”标簽,在清單裡能找到“Wakeup Capabilities(喚醒功能)”設定值為“MagicPacket”或”Both”
如果能找到上述兩種設定的地方,就說明你的硬體是支援WOL的,啟用這些功能後就可以通過區域網路來喚醒了。
要注意,如果電腦非正常關機(比如按Power鍵來強制關機)還是無法WOL的,隻有正常關機後,網卡仍會處于活動狀态可以接收網絡資料。
Magic Packet的具體技術資料可以檢視AMD的網站
http://www.amd.com.cn/chcn/ConnectivitySolutions/TechnicalResources/0,,50_2334_2481_2494,00.html
Magic packet白皮書下載下傳
MagicPacket Technical White Paper
了解了基本的原理,接下來就試試如何來喚醒吧
2.WOL工具介紹
實作遠端喚醒的軟體有很多,原理都是相同的。下面列出幾款常用的WOL軟體:
LanHelper
Magic Packet Utility
NetWaker for windows
WakeOnLanGui(http://www.depicus.com)
這種幾都可以在網絡上找到,由于第三方下載下傳不穩定,就不給出下載下傳位址了。這裡以depicus的WOL軟體為例來說明。
可以在這裡http://www.depicus.com/wake-on-lan/wake-on-lan-gui.aspx下載下傳到WOL for windows,它是個綠色版的小軟體,隻幾百K大小。界面如下:
這個工具不僅可以在區域網路内喚醒電腦,還可以通過internet喚醒電腦(将在下一節詳細介紹)。
首先,得到被喚醒電腦網卡的MAC位址(可以通過檢視對應網卡的屬性找到),再将Send Options選為Local Subnet一項。其它項在區域網路内喚醒時并不重要,也就是說隻要MAC正确,點選“Wake Me UP”就可以喚醒對應的電腦了。
如果需要通過internet來喚醒,也必須確定在區域網路内是可能正常喚醒的。在區域網路内,該軟體會發送Magic Packet的廣播包,如果對應MAC位址的網卡收到該包後,就可以做出響應啟動電腦。
3.通過internet遠端喚醒
WAN與LAN在不同在于在廣域網上,有許多的路由器等網絡裝置,這些裝置可能會使Magic Packet的包不能到達我們想喚醒的電腦網卡上。是以,要實作通過internet來喚醒,必須得到路由器的支援。
下面以TP-Link WR541G+無線路由為例來說明配置過程。
首先確定路由器可以正常接入internet,即通過服務商得到一個公網IP(對于家庭來說ADSL、CableModem是常見的上網方式),進入路由器WEB配置頁面http://192.168.1.1
a. 端口映射(虛拟伺服器)
“轉發規則”-“虛拟伺服器”,添加一新條目,端口為2301(2301是預設的端口号,也可以是其它端口号,隻要不和其它的沖突),IP位址為需要喚醒電腦網卡所使用的IP位址(比如192.168.1.101),協定為UDP,并使之處于“生效”狀态。
這一步使得當路由器收到發到它2301端口的資料都會轉發到192.168.1.101這台電腦上。
b. IP與MAC綁定
“IP與MAC綁定”-“靜态ARP綁定設定”,添加一新條目,MAC位址添為網卡(被喚醒電腦上的)MAC,如00-15-60-CA-1A-B6,IP為上一步設定的IP192.168.1.101
當路由器收到從internet發來的MagicPacket包時,由于設了端口映射就需要将其轉發到192.168.1.101上。但由于電腦是處理關機狀态,ARP無法通過廣播找到192.168.1.101這台電腦,Magic包将被路由器丢棄,是以進行靜态的IP-MAC綁定,使資料包可以直接發往MAC為00-15-60-CA-1A-B6的網卡上。
此時,從理論上來說,通過internet的遠端喚醒就可以成功了。但還有一些工作需要補充,以便更好地工作。
c. 為了確定該電腦在啟動後可以獲得192.168.1.101這個IP,需要在DHCP伺服器中設定一個靜态位址配置設定,即MAC00-15-60-CA-1A-B6靜态配置設定192.168.1.101永不過期。
d. 在路由器上使用動态DNS功能,這樣可以用一個域名來通路而不用檢視經常改變的公網IP(ADSL撥号上網的IP是經常變的)。同時,允許路由器可以進行無端WEB管理,以友善當我們在任何地方都可以檢查路由器的狀态。具體操作可參閱相關資料
配置好了路由器(可能需要重新啟動路由器),就可用上面那個WOL for windows來通過internet過程喚醒(WOL over the internet)。
下面再詳細說一下界面中其它幾項的意思。
MAC位址:同樣需要輸入網卡的MAC位址
Internet Address:IP位址,輸入路由器的公網IP位址(或者域名)
Subnet Mask:子網路遮罩,輸入該IP的子網路遮罩,需要輸入255.255.255.255 。這是個特别要注意的地方,因為普通的家用路由器不支援(或不可配置)子網定向廣播(subnet directed broadcast),是以如果輸入255.255.255.0這樣的掩碼将無法讓路由器轉發Magic Packet包。但是對于允許進行子網定向廣播的路由器,我們就不需要上面對路由器的複雜配置,隻需将子網定向廣播功能啟用即可。
Send Options:發送選項,這次應該選擇“internet”
Remote Port Number:端口号,這個端口号在區域網路喚醒中是無所謂的,因為不論Magic Packet包發到哪個端口都可以被網卡識别。在步驟a中,我們映射了一個端口(2304),隻有發到這個端口的資料才可被路由器轉發,是以在internet喚醒中,這個端口号必須于端口映射中的端口号一緻。
depicus提供了一個線上的遠端喚醒,以友善我們使用:
http://www.depicus.com/wake-on-lan/woli.aspx
遠端開機之後
一旦遠端開機了,就可以通過遠端桌面來使用自己家裡的電腦了(當然也需要在路由器上對遠端桌面使用的3389端口進行映射)。要想關閉電腦,隻需在DOS視窗裡執行shutdown指令。
安全是我們需要注意的問題,可以通過路由器的遠端WEB管理來允許是否可進行internet遠端喚醒(在靜态ARP綁定配置中是否綁定IP與MAC)
目前網絡上大部分關于WOL的文章沒有說明如何在廣域網上wakeup,本人在實驗的過程中查閱了大量的資料,嘗試了多種途徑,最後将認為較為簡便易用的一種寫成此文。感謝這些文章、文章的原作者,感謝趙賢書先生以及我所有好朋友的幫助。如果文中有錯誤的地方請指正,歡迎讨論