NetworkManager давно стал стандартом управления сетью в большинстве дистрибутивов, но многие пользователи знают только апплет в трее. Утилита nmcli даёт тот же набор возможностей из терминала: посмотреть состояние интерфейсов, подключиться к Wi-Fi, назначить статический адрес, создать VLAN или мост, разобраться, почему профиль не поднимается. Это особенно полезно на сервере без графики, при удалённой диагностике и в скриптах. Ниже — команды, которые закрывают большинство домашних и офисных задач.

Два уровня: устройства и профили

В NetworkManager есть физические устройства (enp3s0, wlan0) и профили подключений — сохранённые наборы настроек с именем и UUID. Один интерфейс может иметь несколько профилей, например «Дом» и «Офис», а автоподключение выбирает подходящий. Команды nmcli device работают с железом, nmcli connection — с профилями. Понимание этой разницы избавляет от половины ошибок: nmcli device disconnect временно отключает интерфейс, а nmcli connection down опускает конкретный профиль.

Проверка состояния

nmcli general status
nmcli device status
nmcli connection show --active

Первая команда показывает общее состояние NetworkManager, вторая — таблицу устройств, третья — активные профили. Для скриптов удобен машиночитаемый вывод: nmcli -t -f NAME,UUID,TYPE connection show. В сценариях лучше использовать UUID: имя профиля может измениться при локализации или переименовании, а вывод с -t разделяет поля двоеточием и легко разбирается через cut или awk. Если имя профиля содержит пробелы или локализовано («Проводное соединение 1»), заключайте его в кавычки или используйте UUID.

Новый профиль и статический адрес

Обычно достаточно nmcli connection up "Имя профиля". Для новой проводной сети создайте профиль и включите автоподключение.

sudo nmcli connection add type ethernet con-name office ifname enp3s0 ipv4.method auto
sudo nmcli connection modify office connection.autoconnect yes
sudo nmcli connection up office

Статический адрес задаётся на профиле, а не на интерфейсе, поэтому настройка переживёт перезагрузку. После изменения профиль нужно поднять заново.

sudo nmcli connection modify office ipv4.method manual ipv4.addresses 192.168.1.50/24 ipv4.gateway 192.168.1.1 ipv4.dns "192.168.1.1 1.1.1.1"
sudo nmcli connection up office
nmcli -f ipv4.method,ipv4.addresses,ipv4.gateway,ipv4.dns connection show office
ip -4 addr show enp3s0

Чтобы вернуть DHCP, недостаточно переключить метод: старые значения останутся в профиле. Очистите их явно: sudo nmcli connection modify office ipv4.method auto ipv4.addresses "" ipv4.gateway "" ipv4.dns "" ipv4.ignore-auto-dns no, затем снова поднимите профиль.

DNS и проверка разрешения имён

Список DNS можно задать вручную. Флаг ignore-auto-dns запрещает брать серверы от DHCP, иначе они могут оказаться в приоритете.

sudo nmcli connection modify office ipv4.dns "1.1.1.1 9.9.9.9"
sudo nmcli connection modify office ipv4.ignore-auto-dns yes
sudo nmcli connection up office
resolvectl status

Если systemd-resolved не используется, смотрите /etc/resolv.conf и настройки dnsmasq. Проверить конкретное имя удобно через resolvectl query example.com или getent hosts example.com.

Wi-Fi без графики

nmcli device wifi list
nmcli device wifi connect "HomeNet" password "example-pass" name home
nmcli connection modify home wifi-sec.key-mgmt wpa-psk wifi-sec.psk "example-pass"
nmcli connection show home

Для WPA3 используется режим key-mgmt sae, для скрытой сети профиль создают вручную и добавляют wifi.hidden yes. Команда connect создаёт профиль, дальше его настраивают через connection modify. Подробная диагностика беспроводных подключений — отдельная тема, но общий принцип тот же: сначала профиль, потом устройство.

VLAN и мост

VLAN нужен, когда провайдер или коммутатор отдаёт несколько сетей на один кабель. Мост объединяет интерфейсы в один широковещательный домен, например для виртуальных машин.

sudo nmcli connection add type vlan con-name vlan10 dev enp3s0 id 10 ipv4.method manual ipv4.addresses 10.0.10.2/24
sudo nmcli connection up vlan10
sudo nmcli connection add type bridge con-name br0 ifname br0
sudo nmcli connection add type ethernet con-name br0-port ifname enp3s0 master br0

После создания моста поднимите br0 и проверьте, что порт стал частью моста: nmcli -f connection.master connection show br0-port. Если вы делаете это по SSH, легко потерять связь — держите под рукой локальную консоль или заранее настройте резервный доступ.

Профили в файлах

Все настройки хранятся в keyfile-файлах. Их можно читать, копировать между машинами и править вручную, но только при остановленном профиле и с правами root.

sudo ls /etc/NetworkManager/system-connections/
sudo sed -n '1,30p' /etc/NetworkManager/system-connections/home.nmconnection

Типичный профиль Wi-Fi выглядит так:

[connection]
id=home
type=wifi
autoconnect=true

[wifi]
ssid=home
mode=infrastructure

[wifi-security]
key-mgmt=wpa-psk
psk=example-pass

[ipv4]
method=auto

Файлы должны принадлежать root и иметь права 600: иначе NetworkManager откажется их загружать, а пароль окажется доступен другим пользователям.

Диагностика

nmcli device show enp3s0
ip route
journalctl -u NetworkManager -b --no-pager | tail -n 40
resolvectl query example.com

Если устройство помечено как unmanaged, проверьте /etc/NetworkManager/NetworkManager.conf и /etc/network/interfaces: на Debian и Ubuntu интерфейс, описанный старым способом, может игнорироваться. Временно вернуть управление помогает sudo nmcli device set enp3s0 managed yes. Когда соединение есть, а интернета нет, смотрите маршрут по умолчанию, шлюз и DNS. Два профиля на одну сеть лечатся удалением лишнего или приоритетом connection.autoconnect-priority.

Быстрая проверка связности не требует браузера. Команда connectivity check показывает, видит ли NetworkManager интернет, а вывод по устройству содержит состояние и активный профиль. Если ping по IP работает, а имена не разрешаются, проблема почти всегда в DNS, а не в кабеле.

nmcli networking connectivity check
nmcli -f GENERAL.STATE,GENERAL.CONNECTION,IP4.ADDRESS,IP4.GATEWAY device show enp3s0
ping -c 3 1.1.1.1
getent hosts example.com

Чек-лист

  • Проверьте nmcli device status и имя нужного профиля.
  • Меняйте настройки на профиле, а не на интерфейсе.
  • После правок поднимайте профиль заново.
  • Для скриптов используйте UUID и вывод -t.
  • Читайте журнал NetworkManager до того, как менять конфигурацию наугад.

Итог

nmcli — это не замена графическому апплету, а более точный и воспроизводимый способ управлять сетью. Запомните связку «устройство — профиль», научитесь менять IPv4 и DNS на профиле, проверяйте результат через ip и resolvectl. Тогда подключение к новой сети, статический адрес и поиск причины сбоя будут занимать минуты, а не полчаса.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте