Содержание

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

Инструкция по настройке включения компьютера удаленно, по сети.

Для начала нужно проверить, что в BIOS/UEFI включена функция Wake on LAN. Далее устанавливаем ethtool и проверяем настройки.

shell

sudo apt update && sudo apt install ethtool
sudo ethtool enp8s0 | grep "Wake-on"

Если вывод показывает значение d — значит режим отключен. Меняем режим на Wake on MagicPacketg. Подробнее режимы можно посмотреть в документации.

shell

sudo ethtool --change enp8s0 wol g

Проблема ручного изменения в том, что он работает только до перегрузки системы. Поэтому, нужно добавить его в автозагрузку одним из следующих способов:

В вашу конфигурацию, например в /etc/netplan/10-init.yaml нужно добавить опцию wakeonlan.

yaml

network:
  version: 2
  ethernets:
    enp8s0:
      dhcp4: true
      wakeonlan: true

В вашу конфигурацию, например в /etc/network/interfaces нужно добавить опцию ethernet-wol.

ini

auto enp8s0
iface enp8s0 inet dhcp
        ethernet-wol g

Нужно посмотреть как называется ваше подключение в системе и изменить на нем режим работы.

shell

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

Смотрим ваши интерфейсы и корректируем нужный

shell

networkctl list
sudo networkctl edit enp8s0

и добавляем опцию

ini

[Link]
WakeOnLan=magic

Далее активируем изменения

shell

sudo networkctl reload
sudo networkctl reconfigure

Если предыдущие варианты по каким-то причинам не подошли, то можно это сделать через systemd.

Создаем новую службу

shell

sudo systemctl edit wol.service --full --force

И добавляем установку значения в Wake on MagicPacket.

ini

[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

Перезагружаем измененные конфигурации служб и запускаем.

shell

sudo systemctl daemon-reload
sudo systemctl enable wol.service
sudo systemctl start wol.service
systemctl status wol

Усыпляем наш компьютер sudo systemctl suspend или выключаем его sudo systemctl poweroff. Индикатор на сетевой карте компьютера может и не гореть, зависит от производителя, но он обязан гореть на коммутаторе (пусть даже желтым), иначе магические пакеты до вашей сетевой карты не дойдут.

Далее, с другого компьютера отправляем команду на включение, указывая MAC адрес включаемого компьютера.

shell

sudo apt update && sudo apt install etherwake
sudo etherwake -i ens3 11:22:33:44:55:66

Похожее