Wake-on-LAN в Linux (только локальная сеть)

Вернуться к разделу «Wake-on-LAN (только локальная сеть)»

Это руководство объясняет, как включить Wake-on-LAN (WOL) в Linux после того, как он уже был включён на аппаратном уровне / уровне прошивки.

Wake-on-LAN в Linux работает только с проводными Ethernet-подключениями. Он не работает надёжно через Wi-Fi.


Поддерживаемые системы

Это руководство применимо к большинству современных дистрибутивов Linux, включая:

Применимо только к системам, использующим:


Предварительные требования

Перед продолжением убедитесь, что:

Если BIOS / UEFI ещё не настроен, сначала выполните это:

Включить Wake-on-LAN в BIOS / UEFI

MAC-адрес на этом этапе не требуется.


Шаг 1: Определите Ethernet-интерфейс

Откройте Терминал и выполните:

ip link

Найдите активный Ethernet-интерфейс. Распространённые имена:

Игнорируйте:

Вы будете использовать это имя интерфейса на следующих шагах.


Шаг 2: Проверьте поддержку Wake-on-LAN

Выполните следующую команду, заменив INTERFACE на имя вашего Ethernet-интерфейса:

sudo ethtool INTERFACE

Найдите строку:

Supports Wake-on: Wake-on:

Пример:

Supports Wake-on: pumbg Wake-on: d

Значение:

Если g не указан в Supports Wake-on, сетевая карта не поддерживает Wake-on-LAN.


Шаг 3: Включите Wake-on-LAN

Чтобы включить Wake-on-LAN (магический пакет):

sudo ethtool -s INTERFACE wol g

Проверьте изменение:

sudo ethtool INTERFACE

Вывод должен показать:

Wake-on: g

Это включает Wake-on-LAN на уровне операционной системы.


Шаг 4: Сделайте настройку постоянной (важно)

На многих системах Linux настройки Wake-on-LAN сбрасываются после перезагрузки.

Вы должны сделать конфигурацию постоянной.


Вариант A: NetworkManager (большинство настольных систем)

Создайте или отредактируйте скрипт-диспетчер:

sudo nano /etc/NetworkManager/dispatcher.d/99-wol

Добавьте следующее содержимое:

#!/bin/sh

if [ "$2" = "up" ]; then /usr/sbin/ethtool -s INTERFACE wol g fi

Замените INTERFACE на имя вашего Ethernet-интерфейса.

Сделайте скрипт исполняемым:

sudo chmod +x /etc/NetworkManager/dispatcher.d/99-wol


Вариант B: systemd сервис (универсальный метод)

Создайте systemd сервис:

sudo nano /etc/systemd/system/wol.service

Добавьте:

[Unit] Description=Enable Wake-on-LAN After=network.target

[Service] Type=oneshot ExecStart=/usr/sbin/ethtool -s INTERFACE wol g

[Install] WantedBy=multi-user.target

Замените INTERFACE на имя вашего Ethernet-интерфейса.

Включите сервис:

sudo systemctl enable wol.service


Шаг 5: Состояния питания

Wake-on-LAN в Linux работает, когда система находится в:

Требования:


Шаг 6: Проверка (необязательно)

После выключения системы:

Это указывает на то, что сетевой интерфейс по-прежнему запитан и прослушивает сеть.


Распространённые проблемы и решения

Wake-on-LAN сбрасывается после перезагрузки


Работает из спящего режима, но не из выключенного состояния


Имя интерфейса изменилось