Systemd-networkd: различия между версиями
Дым (обсуждение | вклад) |
Дым (обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
==Подготовка== | ==Подготовка== | ||
#Установка пакета [[systemd-timesyncd]], который пригодится сразу после переезда, автоматически тянет за собой собственно systemd-networkd: | #Установка пакета [[systemd-timesyncd]], который пригодится сразу после переезда, автоматически тянет за собой собственно systemd-networkd: | ||
#: # apt-get install -y systemd-timesyncd | #:<source lang=bash> # apt-get install -y systemd-timesyncd</source> | ||
#Дабы оставить возможность отката, вместо сноса etcnet пока достаточно просто переименовать его каталог: | #Дабы оставить возможность отката, вместо сноса <code>etcnet</code> пока достаточно просто переименовать его каталог: | ||
#: # mv -f /etc/net /etc/net.old | #:<source lang=bash> # mv -f /etc/net /etc/net.old</source> | ||
#Создать пару файлов автонастройки для проводных (<code>/etc/systemd/network/lan.network</code>) и беспроводных (<code>/etc/systemd/network/ | #Создать пару файлов автонастройки для проводных (<code>/etc/systemd/network/lan.network</code>) и беспроводных (<code>/etc/systemd/network/wifi.network</code>) интерфейсов по DHCP (предварительно удостоверившись в отсутствии настроенных на статические адреса туннелей, вланов, мостов и т.п.) со следующим содержимым: | ||
#:<source lang=ini> | #:<source lang=ini> | ||
[Match] | [Match] | ||
Name = e* # | Name = e* # в lan.network | ||
Name = w* # в wifi.network | |||
[Network] | [Network] | ||
DHCP = ipv4 | DHCP = ipv4 | ||
</source> | </source> | ||
==Проводная сеть== | ==Проводная сеть== | ||
Пора переключиться с etcnet / NetworkManager на systemd-networkd: | Пора переключиться с etcnet / NetworkManager на systemd-networkd: | ||
Строка 74: | Строка 66: | ||
#Перезагрузиться. | #Перезагрузиться. | ||
==Заключение== | ==Заключение== | ||
Плюсы | Плюсы такого способа настройки: | ||
*Wi-Fi подключается ещё при загрузке, а не после входа юзера в иксы; | *Wi-Fi подключается ещё при загрузке, а не после входа юзера в иксы; | ||
*ключи от точек доступа из системы не выудить, поскольку в конфиге — только их хэши. | *ключи от точек доступа из системы не выудить, поскольку в конфиге — только их хэши; | ||
*работает в любом современном дистрибутиве linux в отличие от дистроспецифичных <code>upstart</code>, <code>etcnet</code> и пр. | |||
И это лишь малая часть того, что умеет <code>systemd-networkd</code>. В частности её посредством настраиваются мосты (bridges), сетевые объединения (bonds) и мн.др. | |||
==P.S.== | |||
Создание статьи инициировано @NeuroFreak, которому я помогал настроить по этой методе домашнюю сеть на лаптопе. | Создание статьи инициировано @NeuroFreak, которому я помогал настроить по этой методе домашнюю сеть на лаптопе. | ||
[[Категория:Systemd]] | [[Категория:Systemd]] | ||
{{Category navigation|title=Использование оборудования|category=использование оборудования|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Использование оборудования|category=использование оборудования|sortkey={{SUBPAGENAME}}}} | ||
[[Контейнеры_systemd-nspawn#Сеть|Настройка сети для контейнера nspawn]] | [[Контейнеры_systemd-nspawn#Сеть|Настройка сети для контейнера nspawn]] |
Версия от 11:43, 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/wifi.network
) интерфейсов по DHCP (предварительно удостоверившись в отсутствии настроенных на статические адреса туннелей, вланов, мостов и т.п.) со следующим содержимым:[Match] Name = e* # в lan.network Name = w* # в wifi.network [Network] DHCP = ipv4
Проводная сеть
Пора переключиться с etcnet / NetworkManager на systemd-networkd:
# systemctl disable network NetworkManager && systemctl enable systemd-networkd systemd-timesyncd
Для проверки работоспособности systemd-networkd следует перезагрузиться с воткнутым сетевым кабелем, поскольку Wi-Fi ещё не настроен
Сразу после перезагрузки имеет смысл проверить, получен ли адрес каким-нибудь из интерфейсов:
$ 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
- При необходимости отключения Wi-Fi:
- # systemctl stop wpa_supplicant@wlan0
DNS
С получением ДНС-серверов по сети прекрасно справляется systemd-resolved
, который нужно:
- установить и запустить:
- # apt-get install systemd-resolved
- # systemctl enable --now systemd-resolved
- нацелиться символьной ссылкой
/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 = <имя домена> # опционально
Уборка
Если всё получилось, можно:
- Переименовать каталог /etc/net обратно:
- # mv -f /etc/net.old /etc/net
- Удалить ненужные более openresolv и etcnet (тянет за собой NetworkManager и другие зависимости, чистит как пылесос):
- # apt-get remove -y openresolv etcnet
- Перезагрузиться.
Заключение
Плюсы такого способа настройки:
- Wi-Fi подключается ещё при загрузке, а не после входа юзера в иксы;
- ключи от точек доступа из системы не выудить, поскольку в конфиге — только их хэши;
- работает в любом современном дистрибутиве linux в отличие от дистроспецифичных
upstart
,etcnet
и пр.
И это лишь малая часть того, что умеет systemd-networkd
. В частности её посредством настраиваются мосты (bridges), сетевые объединения (bonds) и мн.др.
P.S.
Создание статьи инициировано @NeuroFreak, которому я помогал настроить по этой методе домашнюю сеть на лаптопе.