遠程喚醒

遠程喚醒、WOL、Magic_Packet

背景:很多人熟悉遠程桌面並經常地利用它所帶來的方便,但是前提是服務器(遠程電腦)必須是處於開機狀態。對於機房裏有專人管理的服務器,這點不成問題,但如果是放在家裏的電腦,要讓它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的網卡,進入屬性窗口選擇“高級”標籤,在列表裏能找到“Wake up Capabilities(喚醒功能)”設置值爲“Magic Packet”或”Both”

如果能找到上述兩種設置的地方,就說明你的硬件是支持WOL的,啓用這些功能後就可以通過局域網來喚醒了。

要注意,如果電腦非正常關機(比如按Power鍵來強制關機)還是無法WOL的,只有正常關機後,網卡仍會處於活動狀態可以接收網絡數據。

Magic Packet的具體技術資料可以查看AMD的網站

http://www.amd.com.cn/chcn/ConnectivitySolutions/TechnicalResources/0,,50_2334_2481_2494,00.html

Magic packet白皮書下載

Magic Packet 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、Cable Modem是常見的上網方式),進入路由器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的文章沒有說明如何在廣域網上wake up,本人在實驗的過程中查閱了大量的資料,嘗試了多種途徑,最後將認爲較爲簡便易用的一種寫成此文。感謝這些文章、帖子的原作者,感謝趙賢書先生以及我所有好朋友的幫助。如果文中有錯誤的地方請指正,歡迎討論

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章