Вопрос или проблема
Я хочу включить функцию Wake-on-LAN для своих сетевых карт навсегда. Руководство сообщества рекомендует добавить соответствующую команду в /etc/network/interfaces
. В прошлом, редактируя конфигурационные файлы Ubuntu, я заметил, что файл сетевого интерфейса вероятно записывается заново при каждом запуске, если не при каждом обновлении apt. Как лучше всего убедиться, что Wake-on-LAN включен при каждом запуске?
Скрипт запуска, который выполняется после настройки сетевых карт, должен решить проблему. Ubuntu использует upstart. Прочитав о заданиях upstart, ethtool, написании скрипта upstart и поиске в интернете лучшего решения, я наткнулся на это от 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
- Запускается, когда сетевые карты инициализированы
- Получает названия сетевых интерфейсов из /proc/net/dev
- Логирует действия в syslog
- Действует на все найденные сетевые карты
-
Требует 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
Для меня конфигурации с использованием Netplan сработали (как для включения, так и для отключения WOL), так как я использую Ubuntu.
Проверьте этот аналогичный вопрос о том, как это включить. Canonical также предоставила хорошую документацию о том, как использовать Netplan:
Шаги, которые я выполнил
В моем конкретном случае я хотел отключить Wake on Lan, но это сводится к простому установлению булевой переменной в true
/false
.
- Я создал этот YAML конфигурации Netplan (вам нужен доступ sudo для создания файла в этой директории):
# /etc/netplan/02-disable-wol.yaml
network:
version: 2
renderer: NetworkManager
ethernets:
eth-no-wakeonlan:
match:
macaddress: "11:22:33:44:55:66" # MAC-адрес интерфейса eth
wakeonlan: false # Для включения установите на true
dhcp4: false # Для включения установите на true
-
Чтобы протестировать эту конфигурацию, я выполнил
sudo netplan try
, который применяет конфигурации на несколько минут, прежде чем вернуть их назад.
ПРИМЕЧАНИЕ: По-видимому, это известная ошибка, чтоnetplan try
не может вернуть конфигурации. Этот учебник говорит, что перезагрузка должна быть достаточной (и удаление yaml файла, предполагаю) -
Затем мне нужно было открыть интерфейс настроек сети Ubuntu, чтобы переключиться на вновь созданный сетевой интерфейс
netplan-eth-no-wakeonlan
. -
Готово!
При загрузке Ubuntu должна прочитать все файлы в /etc/netplan/*.yaml
и применить их конфигурации.
Создайте новый файл, скажем, 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
В 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
, чтобы предотвратить отключение сетевой карты во время завершения работы
Ответы здесь либо устарели, либо содержат недостаточно важной информации. В современных версиях Ubuntu Netplan – это то, что нужно, но для настройки определенных функций вам необходимо передать их через менеджер сети. Вот что сработало для меня:
network:
version: 2
ethernets:
NM-3bc8f989-e4ad-359e-89d6-8e66e83d93ef:
renderer: NetworkManager
wakeonlan: true
networkmanager:
uuid: "3bc8f989-e4ad-359e-89d6-8e66e83d93ef"
name: "Wired connection 1"
passthrough:
802-3-ethernet.wake-on-lan: "magic,unicast"
Документацию по параметрам passthrough можно найти здесь:
https://www.networkmanager.dev/docs/api/latest/nm-settings-nmcli.html
И вы можете протестировать результат с помощью CLI менеджера сети, например:
sudo nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic
Ответ или решение
Как Включить Wake-on-LAN на Постоянной Основе в Ubuntu
Wake-on-LAN (WOL) позволяет вам включать компьютер удаленно через сеть. Для того чтобы эта функция работала постоянно после каждой перезагрузки системы или обновления, необходимо предпринять несколько шагов. В этом руководстве мы рассмотрим, как правильно настроить WOL в Ubuntu, используя разные подходы: через скрипты, Netplan и NetworkManager.
1. Установка необходимых инструментов
Перед тем как приступить к настройке, убедитесь, что у вас установлен утилита ethtool
, так как она используется для настройки свойств сетевых интерфейсов. Установить ее можно с помощью команды:
sudo apt-get install ethtool
2. Использование Upstart для настройки WOL
Если вы хотите включить WOL для всех сетевых интерфейсов, вы можете создать Upstart-скрипт, который будет выполняться при инициализации сети. Для этого создайте файл в каталоге /etc/init
, например, wakeonlan.conf
:
sudo nano /etc/init/wakeonlan.conf
Содержимое файла должно выглядеть следующим образом:
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
Этот скрипт будет запускаться каждый раз, когда сеть инициализируется, и включать WOL для всех найденных интерфейсов.
3. Использование Netplan для настройки WOL
Если вы используете более новые версии Ubuntu (17.10 и выше), рекомендуется использовать Netplan. Чтобы включить WOL с помощью Netplan, выполните следующие шаги:
- Создайте файл конфигурации в каталоге
/etc/netplan
:
sudo nano /etc/netplan/02-wol.yaml
- Добавьте следующую конфигурацию, заменив
eth0
на название вашего сетевого интерфейса:
network:
version: 2
ethernets:
eth0:
wakeonlan: true
- Примените изменения с помощью команды:
sudo netplan apply
4. Проверка и отладка
Для проверки настройки WOL вы можете протестировать, включается ли компьютер по сети:
- Убедитесь, что ваш компьютер правильно реагирует на команды WOL с другого устройства.
- Убедитесь, что настройки BIOS сетевого интерфейса на целевом компьютере включены для поддержки WOL.
5. Дополнительные настройки
Если вы используете TLP или другой менеджер электропитания, убедитесь, что они не отключают функцию WOL:
- В файле
/etc/default/tlp
установите:
WOL_DISABLE=N
- Также добавьте
NETDOWN=no
в/etc/default/halt
, чтобы предотвратить отключение сетевого интерфейса при выключении.
Заключение
Настройка функции Wake-on-LAN в Ubuntu может показаться сложной задачей, однако, следуя приведенным выше рекомендациям, вы сможете легко включить и настроить эту функцию на постоянной основе. Это позволит вам удобно включать компьютер удаленно и значительно улучшит управление сетевыми устройствами.
Для дальнейшего изучения возможностей и параметров вы можете обратиться к документации Netplan или к документации по TLP.