如何透過網際網路遙控電腦開機 (Software: WOL magic packet sender)

為了愛地球以及資訊安全的理由,我的工作機下班時間是關機的。可是,有些時侯,在窩裡,突然需要找一筆存在工作機的資料,郤因為沒關機,連不上他也真不方便,如果實驗室有人還好辦,可以電話遙控金手指,但如果是冷門時段,就只有乾瞪眼的份了。看來愛地球還是要一點代價的,就當偷懶的藉口吧!後來想想,明明大部份的主機板都有支援 Wake On LAN (由網路卡觸發開機) 的功能,何不把它設起來,需要時可以遙控開機。這樣又環保,也不會影響工作進度。作了點功課,如果你也有相同的需要,可以參考一下我的作法。


##ReadMore##

Wake On LAN (WOL) 的原理是電腦在關機狀態時,仍保留網卡作業能力,網卡還是可以接受網路封包,並且對封包進行監測,當它收到一種特殊的封包(Magic packet) 時,就會觸發主機板開機的程序。因為在未開機的狀態,所以無法使用IP定址的方式,封包的傳遞是以廣撥的方式在區域網路傳播,而所有區網的電腦都可以收到這個封包,為了避免誤認封包,造成的一砲多響,所以Magic packet 會帶有網卡的MAC address,只有叫到名字的電腦才會被開啟。其結構是 六個 FF 跟著 MAC 位址 X 16次, 所以不論 TCP/lP, IPX…什麼通訊協定都可以,只要內容包括這一段就可以。當然我們不必為了一個封包寫一支程式。早有好心人寫好了程式了。可以從這裡下載

設定要先從硬體開始,不過,有關如何設定主機與網路卡,各家產品不盡相同,就不在這裡介紹了,通常妳可以從說明書上看到相關說明,,你可以從這裡得到一些的資訊。基本上,你必須確認:  你的主機BIOS 可以接受 Wake on Lan 或有時是也做Wake On PCI。通常在關機時,連線的網卡燈還有亮,大概可以猜測網卡有支援WOL。

