Wake-on-LAN в Linux (только локальная сеть)
→ Вернуться к разделу «Wake-on-LAN (только локальная сеть)»
Это руководство объясняет, как включить Wake-on-LAN (WOL) в Linux после того, как он уже был включён на аппаратном уровне / уровне прошивки.
Wake-on-LAN в Linux работает только с проводными Ethernet-подключениями. Он не работает надёжно через Wi-Fi.
Поддерживаемые системы
Это руководство применимо к большинству современных дистрибутивов Linux, включая:
- Ubuntu
- Debian
- Fedora
- Arch Linux
- Linux Mint
- Raspberry Pi OS
Применимо только к системам, использующим:
- Проводной Ethernet
- Сетевые карты с поддержкой Wake-on-LAN
Предварительные требования
Перед продолжением убедитесь, что:
- Wake-on-LAN включён в BIOS / UEFI
- Компьютер подключён через Ethernet
- Ethernet-интерфейс определён Linux
Если BIOS / UEFI ещё не настроен, сначала выполните это:
→ Включить Wake-on-LAN в BIOS / UEFI
MAC-адрес на этом этапе не требуется.
Шаг 1: Определите Ethernet-интерфейс
Откройте Терминал и выполните:
ip link
Найдите активный Ethernet-интерфейс. Распространённые имена:
eth0enp3s0enp0s25
Игнорируйте:
lo- Wi-Fi интерфейсы (
wlan0,wlpXsY) - VPN или виртуальные интерфейсы
Вы будете использовать это имя интерфейса на следующих шагах.
Шаг 2: Проверьте поддержку Wake-on-LAN
Выполните следующую команду, заменив INTERFACE на имя вашего Ethernet-интерфейса:
sudo ethtool INTERFACE
Найдите строку:
Supports Wake-on: Wake-on:
Пример:
Supports Wake-on: pumbg Wake-on: d
Значение:
g= пробуждение по магическому пакету (обязательно)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 работает, когда система находится в:
- Выключенном состоянии (S5)
- Спящем режиме (S3)
- Гибернации (если поддерживается)
Требования:
- Ethernet-кабель должен оставаться подключённым
- Система должна оставаться подключённой к электросети
Шаг 6: Проверка (необязательно)
После выключения системы:
- Проверьте светодиоды на Ethernet-порту
- Они должны оставаться включёнными или мигающими
Это указывает на то, что сетевой интерфейс по-прежнему запитан и прослушивает сеть.
Распространённые проблемы и решения
Wake-on-LAN сбрасывается после перезагрузки
- Настройка не является постоянной
- Используйте диспетчер NetworkManager или systemd сервис
Работает из спящего режима, но не из выключенного состояния
- BIOS может не поддерживать WOL из S5
- Ищите параметры WOL from S5 или Shutdown Wake-On-LAN
- Отключите параметры глубокого сна в BIOS/UEFI
Имя интерфейса изменилось
- Современный Linux использует предсказуемые имена интерфейсов
- Проверьте имя интерфейса командой
ip link - Обновите скрипты соответственно