ethtool,WOL:「體力活動喚醒」實際上是什麼意思以及(如何)我可以使用它?

ethtool,WOL:「體力活動喚醒」實際上是什麼意思以及(如何)我可以使用它?

我現在正在與我的 Ubuntu 盒子的 WOL 設定作鬥爭。這個想法是讓 HTTP/SVN 伺服器在不使用時休眠,並在被存取時喚醒。到目前為止,LAN 喚醒工作正常並在啟動時啟動:

Settings for eth1:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  Not reported
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: pg
        Wake-on: pg
        Current message level: 0x0000003f (63)
        Link detected: yes

正如您所看到的,我還設置了wol p標誌(“體力活動喚醒”)。我的假設是我可以說服設備不僅在魔術資料包上喚醒,而且在任何網路存取上喚醒。然而,這似乎是錯誤的。

那麼這個標誌意味著什麼,以及:(如何)我可以濫用它來實現我的邪惡計劃?

答案1

注意:這個問題是來自 4 歲以上的交叉帖子這裡。不知道為什麼它在 4 年多後得到了賞金,但可能它收到了一個 wol 包裹;-)

ethtool手冊說:

wol p|u|m|b|a|g|s|d...
          Set Wake-on-LAN options.  Not all  devices  support  this.   The
          argument  to  this  option  is a string of characters specifying
          which options to enable.
          p  Wake on phy activity
          u  Wake on unicast messages
          m  Wake on multicast messages
          b  Wake on broadcast messages
          a  Wake on ARP
          g  Wake on MagicPacket(tm)
          s  Enable SecureOn(tm) password for MagicPacket(tm)
          d  Disable (wake on nothing).  This option clears  all  previous
             options.

PHY 活動是指物理層晶片,處理物理層上的通信開放系統互連模型。通俗地說:任何直接發送到該網路設備的套件都應該喚醒機器。

PHY 喚醒工作前應符合以下條件:

  • 你的網路設備支援這個你的網路驅動程式支援這一點。我不確定 ethtool 在設定參數之前是否對此進行了廣泛的檢查。檢查您的手冊/規格以查看是否支援此特定功能。
  • 您的乙太網路卡在關機後仍然打開(LED 燈應該會亮起)。如果情況並非如此,請確保您的作業系統沒有關閉該卡(在大多數 Linux 發行版中都設定了NETDOWN=no/etc/default/halt
  • 睡眠/關機後,wol 設定會被保留。
  • wol 在您的 BIOS 設定中已啟用。

另請注意,預設 ARP 逾時為 30 秒(另請參閱這個蘇帖子)。此後,您發送任何實體包的電腦將忘記目標電腦的 IP 位址。確保在傳送包的電腦上設定靜態 ARP 位址。

現在,任何定向請求(ping、http、ssh、wol 套件…)都應該啟動您的電腦。

答案2

我認為你的假設是正確的。您可以配置許多不同的事件來喚醒您的裝置。不幸的是,關於 ethtool 的文檔對 p 標誌不是很清楚。

幾個有助於分析問題的問題: 當您的機器關閉時,您能否確認網路卡仍在運作(LED 閃爍)?您是否嘗試從同一子網路內或透過路由器喚醒您的電腦?你想如何喚醒它?您可以在同一網路上使用網路嗅探器(wireshark)來確認資料確實在子網路上發送嗎?

相關內容