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 芯片,处理物理层的通信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)来确认数据确实在子网上发送?

相关内容