我目前正在与 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 芯片,处理物理层的通信OSI 模型通俗的说就是:任何直接发送到这个网络设备的包都应该唤醒机器。
PHY 唤醒工作前应满足以下条件:
- 你的网络设备支持这个和您的网络驱动程序支持此功能。我不确定 ethtool 在设置参数之前是否会对此进行全面检查。请查看您的手册/规格,看看是否支持此特定功能。
- 关机后,您的以太网卡仍处于打开状态(LED 灯应亮起)。如果不是这种情况,请确保您的操作系统没有关闭该卡(在大多数 Linux 发行版中
NETDOWN=no
)/etc/default/halt
。 - 睡眠/关机后,wol 设置在保留。
- 您的 BIOS 设置中已启用 wol。
另请注意,默认 ARP 超时为 30 秒(另请参阅这篇 SU 帖子)。此后,您发送任何物理包裹的机器将忘记目标机器的 IP 地址。请确保在发送包裹的机器上设置静态 ARP 地址。
现在任何定向请求(ping、http、ssh、wol 包等)都应该启动您的机器。
答案2
我认为你的假设是正确的。你可以配置多种不同的事件来唤醒设备。遗憾的是,ethtool 上的文档对 p 标志的说明不太清楚。
以下几个问题有助于分析问题:当您的机器关闭时,您能否确认网卡仍在运行(LED 闪烁)?您是尝试从同一子网内还是通过路由器唤醒您的机器?您如何尝试唤醒它?您是否可以使用同一网络上的网络嗅探器(wireshark)来确认数据确实在子网上发送?