Systemd-networkd
Настройка сети с помощью systemd-networkd
Подготовка
Установка пакета systemd-timesyncd, который пригодится сразу после переезда, автоматически тянет за собой собственно systemd-networkd:
# apt-get install -y systemd-timesyncd
Дабы оставить возможность отката, вместо того, чтоб снести etcnet, пока просто переименуем его каталог:
# mv -f /etc/net /etc/net.old
Создадим файл автонастройки всех сетевых интерфейсов по DHCP /etc/systemd/network/lan.network
со следующим содержимым:
[Match]
Name = e* # лучше предварительно удостовериться в отсутствии настроенных на статические адреса туннелей, вланов, мостов и т.п.
[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
Плюсы systemd-networkd:
- Wi-Fi подключается ещё при загрузке, а не после входа юзера в иксы;
- ключи от точек доступа из системы не выудить, поскольку в конфиге — только их хэши.
Переименуем каталог /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 = <имя домена> # опционально
Перезагрузимся.
При необходимости отключения Wi-Fi делаем:
$ systemctl stop wpa_supplicant@wlan0
Спасибо @gbIMoBou за переданные знания!