Включение Wake-on-LAN: различия между версиями
Дым (обсуждение | вклад) Нет описания правки |
Дым (обсуждение | вклад) |
||
(не показано 29 промежуточных версий этого же участника) | |||
Строка 2: | Строка 2: | ||
#Установить в случае отсутствия нужный инструмент: | #Установить в случае отсутствия нужный инструмент: | ||
#:{{cmd|# apt-get install -y ethtool}} | #:{{cmd|# apt-get install -y ethtool}} | ||
#Выявить интерфейсы, поддерживающие технологию | #Выявить интерфейсы, поддерживающие технологию: | ||
#:<source language="bash"> | #:<source language="bash"> | ||
for NET in `ip li | awk '{gsub(":","");print $2}' | grep en`; do | # for NET in `ip li | awk '{gsub(":","");print $2}' | grep en`; do | ||
printf "\n$NET " | |||
ethtool $NET | awk '/Supports Wake-on/{print $3}' | |||
done | sort | done | sort | ||
</source> | </source> | ||
#:Пример вывода: | #:Пример вывода: | ||
#:<source language="ini"> | #:<source language="ini"> | ||
enp5s0f0 d | enp5s0f0 d | ||
enp5s0f1 | enp5s0f1 | ||
enp8s0f0 pumbg | enp8s0f0 pumbg | ||
enp8s0f1 d | enp8s0f1 d | ||
Строка 21: | Строка 21: | ||
eno2np1 g | eno2np1 g | ||
</source> | </source> | ||
#: | #:Подходят лишь содержащие в выводе букву '''<code>g</code>''' — для приведённых примеров это <code>enp8s0f0</code>, <code>eno1np0</code> и <code>eno2np1</code>. | ||
#Включить Wake-on-LAN на нужном интерфейсе, к примеру: | #Включить Wake-on-LAN на нужном интерфейсе, к примеру: | ||
#:{{cmd|# ethtool -s eno1np0 wol g}} | #:{{cmd|# ethtool -s eno1np0 wol g}} | ||
#Обеспечить присутствие этого интерфейса в локалке, даже если он никак не задействован в обмене данными. | #Обеспечить присутствие этого интерфейса в локалке, даже если он никак не задействован в обмене данными. | ||
=Собственно включение= | =Собственно включение= | ||
*Через SystemD | *'''Через SystemD...''' | ||
*:#Получить МАС-адрес нужного интерфейса: | *:#Получить МАС-адрес нужного интерфейса: | ||
*:#: | *:#:<pre>$ ip -o li sh eno1np0 | sed 's|.*link/ether ||;s| brd .*||'</pre> | ||
*:#:< | *:#:''(если интерфейс не входит в объединение с общим МАС-ом для всех объединённых)'' или ''(если входит)'': | ||
*:#Создать файл /etc/systemd/network/ | *:#:<pre>$ ip -o li sh eno1np0 | sed 's|.*permaddr ||;s|\\.*||'</pre> | ||
*:#:'''Пример вывода''': <code>3c:ec:ef:97:a5:2c</code> | |||
*:#Создать файл {{path|/etc/systemd/network/wake-on-lan.link}} с этим МАС-ом: | |||
*:#:<source language="ini"> | *:#:<source language="ini"> | ||
[Match] | [Match] | ||
Строка 40: | Строка 43: | ||
WakeOnLan = magic | WakeOnLan = magic | ||
</source> | </source> | ||
* | *'''Для ProxMox и прочих дебианов:''' | ||
*: | *:Добавить к описанию интерфейса в файле {{path|/etc/network/interfaces}} соответствующую опцию, например: | ||
*:<source language="ini"> | |||
iface eno1np0 inet manual | |||
... | |||
ethernet-wol g | |||
... | |||
</source> | |||
Насколько я понял, оба варианта попросту отрабатывают команду включения Wake-on-LAN {{cmd|ethtool -s <iface> wol g}} для заданного интерфейса/МАС-адреса при каждом запуске сетевой службы. | |||
После всех манипуляций выключить компьютер и попытаться запустить его уже по сети тем самым «волшебным пакетом». | |||
=Обратная связь= | |||
*[https://t.me/gbIMoBou @gbIMoBou] | |||
*[[Участник:Дым#Заметки|Другие статьи]] | |||
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}} | |||
[[Категория:Admin]] |
Текущая версия от 09:17, 12 декабря 2024
Проверка возможностей интерфейса
- Установить в случае отсутствия нужный инструмент:
- # apt-get install -y ethtool
- Выявить интерфейсы, поддерживающие технологию:
# for NET in `ip li | awk '{gsub(":","");print $2}' | grep en`; do printf "\n$NET " ethtool $NET | awk '/Supports Wake-on/{print $3}' done | sort
- Пример вывода:
enp5s0f0 d enp5s0f1 enp8s0f0 pumbg enp8s0f1 d
- Или:
eno1np0 g eno2np1 g
- Подходят лишь содержащие в выводе букву
g
— для приведённых примеров этоenp8s0f0
,eno1np0
иeno2np1
.
- Включить Wake-on-LAN на нужном интерфейсе, к примеру:
- # ethtool -s eno1np0 wol g
- Обеспечить присутствие этого интерфейса в локалке, даже если он никак не задействован в обмене данными.
Собственно включение
- Через SystemD...
- Получить МАС-адрес нужного интерфейса:
$ ip -o li sh eno1np0 | sed 's|.*link/ether ||;s| brd .*||'
- (если интерфейс не входит в объединение с общим МАС-ом для всех объединённых) или (если входит):
$ ip -o li sh eno1np0 | sed 's|.*permaddr ||;s|\\.*||'
- Пример вывода:
3c:ec:ef:97:a5:2c
- Создать файл /etc/systemd/network/wake-on-lan.link с этим МАС-ом:
[Match] MACAddress = 3c:ec:ef:97:a5:2c [Link] NamePolicy = Kernel database onboard slot path MACAddressPolicy = persistent WakeOnLan = magic
- Получить МАС-адрес нужного интерфейса:
- Для ProxMox и прочих дебианов:
- Добавить к описанию интерфейса в файле /etc/network/interfaces соответствующую опцию, например:
iface eno1np0 inet manual ... ethernet-wol g ...
Насколько я понял, оба варианта попросту отрабатывают команду включения Wake-on-LAN ethtool -s <iface> wol g для заданного интерфейса/МАС-адреса при каждом запуске сетевой службы.
После всех манипуляций выключить компьютер и попытаться запустить его уже по сети тем самым «волшебным пакетом».