Як увімкнути Wake-on-LAN (WOL) у Linux

Функція Wake-on-LAN (WoL) дозволяє дистанційно виводити комп’ютер Linux з режиму сну, надсилаючи спеціальний широкомовний пакет Ethernet (чарівний пакет), що містить MAC-адресу хоста, який потрібно ввімкнути.

Перш ніж увімкнути WoL в Linux, вам потрібно переконатися, що ваша материнська плата підтримує цю функцію, і ввімкнути її в налаштуваннях BIOS. Перезапустіть хост і відкрийте налаштування BIOS (UEFI). Назва опції WoL може відрізнятися залежно від постачальника, моделі материнської плати та версії мікропрограми. Цей варіант можна назватиWake on PCI/PCI-E,Power or Resume on PCI/PCI-E,S5 Wake on LAN. Знайдіть і ввімкніть цю опцію. Збережіть налаштування BIOS.

Theethtoolзазвичай використовується для керування Wake On LAN у Linux. Встановіть його:

Детальніше:Як створити завантажувальний USB-накопичувач Linux Mint у Windows 10

$ sudo apt install ethtool

Список мережевих інтерфейсів:

$ ifconfig

Скопіюйте назву інтерфейсу адаптера локальної мережі Ethernet і виконайте команду:

$ sudo ethtool enp3s0 | grep "Wake-on"

У цьому випадку WoL вимкнено (d).

Увімкніть Wake on LAN для певного адаптера:

$ sudo ethtool --change enp3s0 wol g

Параметр Wake On Lan має змінитися наg(Пробудження на MagicPacket).

"netlink error: cannot enable unsupported WoL mode (offset 36)«вказує на те, що WoL не підтримується мережевим адаптером або вимкнено в BIOS.

Тепер ви можете віддалено вивести з режиму сну свій хост Linux. Однак параметр WoL мережевого інтерфейсу буде скинуто під час перезавантаження. Існує кілька способів автоматичного ввімкнення Wake on LAN для адаптера під час завантаження комп’ютера.

NetworkManagerце інструмент керування мережею за замовчуванням у багатьох дистрибутивах Linux, включаючи Ubuntu, Rocky і Debian. У NetworkManager ви можете ввімкнути WoL для адаптера за допомогоюnmcliкоманда:

$ nmcli con show

Скопіюйте назву підключення Ethernet (у цьому прикладі дротове) і ввімкніть WoL:

$ sudo nmcli c modify "wired" 802-3-ethernet.wake-on-lan magic

Переконайтеся, що в інтерфейсі ввімкнено Wake on LAN:

$ nmcli c show "wired" | grep 802-3-eth

Для інших дистрибутивів Linux можна використовуватиsystemdщоб увімкнути WakeOnLan під час завантаження. Створіть новий системний блок:

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

Додайте таку конфігурацію:

[Unit]
Description=Enable Wake-on-LAN
After=network-online.target
[Service]
Type=oneshot
ExecStart=/sbin/ethtool --change enp3s0 wol g
[Install]
WantedBy=network-online.target

Увімкніть послугу:

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

Перевірте, чи працює служба:

$ systemctl status wol

Тепер ви можете перевірити, як Wake on Lan працює на цьому хості. Скопіюйте MAC-адресу мережевого адаптера, на якому ви ввімкнули WoL.

Перевірте, чи ввімкнено режим сну в Linux:

$ sudo systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target

Переведіть хост Linux у режим сну:

$ sudo systemctl suspend

Щоб надіслати магічний пакет у Linux, ви можете використовуватиwk_alабоetherwakeінструмент:

$ sudo apt-get install wakeonlan etherwake

Щоб віддалено розбудити комп’ютер, введіть його MAC-адресу (пакети WoL не маршрутизуються, тому комп’ютери мають бути в одному сегменті локальної мережі):

$ wakeonlan <MAC-address>
або:
$ etherwake <MAC-address>

Після отримання чарівного пакету комп'ютер повинен вийти з режиму сну. Зауважте, що WoL не потребує відкриття порту в брандмауері Linux. Широкомовний пакет WoL UDP приймається та обробляється безпосередньо мережевим адаптером без використання мережевого стеку Linux.

Related Posts