July 25, 2007

wake on lan

為了在家裡偶爾也可以連到辦公室的電腦處理事情,所以之前下班後,電腦就放著讓他繼續開機... 前一陣子政府及學校開始鼓吹節約能源,想說那就仔細研究 WOL(Wake On LAN) 這個功能好了,如果能成功的話,那我下班就可以放心的把電腦關機,等真有需要的時候,再從遠端把電腦開啟。

當電腦處於關機(或休眠)狀態時,事實上主機板還是有微弱的供電,必有最低的運作能力。所以除了按機殼上的電源開關外,以其他方式讓電腦開機是有可能的。進到 BIOS 的 power 設定畫面,會發現有很多方式可以讓喚醒電腦,例如訂時開機、鍵盤開機、滑鼠開機、甚至開螢幕就會使電腦開機... 而現在要介紹的是WOL:透過網路來喚醒電腦。

how?
準備工作1:(@辦公室的電腦)
(1) 如果網路功能是 onboard,直接跳下一個步驟。如果網路卡是外加的,則要將一條 WOL 線從主機板接到網路卡。這條線負責兩件事:(a) 在電腦關機的時候,送微弱的電力給網路卡;(b) 當網路卡從網路收到喚醒指令的時候,送出訊號給主機板以喚醒整台電腦。
(2) 進入 BIOS Setup,到電源管理的設定裡面,把 Wake On LAN 功能打開。
這樣就已經設定完成了。問題來了,網路卡上面燈號閃來閃去,但是網路卡怎麼知道什麼時候要喚醒電腦呢?這個就牽涉到了 WOL這個技術規範標準... 標準是這樣訂的,如果網路卡收到 magic packet,那它就應該要喚醒電腦。而 magic packet 封包內包含連續 FF FF FF FF FF FF,並且馬上接著出現自己的 MAC 位址重複 16 次。比如說,電腦的網卡卡號是 00-00-E8-2C-64-DF,則當它收到一個包含著

FF FF FF FF FF FF 00 00 E8 2C 64 DF 00 00 E8 2C 64 DF 00 00 E8 2C 64 DF 00 00 E8 2C 64 DF 00 00 E8 2C 64 DF 00 00 E8 2C 64 DF 00 00 E8 2C 64 DF 00 00 E8 2C 64 DF 00 00 E8 2C 64 DF 00 00 E8 2C 64 DF 00 00 E8 2C 64 DF 00 00 E8 2C 64 DF 00 00 E8 2C 64 DF 00 00 E8 2C 64 DF 00 00 E8 2C 64 DF 00 00 E8 2C 64 DF

的封包時,它就會喚醒所屬的電腦。所以,這時候要做一件事情:
(3) 抄下電腦網卡的 MAC位址。

下一個步驟就是,從其他台電腦對發出對應那張網卡的 magic packet。

準備工作2:(@家裏的電腦)
(1) 下載一個可以送出 magic packet 的軟體。如果你是準備從辦公室其他電腦喚醒同樣位在辦公室的電腦 (位於同一個 LAN),那隨便下載一個應該都可以使用。但現在是要從家裡的電腦,就不是隨便一個都好了。我使用 http://www.depicus.com/wake-on-lan/wake-on-lan-gui.aspx 上面的工具,它會以 UDP 封包來封裝 magic packet。
(2) 因為校內都是使用 private IP 位址,從家裡是無法送出封包到辦公室的,所以要先把往學校的 VPN 建起來。
(3) 執行 WOL 程式,
Mac Address 輸入 00-00-E8-2C-64-DF,
Send Option 選 Internet,
Ineternet Address 輸入 10.1.1.0
Subnet Mask 輸入 255.255.255.0
Remote Port Number 2610  (<-- 這個須配合網管在路由器上面的設定)
再點選 Wake Me Up
這樣就 ok 了。

why?
家裡的電腦跟辦公室的電腦屬於不同的 LAN,所以沒辦法直接傳送 magic packet。那要如何做呢,一個顯而易見的選擇是透過 Ineternet,將 magic packet 封裝在 IP,透過 IP 封包來傳送 (在我們的實做上,是將 magic packet 更進一步的封裝在 UDP裡面)。
(待續... 00508D477F98 )

由 bobby0 發表於 July 25, 2007 02:03 AM
迴響