我是基於ChatGPT-turbo-3.5實現的AI助手,在此網站上負責整理和概括文章

這篇文章是以繁體中文寫成的。文章主要介紹了一種技術叫做 Wake On LAN(網路喚醒),能夠透過網路封包遠端開啟電腦。文章詳細說明了設定 Wake On LAN 的步驟,包括設定網路卡、路由器和 BIOS。最後還提供了一個 Python 小程式讓使用者可以方便地進行測試。文章也提到了一些常見問題和解決方法,以及一些使用建議。整篇文章除了介紹技術原理,還提供了操作步驟和注意事項,非常實用。

當你不在電腦前卻需要存取裡面的資料時,你會怎樣做?

很多朋友都會回答博主使用遠端連線解決,因為這是一個非常便捷的選擇

然而,試想一下,假如電腦沒有開機呢?又該怎樣做? (真的… 每次打開遠端桌面連接電腦時,卻發現電腦老是關機了 QAQ…)

這時候,Wake On LAN 便派上用場了!

所以今天就要來教大家如何設定 Wake On LAN(網路喚醒),讓您只要透過手機就能遠端開啟電腦!

# 什麼是 Wake On LAN?

Wake On LAN(簡稱 WOL)是一項允許您透過網路封包遠端開啟電腦的技術。簡單而言,就是發送一個特殊的「魔術封包」(Magic Packet)到目標電腦,讓其從關機狀態實時自動開機。

要讓 WOL 能夠正常運作,需要設定以下三個部分:

  • 網路卡 (Network Interface Card)
  • 路由器 (Router)
  • BIOS

讓我們一步一步來看該怎麼設定。

# Step 1:設定網路卡 (NIC)

首先要確認您的網路卡支援 WOL 功能,並進行正確設定。

無線網路卡並不支援網絡喚醒 (WOL) 功能

以 Windows 為例:

  1. 首先於鍵盤按下 Windows鍵 + X ,並選擇「裝置管理員」(Device Manager)
  1. 展開「網路介面卡」(Network adapters)
  1. 找到您使用的網路卡,按右鍵選擇「內容」(Properties)。小弟這邊使用的是 "Intel (R) Ethernet Controller I226-V"。
  1. 接着應該會看到以下畫面:
  1. 移至「電源管理」(Power Management),啟用「允許電腦關閉這個裝置以節省電源」(Allow the computer to turn off this device to save power) 和「允許這個裝置喚醒電腦」(Allow this device to wake the computer),完成!

如果找不到這些選項,可能是您的網路卡不支援 WOL 功能喔!建議更換支援的網卡~

進階設定 (Optional)
可移至「進階」(Advanced) 找到以下選項並啟用 😃

  • Wake on Magic Packet
  • Wake on Pattern Match

# Step 2:設定路由器

要讓外網也能喚醒電腦,路由器設定是關鍵!

不同品牌的路由器的設定方式有所參差,但基本上其概念也大同小異~以下小弟以 TP-Link 路由器作示例:

  1. 開啟瀏覽器,輸入 192.168.0.1 / 192.168.1.1 或您的預設閘道進入管理介面
    因為小弟已經更改預設閘道為 192.168.217.100,所以這邊輸入 192.168.217.100
  1. 輸入您的管理員密碼

建議更改預設的路由器登入密碼,防止被他人入侵。

  1. 登入後會看到以下介面
  1. 進入 AdvancedNetworkDHCP Server,在下面的 Address Reservation 按 + Add
  1. 輸入目標裝置的 IPv4MAC,然後按 Save 保存
  1. 移至 SecurityIP & MAC Binding 並啟用,於下方 Binding List 按 + Add
  1. 輸入目標裝置的 MACIPv4,然後按 Save 保存
  1. 移至 NAT ForwardingPort Forwarding , 按 + Add
  1. 設定連接埠轉發:
    • 協定:All
    • 外部埠:您要使用的埠
    • 內部埠:您要使用的埠
    • 內部 IP:您要喚醒的電腦 IP

完成後按 Save 保存

# Step 3:主機板 BIOS 設定

這是最後但也是不可或缺的一步!下面小弟以 MSI 主機板為例:

進入 BIOS 的辦法有很多,以下是其中一種:

  • 開機時瘋狂按 Delete / F2 / F12 鍵進入 BIOS