如果硬體有支援而且設定正確,接下來就可以下載軟體測試了。先把軟體裝好並執行(幾近一鍵安裝,過程略)。如果要喚醒的電腦在同一個區域網路,可以用廣播的方式。設定如下,hostname 不會用到,但非填不可。至於如何查出網卡的MAC address 可以參考這篇文章。廣播的方式,基本上,所有LAN 的電腦都看得到 magic packet,IP 及hostname 不重要(電腦還沒開機,他並不沒有能力回應他叫什麼名字及IP位址。重要的是MAC address 不能錯。他是識別密碼。
 


很多人說WOL不能透過Internet ,因為識別的方法是MAC address, 封包出了hub,MAC address 就不見了。這種說法應該是個誤會,Magic packet 的位址資訊並非放在表頭,而是其封包內容,所以Magic packet可以各種協定封裝,在lntermet 導向到任何地方。只是困難的時,這個封包的傳遞兩端,一有台電腦沒有開機,不能作任何回應及確認,他甚至沒有IP 位址。所以要達成目標作法可能有點複雜,你必須確保你的Magic packet一路可以過關斬將,牚越所有網路交換設備,並且成功的送到你要遙控的電腦。不過別怕,事實上也沒有那麼困難,大部份的lSP是不會亂欄封包的。所以通常你只要搞定你要被遙控的電腦,設定他所在的網路路由器Router(IP 分享器),開一個UDP Port的通道。把封包從Inter net 傳入Local netWork 中就可以了。路由器會把封包在內網廣播,你的網卡看到自己的MAC address 就會喚醒電腦了。舉個例,你要開機的電腦在區域網路的IP 是 192.168.1.2,你的IP 分享器的IP 是123.1.2.3。為了讓Magic packet 送入區域網路,你要在分享器設一個規則(通常叫 虛擬伺服器或NAT 的功能,請參閱分享器說明書),把 123.1.2.3 port X 的封包送到 192.168.1.2 port 9。X 可以任選,不要跟其他服務衝到就好。設好之後,就可以用下面介紹的模擬接受功能來測試了。



實機測試,少不了要對機器開開關關好幾次,不但傷機器也浪費時間,這個軟體還有一個不錯的功能,就是把軟體切換到模擬接收模式 (Receiver),按下 start  ,他就會開始監聽網硌,當他就收到 Magic packet 時,就會顯示收到的封包內MAC address 的資訊,如果符合你這台機器的網卡設定,基本上就開機就沒什麼問題了。這個在排除Magic packet 網路由的障礙時,超好用的。

看到這個,就表示你成功了!至少在封包傳送上,沒有問題了,如果還是開不了機,多半是硬體的設定問題。

最後還有一個問題,到現在為止我們只學會了開機,沒學當你使用完電腦要如何關機,北極熊只救了一半,如果你的遠端電腦是 window2000, 2003, 2008 可以用遠端桌面登入關機。但如果是 XP, vista 就沒辦法在遠端桌面執行關機指令,我的解決方法是用一支免費的小程式在遠端執行,就可以關機了。

如果有網路設定的經驗,以上的設定應該是不難,花點時間設定一下吧!,下了班就讓電腦休息吧!省點電力愛地球,救北極熊一命,又無損己身!許多細節沒法一一說明,不然可能寫不完了,如果有看不懂,就留個言吧!我盡力回覆。

2009/3/30
陸續有一些網友回報無法由 wake up,我換了一台Router 也發現類似的情況,我又去Google 了一下,發現大部份的家用IP分享器並不支援 Subnet Directed Broadcasts,Magic packet 傳入後,沒有對應IP的電腦可以接(因為還未開機),又不能在LAN中廣播,所以就被丟棄了,還是無法遠端開機,之前學校用的router 是自己架的,所以沒有這個問題,如果你想用家用型IP分享器測試,請先確認一下是不有Subnet Directed Broadcast的功能。



留言

  1. 這個漂亮,看起來很好玩,很有用的資訊,我會找機會玩玩
    不過~我下班後就不碰工作事,對我來講好像沒用 >"<

    回覆刪除
  2. 非常感谢!这个对我很有帮助。

    回覆刪除
  3. 呵,歡迎參考,節能減碳,救救北極熊!

    回覆刪除
  4. 您好,想請教一下

    我電腦的TCP/IP中IP位址設為192.168.0.100
    然後我的主機網路線是接一台AP無線分享器

    我在公司想開起住家這台電腦,卻怎麼試都失敗
    我已將主機板的支援功能開啟,關機時主機後面接網路線處有亮起燈
    您說IP並不重要,但MAC 位址我確定輸入無誤,怎麼還是啟動不了?
    我甚至有在AP中新增一個虛擬伺服器,PORT 9、IP是192.168.0.100、UDP

    請問還有可能是哪邊有問題嗎?看似很簡單的操作,我卻無法成功 >"<

    回覆刪除
  5. 測試時,PORT也是輸入9對吧,MAC是直接打上12個字,不用加任何標點符號沒錯吧?我SUBNET MASK是選255.255.255.255,IP或HOST NAME沒有輸入,這樣沒錯吧?

    回覆刪除
  6. 還是我的IP一定要去跟中華電信申請一個固定IP才行?

    回覆刪除
  7. 你說的中華電信給我的AP的IP,但我不是很有把握是哪一個,我進入我的AP後,看到有LAN & WAN兩組,是要看WAN那一組的IP對吧?但它每次從開機都會變動耶~只有LAN的IP都是固定的。所以我才想是不是該申請固定IP

    但我申請來了,也不知到從何去做設定~我現在是電腦一開機,就會自動連線,WNA就會自行產生一組新IP~

    還有人說什麼DHCP得關閉 @@" 幫幫忙吧 大師@@

    回覆刪除
  8. 還有,忘了問

    我該不該在電腦上的TCP/IP將原先的自動取得IP位址改成手動輸入?
    如果需要!那我是該比照著AP中的WAN那一區資料來輸入嗎?
    我之前是有改成手動過,我AP中 LAN IP是192.168.0.1,所以我IP是輸入192.168.0.100,除此之外子網路遮罩、預設閘道等等~我都是比對WAN中的資輸入,也可正常上網~但剛剛是改回自動取得

    回覆刪除
  9. 真的想救北極熊2009年3月25日 下午3:03

    這是我去向我的AP廠商詢問結果:
    您須於DIR-615下使用 wake-on-lan 功能,於進階設定內的虛擬伺服器建立一規則,應用程式名稱選擇為 wake-on-lan ,電腦名稱欄位選擇您已開啟 wake-on-lan 功能的網卡IP位置即完成於 DIR-615端所需的設定部份
    另外 wake-on-lan 功能如是使用 MAC 來喚醒目標,是無法於網際網路上使用的,如您是使用MAC位址來喚醒僅能於LAN端進行喚醒

    現在是有一派說本來就只能在LAN中喚醒,有一派說也可在WAN中喚醒,我霧煞煞了@@
    我已申請一組固定IP,也將AP中的連線方式選擇固定IP,並輸入那組IP,這樣有誤嗎?以下是我找到另一個網友的步驟

    1.欲被喚醒的電腦BIOS 設定WOL enable
    2.由web進入router 設定遠端管理enable(視需要)
    3.router 設定WOL enable及被喚醒電腦的MAC address
    4.被喚醒的電腦關機power off
    5.別台電腦進入router 啟動WOL ---->完成

    PS:如果是WAN遙控開機則在網址列輸入被喚醒電腦 IP 實體位址

    第2、第3點我不太瞭解如何設定,我只知道在AP中建立一個虛擬伺服器(如上廠商教的),還要設定被喚醒電腦的MAC 這我不太知道要去哪一塊設定

    大家都說的步驟都輕而易舉,我卻是試到快起肖 呵呵呵~還是我的AP不能支援WAN喚醒?有人說這要看那台AP還有沒有支援Subnet Directed Broadcast,這是真的嗎?但炙何有些人都沒提到這一塊

    回覆刪除
  10. 真的想救北極熊2009年3月25日 下午3:18

    麻煩您了 >"<

    我總覺得失敗原因是我IP哪裡有設不好,請您幫我檢查一下,首先我的router ip是192.168.0.1,我跟中華電信要了一組固定IP為59.126.227.xxx,在router中PPPOE連線我選固定PPPOE,ip位址為59.126.227.xxx,使用者名稱也改成xxxxxx@ip.hinet.net,因為如果不這麼作,我的wan ip位址每次都會不同,別說WAN啟動,我連在LAN想啟動都難

    我電腦區網中的tcp/ip的ip位址設為192.168.0.100,其餘subnet mask或閘道都比照router中wan裡的資料輸入,但只有ip位址與router的wan不同,因為router wan中的ip位址是我固定59.126.227.xxx的這組,然後使用cmd指令查詢,我的ip位址是192.168.0.100 不是59.126.227.xxx這組,這樣正確嗎?

    然後我聽從d-link廠商的回覆指示,在虛擬伺服器中建了一個wake on lan,ip是192.168.0.100,UDP,port 9 這些都是router自動幫我輸入的

    我在裝置管理員中的網路卡介面裡,有把相關設定都改成enable了,只差裡頭有一項是網路位址,預設選項是「不存在」,我需要改成手動輸入嗎?如果是要輸入哪一組ip?

    回覆刪除
  11. 我會努力救北極熊2009年3月25日 晚上8:23

    真是感謝您的耐心回覆,大致瞭解原理了~
    不過我疑惑的是,bios也有防火牆?這我到是玩了六、七年電腦,今天第一次聽到耶^^" 我的主機板說明書中也沒有提到有這一塊。然後您指的「確定 BIOS防火牆或防毒軟體設定正確 」這是指操控端的部份吧?(因為要被喚醒端的PC是關機的應該不影響吼)

    此外,我的虛擬器中並沒有設定到[59,129..:port 9] 這部份,只有設[192,168..:port 9] 這沒錯吧?還是兩個都要建?

    還有,如在公司用WOL軟體,MASK不是應該選0.0.0.0(NETWORK BROADCAST)這個喔?

    回覆刪除
  12. 我查了一下,可能跟AP上Subnet Directed Broadcasts功能有關,詳內文。

    回覆刪除
  13. 感謝您的教學,我已經設定成功了 ^o^

    不過,我可以在XP 遠端桌面執行關機指令喔~

    只要在工作列上按滑鼠右鍵

    選「工作管理員」,再選「關機」選單

    就有關機的選項了 ^^ ~~

    回覆刪除
  14. 請問哪裡可以下載這個 wol 程式呢 ?

    回覆刪除
  15. 我是真的想救北極熊2009年10月16日 下午3:39

    感謝你
    可是我received 成功
    還是開不了機
    是硬體的問題嗎
    有哪些要檢查的?


    我是真的想救北極熊

    回覆刪除
  16. 網路上找來的方法
    Magic packet over vpn

    http://www.dslreports.com/forum/r19476437-Send-WOL-over-VPN
    只不過不知道支援的是PPTP還是IPSec的VPN

    回覆刪除
  17. 環境:
    中華電信光纖10mb
    A電腦:固定IP,直接接至中華數據盒
    B電腦:浮動IP,直接接至中華數據盒
    於(http://magicpacket.free.fr/)下載 WOLSetup15.msi 軟體

    測試一:
    A與B電腦都撥接上網
    使用 WOLSetup15.msi 軟體在 A電腦設為 Receive模式,B電腦為Send模式;
    B電腦設好IP與MAC Address後,Send後A電腦都可以收到訊息。
    使用 http://www.dslreports.com/wakeup 輸入IP與MAC Address後,Send後A電腦也可以收到訊息。

    測試二:
    A電腦關機,B電腦撥接上網
    B電腦設好IP與MAC Address後,Send後A電腦沒有反應。
    使用 http://www.dslreports.com/wakeup 輸入IP與MAC Address後,Send後A電腦沒有反應。

    可是B電腦設好IP與MAC Address後,”Subnet Mark”選Network Broadcast,Send後A電腦是會開機的。

    請問有沒有可能那個環節有問題,好想用Internet模式叫用家裡電腦起床呀。

    回覆刪除
  18. 板主回覆:
    上面的圖是在Lan中測試,所以不用IP,你如果要從公司開家機,會跨入internet, 所以一定要有AP對外的IP Address,才能把封包經由internet送到你的AP上, 換句話就你要知道中華電信分給你的AP的IP是多少,然後把IP填在圖一的host name 那一欄(文中的例子是123.1.2.3),然後設定AP的port 讓 magicpacket 可以穿過AP,送到你的家機。

    你不一定要申請固定IP,因為AP開著,通常可以咬住分配的IP,所以一旦分到了,換的機會不大,只是你要從 AP 的設定介面中,查出來分到的AP是多少就是了。

    回覆刪除
  19. 板主回覆:
    AP 重新開機是會再去要一個IP, 所以IP就會變, 如果AP一直開著通常可以維持一陣(視中華電信設定而定), 關閉DHCP是為了阻止IP的變動, WAN不建議這樣設,會干擾WAN其它電腦的運作。LAN 是用broadcast 的,沒有IP的限制,關不關DHCP 就沒有什麼重要了。不過,各家AP 設計不同,也不一定能一體適用。

    回覆刪除
  20. 板主回覆:
    理論上,WAN傳進來的 magic packet 會在LAN 廣播,所以1 or 100 同樣都收的到,而且未開機前你所有PC上的TCP/IP設定都沒載入,所以無關開機,關鍵只在BIOS的設定。

    我猜你的問題在packet 無法從公司傳到家機,當然BIOS設定也有可能有問題。你可以分段測試,把電腦搬到公司,測試內網下可否成功(BIOS設定正確),再來解決封包傳遞的問題。

    回覆刪除
  21. 板主回覆:
    AP 上的的WOL 只是幫你作 NAT 指到 port 9 文中已經說明了,其實是用TCP/IP 去傳封包的,所以WAN 跟 LAN 都可是行的,至少在我的機器上是可行的. 困難在如何把封包送到該去的位子,因為有一台機器沒開,所以必需靠外在環境來設定。

    回覆刪除
  22. 板主回覆:
    您的設定大致沒有什麼問題,WAN ip: 59.129..., LAN ip: 192.168.....
    所以你在公司用WOL軟體,sent: host name [59.129..], Mask[255.255..],[Ur MAC], [UDP], [9]。WOL software 就會發一個magic pocket 會帶著 [Ur MAC] 以TCP/IP 的方式,從公司來到中華電信,依[59,129..:port 9] 找到你家的AP, 你的AP看到port 9, 就送進了 192.168.0.100, 不過,家機沒有開,所以其實他也不知道他是 192.168.0.100, 不過,他看得懂[Ur MAC] 再是他的名字,如果BIOS允許,他就會自己開機了,故事這這麼簡單。


    小小的封包從貴公司流浪到家機的路很長,可能會陣亡在其中的任何一個環節。封包可能會被公司的MIS欄下,中華電信的hub 可能會濾掉 port 9 的封包,也可能是你公司的防火牆或防毒軟體檔下了.....,這些是你沒有辦法 trouble shoot 的。我的建議是你可以分段測試。

    1. test in LAN 確定 BIOS防火牆或防毒軟體設定正確

    2. 在兩端都開機的狀態下,一台sent 一台 recieved測試你的設定。

    3. 最後才是實機的測試。

    沒有一些網路基礎知識比較難找問題,不過參數不多,可以經由一步一步邏輯實驗,找出正確的方法,為了救北極熊,請加油!

    回覆刪除
  23. 板主回覆:
    是公司機BIOS設定, 防火牆或防毒軟體設定, (不過,有些BIOS的確可以作網路控制的設定喔!)

    AP 設定參照 DIR-615 說明即可。WOL可設的參數不多,你分段測一下,很快就可以找到你要的設定。

    回覆刪除
  24. 板主回覆:
    在文章第二段有附上連接喔! 可以點點看!

    回覆刪除
  25. 板主回覆:
    其實我不是這方面的專家,回答這些問題很惶恐, 不過我大致推理一下,您可以參考一下.
    test1:
    兩台都已經連線,都有IP, 所以 magic pocket 發出去時, 內網的Routor 會把他送到對的地方

    test 2:
    A關機, B 送出去的 pocket, Routor 並不知道要往裡送(A 沒開,就沒有IP), 理論上是應該會在內網 broadcast , 而 A 如果有 WOL功能, 會監聽到而被喚醒, 你的 broadcast 實驗也有成功, 那麼原因可能是你以 IP 方式的 magic pocket 被你的 routor 送出去或者掉棄了,所以在沒有在內網出現, A 機也就沒辦法監聽到了. 我猜是這樣的

    回覆刪除
  26. 請問真有人成功由Internet 遠端喚醒開機嗎?
    我試了兩週,最後中華電信負責開modem規格的工程師跟我説
    目前magic packet都會被modem擋住。
    Wake on LAN 不難,但over the Internet 真把我搞暈了。
    請問版主有空協助嗎?謝謝~
    s60.z523@gmail.com

    回覆刪除
  27. 中華電信今天捎來消息
    確定台灣兩大家合約廠商提供中華電信一般用戶的Modem
    會擋掉magic packet且在各縣市主機房也會擋一次
    (要讓magic packet通過 會有一點點的安全問題需要考量喔!)

    看來北極熊還是想別的辦法救吧~
    大家能隨手關燈就不錯啦~

    wake on lan over the internet 多麼有雲端的雲端啊~

    回覆刪除
  28. 感謝您的教學,我已經設定成功了,方法無誤確認可行
    Wake On LAN (WOL)程式 +中華電信+P874+內設硬體撥接(不關機可以固定IP)+NAT PORT 9 & 32767+MAC+真實IP+WIN7+LENOVO W520
    並未使用DMZ,提供給大家參考
    我也要雲端減碳

    回覆刪除
    回覆
    1. 我很努力減碳中2012年10月19日 晚上10:11

      真是的高興太早點了,原因是AB兩機區網下WOL都測試都沒問題(遠端開機及互傳MAC TEST都沒問題)。
      WOW則僅有第一次成功(原因目前不明,有可能第一次逃過機房過慮嗎?),但是A B 兩機異地INTERNET互傳TEST,一直都有收到對方MAC訊號(看樣子都有收到魔法封包不是嗎?),請問版主可以給再下建議的測試方向嗎?
      小弟不勝感激,謝謝

      刪除
    2. 我猜是你區網的Router收到 Magic pocket 時, 並不會對內廣播, 你在開機時他知道要送給誰 (NAT設定的), 關機的狀況Router 找不到NAT的對象, 就把封包丟棄了, 要具備有 "Subnet Directed Broadcasts" 功能的 Router 才能順利達陣. 這是目前大家遇到最多的問題.

      刪除
    3. 很努力減碳中:
      可有簡單程式測試router是否具備"Subnet Directed Broadcasts" 功能
      有一篇說是成功了http://www.mobile01.com/topicdetail.php?f=507&t=2849385&p=4#37243843
      閣下可有看法可以提供12,謝謝您的回覆。
      感恩

      刪除
    4. 要測試 "Subnet Directed Broadcasts" ,最好的方法是用 sniffer 去監聽區網內封包, 不過 sniffer 不太好搞, 01那一篇提供了一個很棒的方法,用ARP 綁定IP的MAC address, 這樣在機器不開機的狀況下, 可以根據MAC address 把封包該送到指定的網卡, 進行啟動.

      至於 S.D.B and Arp binding, 我也不知道什麼機子有支援, 不過,是我的話.,我會選一台可以刷 Rom 的 router, 換上 TOMATO or DD-WRT, 這些都支援 sub-direct broadcast or ARP binding 的作業系統, 實事上,也有人這麼做了,參見. http://www.dd-wrt.com/wiki/index.php/WOL

      刪除
  29. 我很努力減碳中2012年10月23日 上午9:59

    http://blog.indeepnight.com/2010/01/wake-on-lan-and-windows-shutdown.html內文有說到:基本上都可以支援從網際網路上來遠端喚醒在路由器之後的主機,只要在設定的部分將「IP與MAC ADDRESS綁定」(讓IP與啟動的MAC ADDRESS對應)及「虛擬伺服器」(開放MAGIC PACKET),如果連這兩個功能都沒有的話,真的就需要有支援「Subnet Directed Broadcast」的Router才行得通。
    看樣子P874具有靜態Static IP Lease List:IP MAC+NAT應還是有機會達陣,只是我沒資格發問版主~~殘念
    目前我還暫時用WAKE ON RING~~戒急用忍~~雲端減碳還要加把勁~~謝謝您的建議。

    回覆刪除
    回覆
    1. 我很努力減碳中2012年10月27日 清晨7:13

      為了北極熊的未來,小弟選擇出手TP-LINK家族有中文操作介面的無線路由器,您的高見是對的,可以刷DD-WRT的韌體介面之內,幾乎都可看到WOL的蹤跡,所以幾番考量之後,就讓一張小孩與6張國父負氣離家出走。P874(LAN)+WR1043ND(WAN)網段獨立並連,其使WR1043ND為獨立通道(如此S.D.B才可發功),簡單設定01該文的3個步驟,真的搞定了。測試了互聯網頁及WOLSetup15.msi都可以遠距開機,但是AMD家的MAGIC_PKT程式則是區網開機可以,WOW好像就不靈光了,不知是真的被機房檔了嗎?但是請別再說中華電信雲端開機WOW是那麼雲端了~~ /^o^\
      回報至此,謝謝版主了~~*_*

      刪除
    2. 我代北極熊謝謝您...

      刪除

張貼留言