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

Материал из ALT Linux Wiki
Строка 1: Строка 1:
==Настройка сети с помощью 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, пока просто переименуем его каталог:
Переименовываем каталог /etc/net:
  # mv -f /etc/net /etc/net.old
  # mv -f /etc/net /etc/net.old
 
Создаём файл <code>/etc/systemd/network/lan.network</code> со следующим содержимым:
Создаём файл /etc/systemd/network/lan.network:
# touch /etc/systemd/network/lan.network
 
Содержимое:
  [Match]
  [Match]
  Name = *0
  Name = *
   
   
  [Network]
  [Network]
  DHCP = ipv4
  DHCP = ipv4
Переключимся с NetworkManager на systemd-networkd:
# systemctl disable network NetworkManager && systemctl enable systemd-networkd systemd-timesyncd
После чего перезагрузимся с воткнутым сетевым кабелем, поскольку WiFi ещё не настроен, а удостовериться в работоспособности systemd-timesyncd нужно сразу.


Делаем:
Создаём файл <code>/etc/wpa_supplicant/wpa_supplicant-wlan0.conf</code> со следующим содержимым:
# systemctl disable NetworkManager && systemctl enable systemd-networkd systemd-timesyncd
После чего втыкаем шнур ethernet и делаем перезагрузку.
 
Создаём файл /etc/wpa_supplicant/wpa_supplicant-wlan0.conf:
# touch /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
 
Содержимое:
 
  ctrl_interface=/run/wpa_supplicant
  ctrl_interface=/run/wpa_supplicant
  ctrl_interface_group=wheel
  ctrl_interface_group=wheel
  eapol_version=2
  eapol_version=2
  fast_reauth=1
  fast_reauth=1
 
Добавляем пароль на подключение к Wi-Fi точке, сходу не светя его в файле конфигурации:
Добавляем пароль на подключение к Wi-Fi точке:
  # wpa_passphrase "имя точки доступа" "пароль" | sed '/#/d' >>/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
  # wpa_passphrase "имя точки доступа" "пароль" | sed '/#/d' >>/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
Включаем Wi-Fi:
Включаем Wi-Fi:
  # systemctl enable wpa_supplicant@wlan0
  # systemctl enable wpa_supplicant@wlan0
 
Выдергиваем сетевой кабель и перезагружаемся.
Выдергиваем шнур ethernet и перезагружаемся.
 
Выключаем сервис network:
# systemctl disable  --now network


При добавлении каждой новой точки доступа делаем:
При добавлении каждой новой точки доступа делаем:
  # 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:
Плюсы systemd-networkd:
* ключи от точек доступа никто не подберёт, поскольку в конфиге — их хэши.
* ключи от точек доступа никто не подберёт, поскольку в конфиге — их хэши.
Строка 53: Строка 35:
  $ networkctl
  $ networkctl
  $ ip -o a s | awk '!/inet6|lo /'
  $ ip -o a s | awk '!/inet6|lo /'
 
Переименовываем каталог /etc/net обратно:
 
Переименовываем каталог /etc/net:
  # mv -f /etc/net.old /etc/net
  # mv -f /etc/net.old /etc/net
 
Удаляем пакеты openresolv и etcnet (тянет за собой NetworkManager):
Удаляем пакеты openresolv, etcnet(тянет за собой NetworkManager):
  # apt-get remove -y openresolv etcnet
  # apt-get remove openresolv
Чтобы синхронизировать время с определённых серверов в требуемом порядке, и чтобы дальнейшие обновления не изменили в этом ничего, создадим файл <code>/etc/systemd/timesyncd.conf.d/ntp.conf</code> со следующим содержимым:
# apt-get remove etcnet
 
Создаём файл /etc/systemd/timesyncd.conf.d/ntp.conf:
# touch /etc/systemd/timesyncd.conf.d/ntp.conf
 
Содержимое:
 
  [Time]
  [Time]
  NTP = ntp0.zenon.net ntp1.zenon.net
  NTP = ntp0.zenon.net ntp1.zenon.net
  FallbackNTP = ru.pool.ntp.org
  FallbackNTP = ru.pool.ntp.org
 
Перезапустим сервис синхронизации:
Делаем перезапуск сервиса systemd-timesyncd:
  # systemctl restart systemd-timesyncd
  # systemctl restart systemd-timesyncd
