Systemd-networkd: различия между версиями
Дым (обсуждение | вклад) Нет описания правки |
Дым (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
=Настройка сети с помощью systemd-networkd= | =Настройка сети с помощью systemd-networkd= | ||
==Подготовка== | ==Подготовка== | ||
Установка пакета [[systemd-timesyncd]], который пригодится сразу после переезда, автоматически тянет за собой собственно systemd-networkd: | #Установка пакета [[systemd-timesyncd]], который пригодится сразу после переезда, автоматически тянет за собой собственно systemd-networkd: | ||
#: # apt-get install -y systemd-timesyncd | |||
Дабы оставить возможность отката, вместо | #Дабы оставить возможность отката, вместо сноса etcnet пока достаточно просто переименовать его каталог: | ||
#: # mv -f /etc/net /etc/net.old | |||
#Создать пару файлов автонастройки для проводных (<code>/etc/systemd/network/lan.network</code>) и беспроводных (<code>/etc/systemd/network/lan.network</code>) интерфейсов по DHCP со следующим содержимым: | |||
<source lang=ini> | #:<source lang=ini> | ||
[Match] | [Match] | ||
Name = e* # лучше предварительно удостовериться в отсутствии настроенных на статические адреса туннелей, вланов, мостов и т.п. | Name = e* # лучше предварительно удостовериться в отсутствии настроенных на статические адреса туннелей, вланов, мостов и т.п. | ||
Строка 14: | Строка 14: | ||
DHCP = ipv4 | DHCP = ipv4 | ||
</source> | </source> | ||
Переключимся с etcnet / NetworkManager на systemd-networkd: | #:и: | ||
#:<source lang=ini> | |||
После чего перезагрузимся с воткнутым сетевым кабелем, поскольку Wi-Fi ещё не настроен, но удостовериться в работоспособности systemd-networkd нужно сразу, а именно: | [Match] | ||
<source lang=bash> | Name = w* # лучше предварительно удостовериться в отсутствии настроенных на статические адреса туннелей, вланов, мостов и т.п. | ||
[Network] | |||
DHCP = ipv4 | |||
</source> | |||
#:...соответственно. | |||
==Проводная сеть== | |||
#Переключимся с etcnet / NetworkManager на systemd-networkd: | |||
#: # systemctl disable network NetworkManager && systemctl enable systemd-networkd systemd-timesyncd | |||
#После чего перезагрузимся с воткнутым сетевым кабелем, поскольку Wi-Fi ещё не настроен, но удостовериться в работоспособности systemd-networkd нужно сразу, а именно: | |||
#:<source lang=bash> | |||
$ networkctl | $ networkctl | ||
$ ip -o a s | awk '!/inet6|lo /' | $ ip -o a s | awk '!/inet6|lo /' | ||
</source> | </source> | ||
Создадим файл для подключения к Wi-Fi <code>/etc/wpa_supplicant/wpa_supplicant-wlan0.conf</code> со следующим содержимым: | ==Беспроводная сеть== | ||
#Создадим файл для подключения к Wi-Fi <code>/etc/wpa_supplicant/wpa_supplicant-wlan0.conf</code> со следующим содержимым: | |||
#:<source lang=ini> | |||
ctrl_interface=/run/wpa_supplicant | ctrl_interface=/run/wpa_supplicant | ||
ctrl_interface_group=wheel | ctrl_interface_group=wheel | ||
Строка 30: | Строка 42: | ||
#mac_addr=0 | #mac_addr=0 | ||
########################## | ########################## | ||
Добавим пароль на подключение к точке доступа, не светя его в настройках: | </source> | ||
#Добавим пароль на подключение к точке доступа, не светя его в настройках: | |||
Включим авторизацию по Wi-Fi: | #: # wpa_passphrase "имя точки доступа" "пароль от нее" | sed '/#/d' >>/etc/wpa_supplicant/wpa_supplicant-wlan0.conf | ||
#Включим авторизацию по Wi-Fi: | |||
Перезагружаемся с выдернутым сетевым кабелем и способом, описанным выше, проверяем работоспособность уже Wi-Fi. | #: # systemctl enable wpa_supplicant@wlan0 | ||
#Перезагружаемся с выдернутым сетевым кабелем и способом, описанным выше, проверяем работоспособность уже Wi-Fi. | |||
При добавлении новой точки доступа делаем: | При добавлении новой точки доступа делаем: | ||
# wpa_passphrase "имя новой точки доступа" "пароль от нее" | sed '/#/d' >>/etc/wpa_supplicant/wpa_supplicant-wlan0.conf | # wpa_passphrase "имя новой точки доступа" "пароль от нее" | sed '/#/d' >>/etc/wpa_supplicant/wpa_supplicant-wlan0.conf | ||
# systemctl restart wpa_supplicant@wlan0 | # systemctl restart wpa_supplicant@wlan0 | ||
Переименуем каталог /etc/net обратно: | Переименуем каталог /etc/net обратно: | ||
# mv -f /etc/net.old /etc/net | # mv -f /etc/net.old /etc/net | ||
Строка 55: | Строка 64: | ||
kernel.domainname = <имя домена> # опционально | kernel.domainname = <имя домена> # опционально | ||
Перезагрузимся. | Перезагрузимся. | ||
Плюсы systemd-networkd: | |||
* Wi-Fi подключается ещё при загрузке, а не после входа юзера в иксы; | |||
* ключи от точек доступа из системы не выудить, поскольку в конфиге — только их хэши. | |||
При необходимости отключения Wi-Fi делаем: | При необходимости отключения Wi-Fi делаем: |
Версия от 11:08, 9 марта 2022
Настройка сети с помощью systemd-networkd
Подготовка
- Установка пакета systemd-timesyncd, который пригодится сразу после переезда, автоматически тянет за собой собственно systemd-networkd:
- # apt-get install -y systemd-timesyncd
- Дабы оставить возможность отката, вместо сноса etcnet пока достаточно просто переименовать его каталог:
- # mv -f /etc/net /etc/net.old
- Создать пару файлов автонастройки для проводных (
/etc/systemd/network/lan.network
) и беспроводных (/etc/systemd/network/lan.network
) интерфейсов по DHCP со следующим содержимым:[Match] Name = e* # лучше предварительно удостовериться в отсутствии настроенных на статические адреса туннелей, вланов, мостов и т.п. [Network] DHCP = ipv4
- и:
[Match] Name = w* # лучше предварительно удостовериться в отсутствии настроенных на статические адреса туннелей, вланов, мостов и т.п. [Network] DHCP = ipv4
- ...соответственно.
Проводная сеть
- Переключимся с etcnet / NetworkManager на systemd-networkd:
- # systemctl disable network NetworkManager && systemctl enable systemd-networkd systemd-timesyncd
- После чего перезагрузимся с воткнутым сетевым кабелем, поскольку Wi-Fi ещё не настроен, но удостовериться в работоспособности systemd-networkd нужно сразу, а именно:
$ networkctl $ ip -o a s | awk '!/inet6|lo /'
Беспроводная сеть
- Создадим файл для подключения к Wi-Fi
/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
со следующим содержимым:ctrl_interface=/run/wpa_supplicant ctrl_interface_group=wheel eapol_version=2 fast_reauth=1 ## Только для бродкомов ## #preassoc_mac_addr=0 #mac_addr=0 ##########################
- Добавим пароль на подключение к точке доступа, не светя его в настройках:
- # wpa_passphrase "имя точки доступа" "пароль от нее" | sed '/#/d' >>/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
- Включим авторизацию по Wi-Fi:
- # systemctl enable wpa_supplicant@wlan0
- Перезагружаемся с выдернутым сетевым кабелем и способом, описанным выше, проверяем работоспособность уже Wi-Fi.
При добавлении новой точки доступа делаем:
# wpa_passphrase "имя новой точки доступа" "пароль от нее" | sed '/#/d' >>/etc/wpa_supplicant/wpa_supplicant-wlan0.conf # systemctl restart wpa_supplicant@wlan0
Переименуем каталог /etc/net обратно:
# mv -f /etc/net.old /etc/net
Удалим ненужные более openresolv и etcnet (тянет за собой NetworkManager и другие зависимости, чистит как пылесос):
# apt-get remove -y openresolv etcnet
Удалим файл /etc/resolv.conf:
# rm -f /etc/resolv.conf
Создадим символьную ссылку /etc/resolv.conf
на /run/systemd/resolve/resolv.conf
:
# ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
Для настроек имени компьютера создадим файл /etc/sysctl.d/sysname.conf со следующим содержимым:
kernel.hostname = <имя компьютера> kernel.domainname = <имя домена> # опционально
Перезагрузимся.
Плюсы systemd-networkd:
- Wi-Fi подключается ещё при загрузке, а не после входа юзера в иксы;
- ключи от точек доступа из системы не выудить, поскольку в конфиге — только их хэши.
При необходимости отключения Wi-Fi делаем:
$ systemctl stop wpa_supplicant@wlan0
Спасибо @gbIMoBou за переданные знания!