Использование NetworkManager из командной строки
NetworkManager - это программа для управления сетевыми соединениями в Linux. При первом знакомстве с ней у меня было желание сразу её удалить. Однако спустя несколько лет я установил себе Fedora, где это одно из основных средств управления сетью. Не буду рассуждать на тему нужности, удобности и уместности использования NetworkManager, а просто опишу как её можно использовать в режиме командной строки.
Просмотреть список текущих подключений можно с помощью команды nmcli connection show
:
[~]$ nmcli connection show
NAME UUID TYPE DEVICE
ELTEX-D950 164beab3-4cbc-473f-8978-3465f79e251c wifi wlp3s0
enp0s3 64785acb-b64f-3f4f-91a8-1498e067afb3 ethernet --
В результате будет выведен список подключений. Некоторые из них создаются автоматически. Каждое соединение имеет своё имя (NAME
) и уникальный идентификатор (UUID
). При работе соединением через командную строку можно использовать как первое, так и второе. Однако имя соединения не обязано быть уникальным. В таком случае при указании имени соединения необходимо указывать его UUID
.
Если необходимо изменить значения по умолчанию, то я предпочитаю создавать новое подключение. Сделать это для ethernet-соединений можно с помощью команды:
nmcli connection add type ethernet ifname enp0s3 con-name fsanet
Часть con-name fsanet
задаёт для нового соединения имя fsanet
. В качестве имени необходимо использовать своё значение. Можно полностью опустить эту часть, тогда новому соединению имя будет присвоено автоматически по определённому алгоритму, например, использую тип интерфейса и имя интерфейса (ethernet-enp0s3
). Указание имени интерфейса также не требуется.
По умолчанию NetworkManager пытается автоматически получить данные для настройки сети. Чтобы изменить это поведение для IPv4, необходимо выполнить команду
nmcli connection modify fsanet ipv4.method manual
При этом необходимо установить адрес интерфейса вручную, например так
nmcli connection modify fsanet ipv4.address 192.168.1.2/24
nmcli connection modify fsanet ipv6.address fd11::2/64
Можно использовать адреса IPv4 и IPv6 используя префикс ipv4 и ipv6 соответственно. Не забывайте указывать маску сети, иначе интерфейсу будет присвоен адрес с маской 255.255.255.255 или длиной маски сети 128 для IPv6, что скажется на работоспособности сети. Подобным образом задаётся адрес интерфейса или несколько адресов, которые можно указать используя в качестве разделителя запятую
nmcli connection modify fsanet ipv6.address fd11::2/64,fd11::3/64
При задании адреса интерфейса все остальные адреса того же типа будут удалены. Если необходимо добавить ещё один или несколько, то необходимо добавить символ +
перед параметром ipv4.address
.
nmcli connection modify fsanet +ipv4.address 192.168.1.3/24
Используя знак минус можно удалить ранее добавленный адрес и сохранить остальные
nmcli connection modify fsanet -ipv4.address 192.168.1.3/24
Отключить соединение можно с помощью команды
nmcli connection down fsanet
Подключить
nmcli connection up fsanet
Включить автоматическое получение адреса можно с помощью команды
nmcli connection modify fsanet ipv4.method auto
Интерактивный редактор соединения можно запустить с помощью команды
nmcli connection edit fsanet
Распечатать список доступных параметров можно с помощью
print
Переход к параметрам, которые начинаются на ipv4
goto ipv4
Можно, например, включить автоматическое получение IPv4 адресов и сохранить это поведение с помощью следующей последовательности команд
nmcli ipv4> set method auto
nmcli ipv4> save
Другие полезные команды:
back
- вернуться к предыдущему уровняю настроек;quit
- выйти из системы.
Wireguard
NetworkManager может управлять соединениями через Wireguard. Для этого необходимо импортировать конфигурацию, которая используется wg-quick, например, из файла wg0.conf, с помощью команды
nmcli connection import type wireguard file wg0.conf
Обратите внимание, что заметки могут обновляться со временем. Это может быть как исправление найденных ошибок, так и доработка содержания с целью более полного раскрытия темы. Информация об изменениях доступна в репозитории на github. Там же вы можете оставить в Issue ваши замечания по данной заметке.
Если данная заметка оказалась вам полезной, можете поблагодарить автора финансово на сервисе Boosty или любой суммой через сервис QIWI.