Как настроить Wake-on-LAN на компьютере с Linux

Вопрос или проблема

У меня есть две машины с 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

  1. Проверка BIOS: Вы уже выполнили первый важный шаг — включили Wake-on-LAN в BIOS на машине_2. Убедитесь, что все параметры, связанные с энергосбережением и WOL, также правильно настроены.

  2. Проверка сетевой карты: Убедитесь, что сетевая карта поддерживает WOL. Команда ethtool <eth-card> показывает, что поддержка WOL включена на уровне ОС, поскольку вывод Wake-on: g указывает на активацию режима WOL с использованием магического пакета.

  3. Конфигурация сетевой карты: Выполните команду для активации WOL:

    sudo ethtool -s <eth-card> wol g

    Замените <eth-card> на фактическое имя вашей сетевой карты (например, eth0 или enp3s0).

  4. Убедитесь, что настройки сохраняются: После перезагрузки машина_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

Тестирование и устранение неполадок

  1. Проверка сети: Основываясь на вашем описании, машина_2 не получает пакеты на портах по умолчанию (7 или 9). Это может быть связано с блокировкой портов на уровне сетевого оборудования (например, маршрутизатор или коммутатор). Проверьте настройки маршрутизатора и убедитесь, что соответствующие порты открыты.

  2. Фильтрация трафика: Сетевые фильтры, стоящие между вашей машиной_1 и машиной_2, могут блокировать магические пакеты. Убедитесь, что нет активного файрвола или фильтрации пакетов, блокирующих WOL.

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

    • Используйте send-wol:
      send-wol <MAC_ADDRESS> -i <IP_ADDRESS>
    • Используйте etherwake:
      sudo etherwake -i <eth-card> <MAC_ADDRESS>
  4. Пакетное тестирование: Используйте Wireshark или аналогичные инструменты для подтверждения получения пакетов. Захватывайте трафик, чтобы проверить, приходят ли магические пакеты на машину_2.

Заключение

Если после всех изменений WOL всё ещё не работает, рассмотрите возможность обновления драйверов сетевой карты или прошивки BIOS. В некоторых случаях может помочь обратная связь от производителя оборудования или сообщества Linux, где обсуждаются похожие случаи.

Общий подход заключается в тщательной проверке всех элементов конфигурации и обеспечение адекватной сети, поскольку WOL зависит от точной настройки на всех уровнях — от BIOS до сетевого оборудования.

Оцените материал
Добавить комментарий

Капча загружается...