В данный момент я борюсь с настройками WOL моего Ubuntu box. Идея в том, чтобы HTTP/SVN-сервер спал, пока не используется, и просыпался, когда к нему обращаются. Пока что wake-on-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-пакет ;-)
Theруководство по 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 относится кФизический чип, который обрабатывает связь на физическом уровнемодель OSI. Проще говоря: любой пакет, напрямую отправленный на это сетевое устройство, должен разбудить машину.
Для работы функции пробуждения по физическому уровню (PHY) должны быть выполнены следующие условия:
- Ваше сетевое устройство поддерживает этоиВаш сетевой драйвер поддерживает это. Я не уверен, что ethtool тщательно проверяет это перед установкой параметра. Проверьте руководство/спецификации, чтобы узнать, поддерживается ли эта конкретная функция.
- Ваша карта Ethernet все еще включена после выключения (светодиоды должны гореть). Если это не так, убедитесь, что ваша ОС не выключает карту (в большинстве дистрибутивов Linux это установлено
NETDOWN=no
в/etc/default/halt
). - Настройки wol сохраняются после сна/выключения.
- wol включен в настройках BIOS.
Также обратите внимание, что тайм-аут ARP по умолчанию составляет 30 секунд (см. такжеэтот пост SU). После этого IP-адрес вашей целевой машины будет забыт машиной, с которой вы отправляете любой физический пакет. Убедитесь, что вы установили статический ARP-адрес на машине, с которой вы отправляете пакет.
Теперь любой направленный запрос (ping, http, ssh, пакет wol, ...) должен поднять ваш компьютер.
решение2
Я думаю, что ваше предположение верно. Существует множество различных событий, от которых вы можете настроить свое устройство для пробуждения. К сожалению, документация по ethtool не очень ясна по поводу флага p.
Несколько вопросов, которые могут помочь проанализировать проблему: Когда ваша машина выключена, можете ли вы подтвердить, что сетевая карта все еще работает (светодиоды мигают)? Вы пытаетесь разбудить свою машину из той же подсети или через маршрутизатор? Как вы пытаетесь ее разбудить? Можете ли вы использовать сетевой анализатор (Wireshark) в той же сети, чтобы подтвердить, что данные действительно отправляются в подсеть?