Вопрос или проблема
У меня есть две машины с Linux, подключенные к одной и той же сети, и я пытаюсь настроить WOL на одной из них. То есть, я хочу использовать machine_1 для удаленного включения machine_2.
Я включил WOL в BIOS на machine_2 и проверил, что оно включено в ОС. Когда я запускаю sudo ethtool <eth-card>
, я получаю:
Supports Wake-on: pumbg
Wake-on: g
Однако, когда я отправляю magic packet через другую машину, это не работает. Компьютер, который должен получать сигнал, не включается. Я пытался использовать команду wakeonlan
и графический интерфейс gWakeOnLAN
.
Я запустил Wireshark на machine_2, чтобы проверить, получает ли он WOL-пакет, но он ничего не получает, когда я отправляю пакет через порт 9 (по умолчанию) или порт 7, но получает их на любом другом порту, который я пробовал (например, 22). Не уверен, имеет ли порт значение для WOL. В любом случае компьютер не включается, независимо от того, через какой порт я отправляю magic packet.
Как я могу исправить или устранить эту проблему?
Ответ или решение
Настройка технологии Wake-on-LAN (WOL) на Linux может потребовать выполнения нескольких шагов и учета определенных нюансов. Давайте рассмотрим, как можно настроить и устранить неисправности в WOL между двумя Linux-машинами.
Шаги настройки Wake-on-LAN
-
Проверка BIOS: Вы уже выполнили первый важный шаг — включили Wake-on-LAN в BIOS на машине_2. Убедитесь, что все параметры, связанные с энергосбережением и WOL, также правильно настроены.
-
Проверка сетевой карты: Убедитесь, что сетевая карта поддерживает WOL. Команда
ethtool <eth-card>
показывает, что поддержка WOL включена на уровне ОС, поскольку выводWake-on: g
указывает на активацию режима WOL с использованием магического пакета. -
Конфигурация сетевой карты: Выполните команду для активации WOL:
sudo ethtool -s <eth-card> wol g
Замените
<eth-card>
на фактическое имя вашей сетевой карты (например,eth0
илиenp3s0
). -
Убедитесь, что настройки сохраняются: После перезагрузки машина_2 может сбрасывать настройки WOL. Создайте сценарий в
/etc/systemd/system/
для автоматической активации WOL при каждой загрузке.sudo nano /etc/systemd/system/wol.service
Вставьте следующее содержимое:
[Unit] Description=Activate Wake-on-LAN [Service] ExecStart=/sbin/ethtool -s <eth-card> wol g [Install] WantedBy=multi-user.target
Активируйте службу:
sudo systemctl enable wol.service
Тестирование и устранение неполадок
-
Проверка сети: Основываясь на вашем описании, машина_2 не получает пакеты на портах по умолчанию (7 или 9). Это может быть связано с блокировкой портов на уровне сетевого оборудования (например, маршрутизатор или коммутатор). Проверьте настройки маршрутизатора и убедитесь, что соответствующие порты открыты.
-
Фильтрация трафика: Сетевые фильтры, стоящие между вашей машиной_1 и машиной_2, могут блокировать магические пакеты. Убедитесь, что нет активного файрвола или фильтрации пакетов, блокирующих WOL.
-
Использование альтернативного подхода для отправки пакетов: Попробуйте отправить магические пакеты с помощью разных утилит:
- Используйте
send-wol
:send-wol <MAC_ADDRESS> -i <IP_ADDRESS>
- Используйте
etherwake
:sudo etherwake -i <eth-card> <MAC_ADDRESS>
- Используйте
-
Пакетное тестирование: Используйте Wireshark или аналогичные инструменты для подтверждения получения пакетов. Захватывайте трафик, чтобы проверить, приходят ли магические пакеты на машину_2.
Заключение
Если после всех изменений WOL всё ещё не работает, рассмотрите возможность обновления драйверов сетевой карты или прошивки BIOS. В некоторых случаях может помочь обратная связь от производителя оборудования или сообщества Linux, где обсуждаются похожие случаи.
Общий подход заключается в тщательной проверке всех элементов конфигурации и обеспечение адекватной сети, поскольку WOL зависит от точной настройки на всех уровнях — от BIOS до сетевого оборудования.