透過網際網路在 LAN 上喚醒

透過網際網路在 LAN 上喚醒

我們大學的本地網路有許多具有本地 IP 的計算機,並且有一個網關或伺服器發送和接收流量,並且它具有靜態 IP。因此,當我離開該網路並且想要存取該網路中的電腦時,我知道它們在該網路中的 MAC 位址和本機 IP 以及該網路的靜態即時 IP。

我的系統上有 Ubuntu。我可以在本地打開系統,但我還想知道:

  • 我怎麼能透過網路做到這一點?
  • 如何 ping 該網路中的系統?
  • 這種情況如何進行連接埠轉送呢?或者是否有任何方法不需要在路由器中轉發連接埠?

我試過但這不起作用!

答案1

使用 LAN 喚醒發送的魔術封包是不透過網路傳輸。您需要從 LAN 中的一台電腦傳送此資料包,例如透過遠端登入。

您大學 LAN 中的路由器或網關似乎可以網路位址轉換。除非您具有網關的管理存取權限(例如設定連接埠轉送)或您可以登入 LAN 上的其中一台計算機,否則無法存取 NAT 後面的電腦。

如果網路使用 IPv6,您可以繞過 NAT,因為 IPv6 中的 NAT 並不常用(也不應該)。但這仍然無法幫助您發送魔法包。

答案2

您需要能夠 ssh 到網關,假設您的網路卡支援它,您就可以從那裡打開您的機器。

首先,確保您的網路卡支援 LAN 喚醒。從目標機器上運行

 sudo aptitude install ethtool
 sudo ethtool eth0

如果 的輸出ethtool包含類似 的行Supports Wake-on: g,那麼應該沒問題。現在,設定機器以允許它:

sudo nano /usr/bin/wakewol

將這些行新增到您剛剛建立的文件中:

#!/bin/bash
ethtool -s eth0 wol g

儲存檔案並運行sudo chmod 755 wakewol以使其可執行。現在,運行

sudo nano /etc/network/interfaces

並將此行新增至文件末尾:

post-down /usr/bin/wakewol

您的機器現在應該支援 LAN 喚醒。但是,如果不先登入網關伺服器,則無法執行此操作。像這樣的事情:

rana@local $ ssh rana@gateway
rana@gateway $ wakeonlan 01:02:03:04:05:06

只需更改01:02:03:04:05:06為您要開啟的機器的實際 MAC 位址即可。這假設wakeonlan已安裝在網關伺服器上。

wakeonlan透過傳遞要ssh在網關上執行的命令可以進一步簡化:

ssh rana@gateway wakeonlan 01:02:03:04:05:06

參考:

http://community.linuxmint.com/tutorial/view/1062

相關內容