Systemd-networkd: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Строка 2: Строка 2:
=Настройка сети с помощью systemd-networkd=
=Настройка сети с помощью systemd-networkd=
==Подготовка==
==Подготовка==
Установка пакета [[systemd-timesyncd]], который пригодится сразу после переезда, автоматически тянет за собой собственно systemd-networkd:
#Установка пакета [[systemd-timesyncd]], который пригодится сразу после переезда, автоматически тянет за собой собственно systemd-networkd:
# apt-get install -y systemd-timesyncd
#: # apt-get install -y systemd-timesyncd
Дабы оставить возможность отката, вместо того, чтоб снести etcnet, пока просто переименуем его каталог:
#Дабы оставить возможность отката, вместо сноса etcnet пока достаточно просто переименовать его каталог:
# mv -f /etc/net /etc/net.old
#: # mv -f /etc/net /etc/net.old
Создадим файл автонастройки всех сетевых интерфейсов по DHCP <code>/etc/systemd/network/lan.network</code> со следующим содержимым:
#Создать пару файлов автонастройки для проводных (<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:
#:и:
# systemctl disable network NetworkManager && systemctl enable systemd-networkd systemd-timesyncd
#:<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>
# wpa_passphrase "имя точки доступа" "пароль от нее" | sed '/#/d' >>/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
#Добавим пароль на подключение к точке доступа, не светя его в настройках:
Включим авторизацию по Wi-Fi:
#: # wpa_passphrase "имя точки доступа" "пароль от нее" | sed '/#/d' >>/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
# systemctl enable wpa_supplicant@wlan0
#Включим авторизацию по 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
Плюсы systemd-networkd:
* Wi-Fi подключается ещё при загрузке, а не после входа юзера в иксы;
* ключи от точек доступа из системы не выудить, поскольку в конфиге — только их хэши.
Переименуем каталог /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 делаем:

Версия от 08:08, 9 марта 2022

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Настройка сети с помощью systemd-networkd

Подготовка

  1. Установка пакета systemd-timesyncd, который пригодится сразу после переезда, автоматически тянет за собой собственно systemd-networkd:
    # apt-get install -y systemd-timesyncd
  2. Дабы оставить возможность отката, вместо сноса etcnet пока достаточно просто переименовать его каталог:
    # mv -f /etc/net /etc/net.old
  3. Создать пару файлов автонастройки для проводных (/etc/systemd/network/lan.network) и беспроводных (/etc/systemd/network/lan.network) интерфейсов по DHCP со следующим содержимым:
    [Match]
    Name = e* # лучше предварительно удостовериться в отсутствии настроенных на статические адреса туннелей, вланов, мостов и т.п.
    
    [Network]
    DHCP = ipv4
    
    и:
    [Match]
    Name = w* # лучше предварительно удостовериться в отсутствии настроенных на статические адреса туннелей, вланов, мостов и т.п.
    
    [Network]
    DHCP = ipv4
    
    ...соответственно.

Проводная сеть

  1. Переключимся с etcnet / NetworkManager на systemd-networkd:
    # systemctl disable network NetworkManager && systemctl enable systemd-networkd systemd-timesyncd
  2. После чего перезагрузимся с воткнутым сетевым кабелем, поскольку Wi-Fi ещё не настроен, но удостовериться в работоспособности systemd-networkd нужно сразу, а именно:
    $ networkctl
    $ ip -o a s | awk '!/inet6|lo /'
    

Беспроводная сеть

  1. Создадим файл для подключения к 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
     ##########################
    
  2. Добавим пароль на подключение к точке доступа, не светя его в настройках:
    # wpa_passphrase "имя точки доступа" "пароль от нее" | sed '/#/d' >>/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
  3. Включим авторизацию по Wi-Fi:
    # systemctl enable wpa_supplicant@wlan0
  4. Перезагружаемся с выдернутым сетевым кабелем и способом, описанным выше, проверяем работоспособность уже 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 за переданные знания!

Настройка сети для контейнера nspawn