ethtool,WOL:“在体力活动中醒来”实际上是什么意思,我可以(如何)使用它?

sun*_*ide 7 networking linux wake-on-lan ubuntu

我目前正在与我的 Ubuntu 机器的 WOL 设置作斗争。这个想法是让 HTTP/SVN 服务器在未使用时休眠,并在访问时唤醒。到目前为止,局域网唤醒工作并在启动时激活:

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
Run Code Online (Sandbox Code Playgroud)

如您所见,我还设置了wol p标志(“身体活动时醒来”)。我的假设是我可以说服设备不仅在魔术数据包上唤醒,而且在任何网络访问时唤醒。然而,这似乎是错误的。

那么这个标志是什么意思,并且:(如何)我可以将它用于我的邪恶计划?

agt*_*ver 7

注意:问题是来自此处的 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.
Run Code Online (Sandbox Code Playgroud)

PHY 活动是指处理OSI 模型物理层通信的PHY 芯片。通俗地说:任何直接发送到这个网络设备的包都应该唤醒机器。

在 PHY 上唤醒工作之前,应满足以下条件:

  • 您的网络设备支持此功能您的网络驱动程序也支持此功能。我不确定 ethtool 在设置参数之前是否进行了广泛的检查。检查您的手册/规格以查看是否支持此特定功能。
  • 您的以太网卡在关机后仍处于打开状态(LED 灯应亮起)。如果不是这种情况,请确保您的操作系统没有关闭卡(在大多数 Linux 发行版NETDOWN=no/etc/default/halt)。
  • wol 设置在睡眠/关机后保留。
  • wol 在您的 BIOS 设置中启用。

另请注意,默认 arp 超时为 30 秒(另请参阅此 SU 帖子)。之后,您发送任何物理包的机器将忘记目标机器的 IP 地址。确保您在发送包的机器上设置了静态 arp 地址。

现在任何定向请求(ping、http、ssh、wol 包等)都应该启动您的机器。