Wake On Lan - технология, которую поддерживают материнские платы и сетевые карты, позволяющая включать компьютер, когда на его сетевой интерфейс приходит специальный пакет. Чтобы воспользоваться возможностью WOL нужно:
- Включить в BIOS опцию включения по сигналу на сетевую карту;
- Возможно потребуется настроить сетевую карту на прием WOL;
Пример настройки для материнской платы Asus m4a785td-v evo:
POWER \ APM Configuration \ Power on From S5 By PME# : Enabled.
Send-WOL.ps1 - скрипт, который посылает пакет WOL на указанный ip адрес. Обязательным параметром является mac адрес устройства, которому адресован данный пакет.
Импорт командлета:
Import-Module .\Send-WOL.ps1 # Import CmdLet. You can add this in your $profile script.
Get-Help Send-WOL -Detailed # Get Help about it
Пример использования:
Send-WOL -mac 00:11:32:21:2D:11 -ip 192.168.8.255
Если не указывать ip, то будет использован широковещательный адрес 255.255.255.255, т.о пакет будет отправлен всем компьютерам локальной сети. Однако включиться только тот, который имеет указанный mac адрес.
Чтобы включать компьютер локальной сети, посылая пакет WOL из интернета, нужно настроить port forwarding в маршрутизаторе. Пакеты приходящие на определенный порт (например, 9, можно использовать любой порт) по протоколу UDP должны передаваться на нужный локальный IP адрес. Если в port forwarding настроить перенаправление (с внешнего порта) на широковещательный (внутренний) адрес 255.255.255.255, то т.о. можно пробуждать из интернета любой компьютер локальной сети, указывая в пакете WOL нужный mac адрес.
Существует проблема: Если материнская плата будет обесточена, а затем снова подключена к питанию, то она уже не будет включать компьютер по сигналу WOL. Эта проблема решается:
- использованием источника бесперебойного питания (ИБП);
- или настройкой BIOS: POWER \ APM Configuration \ Restore on AC Power Loss : Power On. Без ИБП, но с настройкой включения, компьютер будет включаться и не использоваться после короткой обесточки, что может быть нежелательным. Поэтому удобно использовать ИБП + настройку BIOS. В этом случае короткие обесточки не прервут подачу питания на материнскую плату и WOL будет функционировать, а если все-таки случиться прерывание питания, то настройка Restore on AC Power Loss включит компьютер.
Ссылки:
ifconfig -a
- посмотреть список сетевых интерфейсов вместе с MAC адресами (apt install net-tools
)
ethtool $if
- посмотреть настройки сетевого адаптера, в т.ч. возможность WOL (apt install ethtool
).
Пример:
$ ethtool enp7s0
Settings for enp7s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: slave
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: Unknown
Supports Wake-on: pumbg
Wake-on: g
Link detected: yes
$ ethtool vmbr0
Settings for vmbr0:
Supported ports: [ ]
Supported link modes: Not reported
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Unknown! (255)
Auto-negotiation: off
Port: Other
PHYAD: 0
Transceiver: internal
Link detected: yes
В примере выше видим, что для enp7s0 WOL поддерживается, об этом говорит строка Supports Wake-on: pumbg
. Параметр Wake-on
показывает включен ли режим WOL. Значение d
- выключен, g
- включен. В свою очередь для vmbr0 нет параметров Supports Wake-on
и Wake-on
, что означает, что этот сетевой интерфей WOL не поддерживает.
Включить/выключить WOL можно командой:
ethtool -s enp7s0 wol g
- включитьethtool -s enp7s0 wol d
- выключить
Для отправки магического пакета можно использовать утилиту wakeonlan
$ wakeonlan 75:A9:8D:74:28:48
Sending magic packet to 255.255.255.255:9 with 75:A9:8D:74:28:48
Можно отправить пакет на конкретный IP внутри сети: wakeonlan -i 192.168.1.3 75:A9:8D:74:28:48
.
после того как включили опцию wol в proxmox
https://www.myworkroom.de/p-hb:wakeonlan.proxmox - wakeonlan unter Proxmox
Хотите постоянно полагаться на MagicPacket™
Здесь возможны различные решения, я выбрал следующее. Мне показалось, что это самое простое решение, и, главное, его можно воспроизвести практически везде. Я использую здесь systemd, хотя мне это не нравится...
Proxmox - PVE - _Оболочка (Shell)
nano /etc/systemd/system/wol.service
ip addr
Этот файл необходимо создать, а затем активировать, вот команды:
Теперь WakeOnLan должен работать стабильно.
....
Это было бы слишком просто!