Как я могу включить Wake-On-Lan навсегда?

Я хочу включить Wake-On-Lan для моих сетевых карт, навсегда. Руководство сообщества рекомендует добавить соответствующую команду в /etc/network/interfaces, В прошлом, редактируя файлы конфигурации Ubuntu, весьма вероятно, что файл сетевого интерфейса записывается заново при каждой загрузке, если не при каждом обновлении. Каков наилучший способ обеспечить включение wake-on-lan при каждой загрузке?

4 ответа

Решение

Сценарий загрузки, запускаемый после настройки сетевых карт, должен помочь. Ubuntu использует выскочку. После прочтения о новых рабочих местах, ethtool, написания сценария с выскочкой и поиска в сети для лучшего решения я придумал это из jevinskie (вы захотите поместить это в файл в /etc/init):

start on started network

script
    for interface in $(cut -d: -f1 /proc/net/dev | tail -n +3); do
        logger -t 'wakeonlan init script' enabling wake on lan for $interface
        ethtool -s $interface wol g
    done
end script
  • Запускается при инициализации nics
  • Получает никнеймы из /proc/net/dev
  • Записывает действия в системный журнал
  • Акты на всех найденных ников
  • Требуется ethtool, поэтому сначала убедитесь, что он установлен:

    sudo apt-get install ethtool
    

Если вы хотите придать силе пробуждения только один ник, что-то вроде этого более уместно:

start on started network

script
    interface=eth0
    logger -t 'wakeonlan init script' enabling wake on lan for $interface
    ethtool -s $interface wol g
end script

Создайте новый файл, скажем wakeonlanconfigи добавьте к нему следующие строки:

#!/bin/bash
ethtool -s eth0 wol g
exit

Далее установите права доступа к файлу, сделав его исполняемым:

chmod a+x wakeonlanconfig

И, наконец, запустите скрипт при запуске:

update-rc.d -f wakeonlanconfig defaults

Для более подробной информации, пожалуйста, посетите: http://lukasz-lademann.blogspot.com/2013/01/how-set-up-wol-wake-on-lan-on-thin.html

Для меня сработало использование конфигураций Netplan (как для включения, так и для отключения WOL), поскольку я использую Ubuntu.

Проверьте этот аналогичный вопрос о том, как включить его. Canonical также предоставила хорошую документацию по использованию Netplan:

Шаги, которые я выполнил

В моем конкретном случае я хотел отключить пробуждение по локальной сети, но это сводится к установке логического значения вtrue/false.

  1. Я создал эту конфигурацию Netplan YAML (вам нужен доступ sudo для создания файла в этом каталоге):
      # /etc/netplan/02-disable-wol.yaml
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    eth-no-wakeonlan:
      match:
        macaddress: "11:22:33:44:55:66" # The eth interface's MAC address
      wakeonlan: false # To enable, set to true
      dhcp4: false # To enable, set to true
  1. Чтобы проверить эту конфигурацию, я запустилsudo netplan try, который применяет настройки в течение нескольких минут перед возвратом. ПРИМЕЧАНИЕ. Судя по всему, это известная ошибка, котораяnetplan tryне удается восстановить конфиги. В этом руководстве говорится, что перезагрузки должно быть достаточно (и, я полагаю, удаление файла yaml)

  2. Затем мне пришлось открыть пользовательский интерфейс сетевых настроек Ubuntu, чтобы переключиться на вновь созданный интерфейс Ethernet.netplan-eth-no-wakeonlan.

  3. Выполнено!

При загрузке Ubuntu должен прочитать все файлы в/etc/netplan/*.yamlи применить их конфиги.

В Ubuntu 16.04 дополнительно установлены WOL_DISABLE=N в /etc/default/tlp чтобы избежать отключения WOL с помощью управления питанием TLP.

http://linrunner.de/en/tlp/docs/tlp-configuration.html

добавлять NETDOWN=no в /etc/default/halt для предотвращения отключения сетевой карты во время выключения

Другие вопросы по тегам