遠程開機詳解

Chapter1:遠程喚醒的基本條件
Wake on LAN(WOL),俗稱遠程喚醒,是現在很多網卡都支持的功能。而遠程喚醒的實現,主要是向目標主機發送特殊格式的數據包,是AMD公司製作的Magic Packet這套軟件以生成網絡喚醒所需要的特殊數據包,俗稱魔術包(Magic Packet)。Magic Packet格式雖然只是AMD公司開發推廣的技術,並非世界公認的標準,但是仍然受到很多網卡製造商的支持,因此 許多具有網絡喚醒功能的網卡都能與之兼容。
Boeing、IBM、Cisco、United States Army、Canada Customs and Revenue Agency、Intel Corp、Compaq、Lucent、Microsoft Ltd、Dell Computer Corporation、Hewlett-Packard、Siemens、Walt Disney World Co.、Compuware Corp、AMD (Isn't that ironic)、Nortel Networks、Macromedia Inc.、British Telecommunications plc、eBay等等公司均在使用WOL技術。
要實現遠程喚醒,還需要硬件的設置:
主板和網卡必須都支持遠程喚醒功能。一般目前的主板都支持這個功能(2002年以後的板都有),支持的主板上通常都有一個專門的3芯插座,以便在關機時爲網卡供電。但並非所有的網卡都支持該功能(特別是一些價格較便宜的低檔網卡),要判斷網卡是否支持遠程喚醒功能的方法很簡單,支持遠程喚醒的網卡上都有一個3針的WOL接口和一條3芯的遠程喚醒電纜,通過判斷網卡是否帶有WOL接口即可(有些較新的網卡可能沒有WOL接口也能支持遠程喚醒。這是因爲現在流行的主板支持PCI2.2標準,而PCI 2.2標準不需要通過專門的WOL接口爲網卡供電,允許主板直接通過PCI插槽向網卡提供Standby電源)。
1.硬件連接
網卡安裝完畢後將遠程喚醒電纜的一端插入到網卡的WOL接口上,另外一端與主板的3針WOL遠程喚醒接口相連(該接口旁通常標有WOL_CON的字樣,當然如果主板和網卡都支持PCI2.2標準則無須做這一步)。
需要說明的是,某些主板上已經集成了具有網絡喚醒功能的網卡,只要開啓“Wake on PCI Card”功能就可以了,沒有什麼三腳插座,更不需要專用的三芯連線。
2.CMOS設置
打開CMOS遠程喚醒功能很簡單,只要將CMOS設置中的“Power Management Setup”的“Wake Up On LAN”或“Resume by LAN”項設置爲“Enable”或“On”即可。
ATX電源
必須要使用ATX電源,而且其+5V Standby電流必須比較大,根據Intel的建議,它需要在600mA以上。該電流的大小可以從電源外部標識中的+5VSB(或+5AUX,5VSB)欄裏查到。(絕大部分的網卡在0.7A以下都可喚醒)
如果遠程計算機最後一次關機的時候是屬於非正常關機(突然斷電或者關機時死機等),喚醒就有可能會失敗。在Windows 2000/XP系統中如果在關閉計算機時使用休眠 ,也可能會造成喚醒失敗。這是因爲一些網卡需要復位一個標記,這只有在操作系統正常關閉的時候纔會發生。
軟件的實現方面,其實就是通過socket向目標的機器發送Magic Packet(魔術包),魔術包的格式,包含有連續6個字節的“FF”和連續重複16次的MAC地址。你可以在任何協議的數據包(如在TCP/IP、IPX包)中填上 "FFFFFFFFFFFF"+連續重複16次的MAC地址,就可利用該協議作出一個使用該協議的Magic Packet。只要NIC檢測到數據包中任何地方有這樣的片段,便會將計算機喚醒。
假設被控計算機的Mac地址爲01:02:03:04:05:06 (6 bytes),那麼那臺機器的網卡在數據幀內發現以下的片斷便會將計算機喚醒。
FFFFFFFFFFFF010203040506010203040506010203040506010203040506
010203040506010203040506010203040506010203040506010203040506
010203040506010203040506010203040506010203040506010203040506
010203040506010203040506
正是因爲這個Magic Packet可以封裝在任何協議的數據包中,可以在各種Router和switch之間傳送,而不會影響Magic Packet喚醒的功能。也就是說,不管Magic Packet是來自於LAN還是WAN,只要網卡檢測到Magic Packet就能喚醒。最常被使用的是UDP廣播包,不需要端口號,只要知道被控計算機的MAC地址即可。
注:UDP廣播分兩種,一種是directed broadcast,比如你的網段是192.168.0.X,你就往192.168.0.255發就可以了。另一種是limited broadcast,廣播地址是255.255.255.255
要了解更多請參見“Magic Packet? Technical Documentation”
http://www.amd.com.cn/chcn/Conne ... echnicalResources/0,,50_2334_2481_2494,00.html
Chapter2:局域網遠程喚醒
請你務必弄懂Chapter1中所講解的東西再開始看Chapter2。
首先聲明一點,在你機上安裝任何遠程控制軟件的客戶端都不可以實現遠程喚醒,PCAnywhere、Remote Administrator之類的遠程控制軟件在關機的情況下根本不可能工作,手機短信實現遠程喚醒也是天方夜譚。遠程喚醒只能基於你的計算機的硬件去實現。
現在假設A、B兩機位於同一個局域網中, 要用主控計算機A機遠程喚醒被控計算機B。
那你只要在B機的CMOS設置(有人喜歡叫BIOS設置)中設置好兩個地方:
1.開啓“Wake on PCI Card”功能,沒有這項的設置的話,那可能就要插遠程喚醒電纜了;
這步的目的是“在關機時爲網卡供電”
2.開啓“Wake Up On LAN”或“Resume by LAN”功能;
這步的目的是“讓主板接受網卡發送的喚醒信號”
設置好之後,就保存退出。
在A機你要下載局域網喚醒的小軟件,下面我推薦兩款給大家用吧。
PCnet Magic Packet Utility——AMD的產品,英文介面,需要安裝纔可以使用,功能比較強大
http://dl.pconline.com.cn/html_2/1/59/id=1885&pn=0.html
NetWaker for windows 簡體中文版
http://www.j66.net/lbmagic/doc1.htm
下面以AMD的Magic Packet爲例,在A機下載安裝好。該軟件默認安裝在C:\pcnet\magic_pkt目錄下,由於不會在程序項中或桌面上增加任何快捷方式,因此,要想運行該軟件,用戶必須自己到所安裝的目錄下執行magpac.exe,自己動手將該程序在桌面上建立一個快捷方式當然更方便了。
運行magpac.exe,在“Magic Packets”菜單中單擊“Power On One Host”(啓動某一主機)命令,顯示“Send a Magic Packet to One Host”(向主機發送喚醒數據包)對話框(如圖所示)。在“Destination Ethernet Address”(目標以太網地址)中輸入B機的網卡MAC地址,單擊“Send”(發送)按鈕。B機將自動啓動。
當然,Magic Packet還可以遠程喚醒局域網內多臺計算機,留給你自己去摸索吧。
下面我提供一個圖文版Magic Packet的教程鏈接供大家學習吧:
http://www.codefans.com/ArticleView/Article_1174.html
Chapter3:廣域網的遠程喚醒
1、廣域網中實現遠程喚醒的話,其實也不比局域網遠程喚醒難多少。被控計算機端只要增加一個能獲取公網IP地址、能設置端口映射的設備(如路由器、防火牆)。
現在主流的寬帶上網方式不外乎ADSL跟Cable(即視訊寬頻、有線電視網絡)兩種,都可以使用寬帶路由實現共享上網,下面簡單講下這兩種上網方式下路由器怎樣設置才能獲取到公網IP地址。
ADSL分兩種,一種是固定IP的ADSL,在路由器中選擇固定IP地址上網方式,填上電信分配給你的公網IP地址即可;另外一種是動態IP的ADSL,在路由器中設置PPPoE撥號,填上你的用戶名、密碼,撥號成功後路由器就會自動獲取一個公網IP地址;
Cable的話,只要在路由器設置“自動獲取IP”上網方式,路由器就會自動獲取一個公網IP地址;
正確設置好路由器之後,在路由器的連接狀態那裏可以直接查看其公網IP地址。
2、在路由器中設置允許“Subnet Directed Broadcasts(子網定向廣播)”,並且設置端口映射,將路由器的某一端口映射到被控計算機的任意端口
3、只要路由器通電,主控計算機就能通過互聯網向路由器發送Magic Packet,而路由器與被控計算機之間是通過網線連通的,所以可以很順利地將Magic Packet發送到被控計算機的網卡。路由器實際上起到中間橋樑的作用。
附上能發送Magic Packet的網頁Wake On Lan over the Internet
http://www.depicus.com/wake-on-lan/woli.aspx
Netmask是一個比較值得注意的地方,填錯了的話,目標IP地址就會出錯。
下面我通過一個例子簡單講述一下廣域網遠程喚醒的過程
假設主控計算機爲A機,被控計算機爲B機
B機的所在局域網環境如下:一條ADSL接在4口路由器R1上,R1的4 個口分別連接着S1,S2,S3,S4四臺交換機。B機接在S3交換機的其中一個口。
R1撥號後自動獲取到的IP爲12.34.56.78,B機在局域網中的IP爲192.168.1.167,MAC地址爲BB:BB:BB:BB:BB:BB。
在R1設置端口映射條目如下:12.34.56.78:9——>192.168.1.255:168
這裏192.168.1.255爲192.168.1.167所在網絡的定向廣播地址。
爲什麼不直接映射到192.168.1.167呢?因爲當B機關機後,192.168.1.167這個IP不再與R1通信,R1中關於192.168.1.167的ARP條目也會很快就消失,所有與192.168.1.167這個IP通信的數據包都會被丟棄。
1.A機向12.34.56.78(255.255.255.251)這個目標IP的9號端口發送一個包含FFFFFFFFFFFF和連續重複16次BBBBBBBBBBBB的Magic Packet的單播包,中間經過了N個路由,該單播包順利進入R1;
2.當R1檢測到該數據包端口號爲9,根據端口映射條目將該數據包的目標IP及端口號修改爲192.168.1.255:168,此時該包被R1識別成定向廣播包,因爲R1已設置成允許Subnet Directed Broadcasts,所以該包並沒有被丟棄;
3.R1將這個廣播包向4個口廣播,S1,S2,S3,S4所連的所有端口都收到這個廣播包,即便B機處於關機狀態也會收到該廣播包;
B機的網卡檢測到廣播包中含自己MAC地址信息的Magic Packet,就會被喚醒,而其它機收到之後只會將該數據包丟棄。
4.實際應用中不建議主控計算機通過IP地址去跟路由器通訊,因爲一旦路由器重新獲取IP地址,遠程喚醒就會失效。只要路由器支持動態域名解析(DDNS)功能,可將路由設置成IP地址變更時自動向DDNS提供商重新註冊IP地址,DDNS提供商將根據你的帳號對你申請的域名進行域名解析。設置成功後就可以通過固定的域名去與路由器通訊,喚醒與該路由器直連的計算機。
欲瞭解更多關於DDNS(動態域名解析服務)的信息可參見這裏:
http://publish.it168.com/2005/05 ... nNel=no&cPositi
Chapter4:
網絡遠程喚醒還可以使用調制解調器,只要主板支持Wake-Up On Internal Modem(WOM),那麼電話能通的地方都能利用WOM來實現遠程喚醒。普通的內置調制解調器是不能直接通過PCI插槽得到+5VSB待命電流的,我們需要用一條“WOM”連接線,插到內置調制解調器及主板的WOM的插槽內。若使用外置式調制解調器時則不存在這個問題,因爲工作電壓是由外置式調制解調器單獨的電源變壓器提供的。
確保主機和調制解調器的電源打開電話線已插好,在POWER MANAGEMENT SETUP裏找modem ring resume或者POWER ON BY RING項,將其設定爲ON或者ENABLED。只要Modem處於開啓狀態,拿另一部電話撥打Modem所連接的電話號碼就可以通過WOM實現遠程喚醒了。使用WOM進行遠程喚醒不用擔心電話費的問題,因爲Modem只要偵測到電話震鈴不需要接聽電話就可以啓動機器(所以我們不用花一分錢就可以打國際長途去喚醒位於另一個國家中的計算機了)。
然後WOM有個弊端,所有電話打進來都會馬上喚醒,而這通電話很可能不是你打進的。計算機開着自然就要耗電的啦,當然你可以設置計算機在空閒一段時間後自動關機,這樣可以省下不少電費。但是如果整天有電話打進的話,估計被控計算機也命不久已。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章