Настройка Wake-on-LAN (WOL) в Linux

Инструкция по настройке включения компьютера удаленно, по сети.
Настройка WOL
Для начала нужно проверить, что в BIOS/UEFI включена функция Wake on LAN.
Далее устанавливаем ethtool
и проверяем настройки.
sudo apt update && sudo apt install ethtool
sudo ethtool enp8s0 | grep "Wake-on"
Если вывод показывает значение d — значит режим отключен. Меняем режим на Wake on MagicPacket — g. Подробнее режимы можно посмотреть в документации.
sudo ethtool --change enp8s0 wol g
Проблема ручного изменения в том, что он работает только до перегрузки системы. Поэтому, нужно добавить его в автозагрузку одним из следующих способов:
Netplan
В вашу конфигурацию, например в /etc/netplan/10-init.yaml
нужно добавить опцию wakeonlan
.
network:
version: 2
ethernets:
enp8s0:
dhcp4: true
wakeonlan: true
Interfaces
В вашу конфигурацию, например в /etc/network/interfaces
нужно добавить опцию ethernet-wol
.
auto enp8s0
iface enp8s0 inet dhcp
ethernet-wol g
NetworkManager
Нужно посмотреть как называется ваше подключение в системе и изменить на нем режим работы.
nmcli con show
sudo nmcli c modify "netplan-enp8s0" 802-3-ethernet.wake-on-lan magic
nmcli c show "netplan-enp8s0" | grep 802-3-eth
Systemd-networkd
Смотрим ваши интерфейсы и корректируем нужный
networkctl list
sudo networkctl edit enp8s0
и добавляем опцию
[Link]
WakeOnLan=magic
Далее активируем изменения
sudo networkctl reload
sudo networkctl reconfigure
Systemd
Если предыдущие варианты по каким-то причинам не подошли, то можно это сделать через systemd.
Создаем новую службу
sudo systemctl edit wol.service --full --force
И добавляем установку значения в Wake on MagicPacket.
[Unit]
Description=Enable Wake-on-LAN
After=network-online.target
[Service]
Type=oneshot
ExecStart=/sbin/ethtool --change enp8s0 wol g
[Install]
WantedBy=network-online.target
Перезагружаем измененные конфигурации служб и запускаем.
sudo systemctl daemon-reload
sudo systemctl enable wol.service
sudo systemctl start wol.service
systemctl status wol
Проверка работы
Усыпляем наш компьютер sudo systemctl suspend
или выключаем его sudo systemctl poweroff
.
Индикатор на сетевой карте компьютера может и не гореть, зависит от производителя,
но он обязан гореть на коммутаторе (пусть даже желтым), иначе магические пакеты до вашей сетевой карты не дойдут.
Далее, с другого компьютера отправляем команду на включение, указывая MAC адрес включаемого компьютера.
sudo apt update && sudo apt install etherwake
sudo etherwake -i ens3 11:22:33:44:55:66