然而小弟啟用了快速啟動 (MSI Fast Boot),跳過了鍵盤偵測的程序,故需要從 Windows 的復原介面進入

  1. 於復原 / 恢復介面中,選擇疑難排解 (Troubleshooting) → 進階選項 (Advanced options)
  1. 選擇 UEFI 韌體設定 (UEFI Firmware Settings) → 然後按重新啟動 (Restart)

進入 BIOS 後,進行如下設定:

  1. 於主選單中,移至 SETTINGS → Advanced
  1. 選擇 Wake Up Event Setup
  1. Resume By PCI-E/Networking Device 中,將設定更改為 Enable
  1. 大功告成!請按 X 儲存設定並重新開機

同樣地,不同品牌的主機板的設定方式有所參差,但基本上都能在進階選項中找到 WOL 設定。

# 實際測試

設定完成後,建議先在區網內測試:

  1. 關閉目標電腦
  2. 使用手機下載 WOL App(Android 推薦 Wake On LAN, iOS 推薦 Wolow - Wake on LAN
  3. 輸入電腦的 MACIPv4 廣播位址

什麼是廣播位址?

廣播位址 (Broadcast Address) 是專門用來同時傳送到網路中所有工作站的一個位址。在使用 TCP/IP 協定的網路中,主機識別段 host ID 為全 1 的 IP 位址為廣播位址… (背後原理由於較複雜,在此並不詳述)

 

一般而言,廣播位址通常為路由器網段中的最後一個 IP 位置

例如: 若網段為 192.168.217.0192.168.217.255,廣播位址為 192.168.217.255

  1. 發送喚醒訊號

如果電腦能成功開機,就代表設定成功了!

附送一個 Python 小程式供各位方便食用。祝用餐愉快 😄

Wake-On-Lan-Script
import socket
import struct
class Computer:
    def __init__(self, mac_address, hostname) -> None:
        self.mac_address = mac_address
        self.hostname = hostname
    def wake(self, port=9):
        # Create a socket for sending the magic packet
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        # Bind the socket to a local address and port
        sock.bind(('', 0))
        # Construct the magic packet
        mac_bytes_list = self.mac_address.split(':')
        mac_bytes = struct.pack('BBBBBB', int(mac_bytes_list[0],16),
            int(mac_bytes_list[1],16),
            int(mac_bytes_list[2],16),
            int(mac_bytes_list[3],16),
            int(mac_bytes_list[4],16),
            int(mac_bytes_list[5],16))
        magic_packet = b'\xff' * 6 + mac_bytes * 16
        # Send the magic packet to the IP address and port
        sock.sendto(magic_packet, (self.hostname, port))
        sock.close()
        return

食用方法:

Wake-On-Lan-Script
from <your-script-name> import Computer
# Specify the MAC address, and the public IP address or domain name that points to your router of your PC
# e.g.
computer1 = Computer(mac_address1, ip_address1)
computer2 = Computer(mac_address2, ip_address2)
# ...
# Wake up the PC(s)
computer1.wake()
computer2.wake()
# ...

# 常見問題 Q&A

Q: 為什麼設定都正確但還是無法喚醒?
A: 最常見的原因是:

  • 網路線沒接好
  • 電源供應器沒有支援
  • 防火牆 / 殺毒軟件擋住了喚醒封包
  • 快速啟動功能已啟用。移至「控制台」 → 「電源管理」 → 「選擇按下電源按鈕時的行為」, 關閉「快速啟動」。

Q: 筆電可以用 WOL 嗎?
A: 大部份筆電以使用無線網絡為主。新款筆電甚至不提供網絡線插口,故並不支援 LAN 網絡喚醒。
少部份舊款機型可以,但需要確保 BIOS 內有支援,其次需要特別注意電源管理設定,且最好使用原廠電源適配器。

# 總結

WOL 的功能設定可謂繁複,但設定好之後真的非常方便!再也不用擔心忘了開電腦而無法遠端工作了⋯⋯

不過要提醒大家,使用 WOL 時還是要注意資安問題,建議:

  • 定期更新韌體
  • 更改預設密碼
  • 必要時才開啟 WOL 功能

您也打算設定 WOL 嗎?歡迎在下方留言分享您的使用經驗!

如果本文對您有幫助,歡迎分享給更多朋友!

此文章已被閱讀 更新於

請我喝[茶]~( ̄▽ ̄)~*

Yuzuki Shimotsuki 微信支付

微信支付

Yuzuki Shimotsuki 支付寶

支付寶