1. 程式人生 > >使用Wake On Lan遠端喚醒

使用Wake On Lan遠端喚醒

客廳裡的那臺htpc,在無下片任務的時候,大部分時間裡都在白白浪費電。主機板是支援wake on lan的,把它弄成可以遠端控制會比較經濟。

首先要設定bios,將電源管理下的 Wake On Lan (或叫PME Event Wake Up) 啟用。

然後在系統裡對網絡卡進行設定(我的htpc跑的是windows xp sp2,網絡卡必須是支援Wake On Lan的,原本用的無線PCI網絡卡不支援,只好使用主機板自帶的網絡卡),首先在"高階"中,將 Wake-On-Lan After Shutdown 的值設為 Enabled,將 Wake-On-Lan Capabilities 的值設為 Magick Packet:

nic-advance
Uploaded with plasq's Skitch!

然後在"電源管理"中,將"允許這臺裝置使計算機脫離待機狀態。"選中(需要先將最上面那個選項選中才能選這個)。不過在測試中發現這個選項似乎不影響最終結果:

nic-power
Uploaded with plasq's Skitch!

通過以上設定,這臺PC已經可以在區域網內被喚醒了。接下去設定路由器。

首先需要使用動態域名,否則在外邊遊蕩裡不知道家裡的寬頻連線正在使用的IP。這一步不作說明。

我用的路由器是TP-LINK TL-WR340G,先加一個 Port Forward,將 UDP 埠7或9轉發至198.168.1.254。這裡假設子網是192.168.1.0。因為要喚醒的PC是待機狀態的,使用它的IP是無效的,所以這裡並不是將埠轉發至目標PC的IP。如果路由器支援轉發至整個子網,則這裡填192.168.1.255便可。我這款路由器不支援,所以只好使用一個並不存在的192.168.1.254:

port-forward
Uploaded with plasq's Skitch!

關鍵的一步到了,為了將 Wake On Lan 的包 (Magick Packet) 轉發至整個子網從而到達目標PC,上面的設定將埠9轉發至了192.168.1.254,那麼如何讓發往192.168.1.254的包到達目標PC呢?答案是臭名昭著的ARP。

在 IP & Binding 中增加一條 ARP 記錄,Mac地址填寫要喚醒的目標PC的網絡卡Mac地址,IP地址填入192.168.1.254。

mac-arp
Uploaded with plasq's Skitch!

通過以上設定,已經可以在任何地方喚醒我的HTPC了。當然還需要一個傳送 Wake On Lane Magick Packet 包的工具,我用的是

WakeOnLan,新增一個新的host,IP/DNS填入路由器的動態域名,Mac址址填入目標PC的網絡卡Mac地址。

wakeonlan-client
Uploaded with plasq's Skitch!

在HTPC上,設定電源管理讓它在空閒15分鐘時自動待機。修改電驢的設定,讓電驢執行時禁用自動待機。

這樣,平時不下片時HTPC是待機著的,我在外面想要下東西時,先將其遠端喚醒,然後通過電驢內建的Web伺服器新增下載任務。

PS:路由器的 Port Forward 真是非常有用。我家裡的幾臺機器通過這個東東,都可以遠端訪問(ssh, Windows遠端桌面, OS X Remote Management,電驢和BT Web管理端)。

PS PS:OS X如果是連在網線上的話,也可以喚醒。相關係統設定在 Energy Saver 下 (Wake for Ethernet network access)。