我現在正在與我的 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)來確認資料確實在子網路上發送嗎?