
我有一個完美運行的 TP-WR741ND 路由器及其本機韌體(可能不是那麼重要,但這裡是:3.12.4 Build 100910 Rel.57694n)。
路由器直接連接到 LAN PC(192.168.0.0/24 網路)。我可以從我的辦公室(即從網路)管理路由器。我希望能夠醒來我在辦公室的家用電腦。
我能夠從辦公室的 PC 向路由器發送 WoL 資料包(“魔法資料包”,UDP 連接埠 9)。我可以設定我的路由器將其重新傳送到 LAN 位址(轉送 > 虛擬伺服器)並且在正在運行的目標 PC 上,我可以看到“神奇數據包”到達它(我已經檢查了網路流量以確保)。問題是我轉寄時無法提供192.168.0.255位址。我得到:
錯誤代碼:26106 IP 位址與 LAN IP 位址不在同一子網路中。
能否讓路由器正常發送魔法包到網路廣播位址 *.255 ?如果是的話,可以怎麼做呢?
答案1
LAN 喚醒封包通常針對特定 MAC。遠端執行此操作的問題是您無法從非本機網路定位 MAC 位址。
通常,當封包發送到某個 IP 位址時,與目標裝置位於相同網路的路由器會說“誰有 IP 位址 xxxx”,擁有該位址的裝置會回覆“是我,請將其傳送至 mac”位址xx:xx:xx:xx:xx:xx"。這是一個arp請求。一旦應答,路由器會將封包轉送到該 MAC 位址。
將封包轉發到關閉的機器的問題是它無法回應 arp 位址。但是,如果您使用路由器的 ARP 綁定功能,您可以說 IP 位址 xxxx 是 mac 位址 xx:xx:xx:xx:xx:xx,因此路由器不需要執行 ARP 請求 - 它已經知道IP位址的mac位址,它在其ARP綁定表中。
所以你需要做三件事:
- 為您想要 WOL 的 PC 分配一個靜態位址(這仍然最好透過 dhcp 完成)
- 找出 PC 的 MAC 位址,並使用該 MAC 和您選擇的靜態 IP 設定 ARP 綁定條目
- 設定 udp/9 到靜態 IP 位址的連接埠轉送規則
因此,WOL 封包將以路由器的公共 IP 位址為目標,並被 nat 到內部位址。然後,路由器會看到它的 ARP 綁定表中儲存有一個 MAC 位址,因此將封包轉送到該 MAC 位址(即使電腦已關閉),而無需嘗試 ARP 請求。
WOL 功能將看到封包到達其網路卡並具有正確的 MAC,然後開啟 PC。
答案2
看這個:TP-Link TL-WR841ND 上的連接埠轉送 LAN 喚醒
若要測試您是否正確設定了 LAN 喚醒,您可以使用http://wakeonlan.me地點。