Удаляем файл /etc/resolv.conf:
Удаляем файл /etc/resolv.conf:
  # rm -f /etc/resolv.conf
  # rm -f /etc/resolv.conf
Создаем символьную ссылку /etc/resolv.conf на /run/systemd/resolve/resolv.conf:
Создаем символьную ссылку /etc/resolv.conf на /run/systemd/resolve/resolv.conf:
  # ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
  # ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
Для настроек имени компьютера создаём файл </code>/etc/sysctl.d/sysname.conf</code> со следующим содержимым:
kernel.hostname = <имя компьютера>
kernel.domainname = <имя домена> # опционально
Перезагрузимся.


Перезагружаем компьютер:
При необходимости отключения Wi-Fi делаем:
#reboot
 
 
Для отключения Wi-Fi делаем:
  $ systemctl stop wpa_supplicant@wlan0
  $ systemctl stop wpa_supplicant@wlan0


Для настроек имени компьютера создаём файл /etc/sysctl.d/sysname.conf:
Спасибо @gbIMoBou за переданные знания!
# touch /etc/sysctl.d/sysname.conf
 
Содержимое:
kernel.hostname = <имя компьютера>
 
[[Контейнеры_systemd-nspawn#Настройка_сети_в_контейнере|Настройка сети в контейнере]]
[[Контейнеры_systemd-nspawn#Настройка_сети_в_контейнере|Настройка сети в контейнере]]
Спасибо @gbIMoBou за переданные знания!
[[Категория:Systemd]]
[[Категория:Systemd]]
[[Категория:Настройка_сети]]
[[Категория:Настройка_сети]]

Версия от 03:26, 4 октября 2020

Настройка сети с помощью 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 со следующим содержимым:

[Match]
Name = *

[Network]
DHCP = ipv4

Переключимся с NetworkManager на systemd-networkd:

# systemctl disable network NetworkManager && systemctl enable systemd-networkd systemd-timesyncd

После чего перезагрузимся с воткнутым сетевым кабелем, поскольку WiFi ещё не настроен, а удостовериться в работоспособности systemd-timesyncd нужно сразу.

Создаём файл /etc/wpa_supplicant/wpa_supplicant-wlan0.conf со следующим содержимым:

ctrl_interface=/run/wpa_supplicant
ctrl_interface_group=wheel
eapol_version=2
fast_reauth=1

Добавляем пароль на подключение к Wi-Fi точке, сходу не светя его в файле конфигурации:

# wpa_passphrase "имя точки доступа" "пароль" | sed '/#/d' >>/etc/wpa_supplicant/wpa_supplicant-wlan0.conf

Включаем Wi-Fi:

# systemctl enable wpa_supplicant@wlan0

Выдергиваем сетевой кабель и перезагружаемся.

При добавлении каждой новой точки доступа делаем:

# wpa_passphrase "имя новой точки доступа" "пароль новой точки доступа" | sed '/#/d' >>/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
# systemctl restart wpa_supplicant@wlan0

Плюсы systemd-networkd:

  • ключи от точек доступа никто не подберёт, поскольку в конфиге — их хэши.
  • Точка доступа подключается ещё на системном уровне, а не при входе юзера в иксы.

Для контроля состояния сети:

$ networkctl
$ ip -o a s | awk '!/inet6|lo /'

Переименовываем каталог /etc/net обратно:

# mv -f /etc/net.old /etc/net

Удаляем пакеты openresolv и etcnet (тянет за собой NetworkManager):

# apt-get remove -y openresolv etcnet

Чтобы синхронизировать время с определённых серверов в требуемом порядке, и чтобы дальнейшие обновления не изменили в этом ничего, создадим файл /etc/systemd/timesyncd.conf.d/ntp.conf со следующим содержимым:

[Time]
NTP = ntp0.zenon.net ntp1.zenon.net
FallbackNTP = ru.pool.ntp.org

Перезапустим сервис синхронизации:

# systemctl restart systemd-timesyncd

Удаляем файл /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 = <имя домена> # опционально

Перезагрузимся.

При необходимости отключения Wi-Fi делаем:

$ systemctl stop wpa_supplicant@wlan0

Спасибо @gbIMoBou за переданные знания! Настройка сети в контейнере