Как автоматически включить Wake-on-LAN для сетевого интерфейса в Ubuntu 20.04?

Сетевой стек Ubuntu постоянно развивается, и большая часть предыдущей информации о включении Wake-on-LAN для интерфейса устарела (например, вики Ubuntu ).

Теперь, когда Ubuntu использует Netplan вместо /etc/network/interfaces, как мне включить Wake-on-LAN автоматически всякий раз, когда появляется определенный интерфейс?

3 ответа

Я исправил это, добавив в /etc/netplan файл с именем /etc/netplan/50-wol.yaml.

содержимое файла: (заполните свой собственный mac-адрес).

      network:
  version: 2
  renderer: NetworkManager
  ethernets:
    enp2s0:
      match:
        macaddress: XX:XX:XX:XX:XX:XX 
      wakeonlan: true
      dhcp4: yes

Мне очень помог этот пост:https://forum.manjaro.org/t/troubles-with-setting-up-wol/24815/3

TLDR: выполнитьsudo systemctl disable tlp

TLP предназначен для управления питанием на ноутбуках и т. д. Маловероятно, что вам понадобится TLP в системе, в которой вы хотите иметь возможность удаленного запуска машины.

После выполнения приведенной выше команды WoL стал постоянным, и вам не нужно применять сетевой план после каждой перезагрузки.

Вики говорит нам, что нам нужно бежать ethtool -s <interface> wol gкогда появится интерфейс.

Хотя в Ubuntu 20.04 есть ifupdownскрипты под /etc/network/if-up.d, Netplan предоставляет различные рекомендации о том, как запускать скрипты post-up , которые предлагают использовать файлы .

Страница руководства для networkd-dispatcherне объясняет, как определить , какой интерфейс выходит из строя, но исходный код показывает несколько переменных среды, которые устанавливаются, включая IFACE.

Таким образом, мы можем создать /etc/networkd-dispatcher/routable.d/50-wake-on-lan(а также chmod +xэто) с таким скриптом:

      #!/bin/sh -eu

case "$IFACE" in
    enp60s0)
        ethtool -s <interface> wol g
        ;;
esac
Другие вопросы по тегам