Основные примеры использования команды nmcli для управления сетевыми подключениями в Linux

23.08.2025
Основные примеры использования команды nmcli для управления сетевыми подключениями в Linux

Управление сетевыми подключениями в Linux через окно терминала поначалу может показаться сложным, но мы обнаружили, что nmcli — это один из тех инструментов, который становится привычным, как только вы освоите его синтаксис.

Этот мощный инструмент командной строки помогает настраивать сетевые подключения в системах Linux и управлять ими легко и эффективно.

В этой подробной статье мы рассмотрим что такое nmcli, его функции и использование команд nmcli на практических примерах в Linux.

 

Что такое nmcli?

nmcli расшифровывается как интерфейс командной строки NetworkManager. Он позволяет:

  • Просмотр доступных сетевых интерфейсов и их состояния
  • Подключитесь к Wi-Fi или проводной сети
  • Настройка статических IP-адресов
  • Включение и отключение сети и интерфейсов
  • Управление VPN и другими расширенными настройками

 

Он лёгкий, быстрый и по умолчанию доступен в большинстве современных дистрибутивов Linux.

nmcli — это ключевая часть NetworkManager, стандартного набора инструментов для управления сетями в Linux.

Представьте, что NetworkManager — это мозг, который управляет всеми вашими сетевыми подключениями, от Wi-Fi до Ethernet и даже мобильного широкополосного доступа. nmcli позволяет вам напрямую управлять этим мозгом прямо с вашего терминала.

Обратите внимание, что nmcli используется не только в Red Hat Enterprise Linux (RHEL).

Это универсальный инструмент командной строки с открытым исходным кодом, предназначенный для управления NetworkManager и отображения состояния сети в широком спектре систем Linux

 

Преимущества nmcli

Многие люди считают nmcli невероятно полезным, потому что:

  • Графический интерфейс не требуется: вы можете использовать nmcli для управления NetworkManager на серверах, «безголовых» компьютерах (без экрана) или просто с любого терминала. Вам не нужна мышь или навороченный дисплей.
  • Идеально для скриптов: действительно, nmcli предлагает специальный формат «лаконичного вывода». В этом формате отображаются только основные значения, что позволяет компьютерным скриптам легко считывать и автоматически обрабатывать сетевую информацию.
  • Полный контроль: с помощью nmcli вы можете создавать, отображать, редактировать, удалять, активировать и деактивировать сетевые подключения. Вы также можете проверять состояние своих сетевых устройств и управлять им.

 

Понимание Синтаксиса команд nmcli

Каждая команда nmcli имеет простую структуру:

nmcli [OPTIONS] OBJECT { COMMAND | help }

 

  • OPTIONS — изменяют принцип работы команды, например меняют стиль вывода.
  • OBJECT — указывает nmcli на то, чем вы хотите управлять. К распространённым объектам относятся:
    • general: для общего состояния NetworkManager.
    • networking: для включения или отключения сети.
    • radio: для управления Wi-Fi или мобильными широкополосными радиомодулями.
    • connection (или con для краткости): для управления сохранёнными сетевыми профилями.
    • device (или dev для краткости): для управления физическим или виртуальным сетевым оборудованием.

 

Часто можно использовать сокращённые версии (аббревиатуры) объектов и команд. Например, nmcli connection help работает так же, как nmcli con help.

 

Основные команды nmcli с простыми и практичными примерами

Давайте рассмотрим несколько распространённых задач, которые можно решить с помощью nmcli.

 

1. Проверка состояния вашей сети

Вы можете быстро получить представление о состоянии вашей сети.

 

1.1. Ознакомьтесь с общим состоянием NetworkManager

Чтобы узнать, запущен ли NetworkManager и каков его общий статус, можно использовать следующую команду:

nmcli general status
# Или сокращённая версия: 

nmcli g s

 

Это показывает, подключена ли ваша система и есть ли у неё полный доступ к интернету.

Пример вывода:

STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN     METERED      
connected  full          missing  enabled  missing  enabled  no (guessed)

 

Для получения более простого вывода, подходящего для скриптов, выполните команду:

nmcli -t -f STATE general

 

Результат может выглядеть следующим образом:

Connected

 

1.2 Проверьте все сетевые устройства

Чтобы вывести список всех сетевых устройств, независимо от того, управляются они NetworkManager или нет, выполните команду:

nmcli device status

# или:

nmcli d s

 

Эта команда показывает все сетевые интерфейсы и их текущее состояние. Вы увидите такие устройства, как ens18 (Ethernet) или lo (loopback), а также их текущее состояние (например, connectedunmanaged).

Читать  10 основных команд Linux для начинающих

Пример вывода:

DEVICE  TYPE      STATE                   CONNECTION         
ens18   ethernet  connected               Wired connection 1 
lo      loopback  connected (externally)  lo

1.3. Просмотр всех сохранённых подключений

NetworkManager сохраняет данные о подключении в профилях, которые действуют как сохранённые сетевые конфигурации. Вы можете создать несколько профилей для одного и того же интерфейса — например, один для DHCP, а другой для статической IP-адресации.

Чтобы просмотреть список всех сохранённых профилей сетевых подключений, введите:

nmcli connection show

# или:

nmcli con show

 

Вы можете увидеть свои реальные подключения (не только устройства). Здесь отображаются их названия, уникальные идентификаторы (UUID), типы и устройства, с которыми они связаны.

Пример вывода:

NAME                UUID                                  TYPE      DEVICE 
Wired connection 1  2b89e468-7c07-48b0-a59a-5ebae1642386  ethernet  ens18  
lo                  5c293ac3-8bb7-45a9-98d7-cf8d80ea93c4  loopback  lo

 

1.4. Отображать только активные подключения

Если вы хотите видеть только те подключения, которые используются в данный момент, добавьте параметр --active:

nmcli connection show --active

# или:

nmcli con show -a

 

Это поможет вам быстро определить, какие профили активно управляют вашими сетевыми устройствами.

 

1.5. Проверка состояния Wi-Fi-радиомодуля

Чтобы узнать, включено или выключено ваше Wi-Fi-устройство, используйте:

nmcli radio wifi

 

Пример вывода:

enabled

 

Вы также можете включить или выключить его с помощью nmcli radio wifi on или nmcli radio wifi off.

 

2. Управление сетевыми подключениями

nmcli упрощает настройку, изменение, активацию и отключение сетевых подключений.

 

2.1. Создайте новое подключение к сети Ethernet (динамический IP-адрес)

Для нового подключения к сети Ethernet, которое получает IP-адрес автоматически (DHCP):

nmcli connection add type ethernet con-name wired-connection ifname ens18

 

Таким образом создаётся профиль с именем wired-connection для интерфейса ens18.

Чтобы начать использовать его, активируйте его:

nmcli connection up wired-connection

 

После этого вы увидите устройство ens18, подключённое к wired-connection.

Если вы хотите, чтобы имя подключения (имя профиля) содержало пробелы, необходимо заключать имя в кавычки. Без кавычек оболочка будет воспринимать пробелы как отдельные аргументы, и команда не будет выполнена.

nmcli connection add type ethernet con-name "Office LAN Connection" ifname ens18

 

После создания вы можете активировать его следующим образом:

nmcli connection up "Office LAN Connection"

 

А если вам понадобится изменить или удалить его позже, всегда указывайте название в кавычках.

 

2.2. Создание нового подключения к сети Ethernet (статический IP-адрес)

Если вам нужно настроить определённый (статический) IP-адрес, шлюз и DNS-серверы:

nmcli connection add type ethernet con-name wired-network ifname ens18 ip4 192.168.1.13/24 gw4 192.168.1.101

 

Таким образом создаётся профиль с именем wired-network со статическим IPv4-адресом и шлюзом.

Чтобы добавить DNS-серверы в этот профиль:

nmcli connection modify wired-network ipv4.dns «8.8.8.8 8.8.4.4»

 

Это заменит все существующие DNS-серверы IPv4.

Чтобы добавить что-то, не заменяя, используйте +ipv4.dns.

 

2.3. Список доступных сетей Wi-Fi

Прежде чем подключиться к сети Wi-Fi, вы можете посмотреть, какие сети Wi-Fi находятся поблизости.

nmcli device wifi list

 

Эта команда показывает SSID, уровень сигнала и типы защиты.

Пример вывода:

IN-USE  BSSID              SSID              MODE   CHAN  RATE        SIGNAL  BARS  SECURITY 
*       F4:S7:C8:36:N2:46  Ostechnix_jio_4g  Infra  6     130 Mbit/s  100     ▂▄▆█  WPA2     
        N4:Z7:C6:96:B2:2A  Ostechnix_jio_5g  Infra  36    270 Mbit/s  100     ▂▄▆█  WPA2     
        9A:04:88:25:62:74  vivo Y39 5G       Infra  1     117 Mbit/s  54      ▂▄__  WPA2     
        D2:78:C9:C5:31:E1  Govindaraju       Infra  6     270 Mbit/s  52      ▂▄__  WPA2

 

2.4. Подключение к сети Wi-Fi

Чтобы подключиться к сети Wi-Fi, для которой требуется пароль:

nmcli device wifi connect "Your_WiFi_SSID" password "Your_Password"

 

Если это скрытая сеть, добавьте hidden yes.

Пример 1. Для видимых сетей

nmcli device wifi connect MyWiFi password mysecretpass

 

Пример 2. Для скрытых сетей

nmcli device wifi connect MyHiddenWiFi password mysecretpass hidden yes

 

Читать  Чтение CSV-файла в Bash

2.5. Изменение существующего подключения

Вы можете изменить различные свойства сохранённого подключения. Например, чтобы изменить mtu (максимальный объём передачи данных) для подключения Wi-Fi с именем MyConnection:

nmcli connection modify MyConnection 802-11-wireless.mtu 1350

 

NetworkManager называет 802-11-wireless «настройкой», а mtu — «свойством».

 

2.6. Активируйте подключение

Чтобы активировать сохранённое подключение (например, MyConnection) на назначенном ему устройстве:

nmcli connection up MyConnection

 

Эта команда подключает ваше устройство с использованием выбранного профиля.

 

2.7. Отключение от сети

Чтобы отключить конкретное соединение:

nmcli connection down MyConnection

 

Обратите внимание, что эта команда отключает соединение, но устройство остается готовым к подключению. Оно попытается автоматически активировать другое подходящее соединение.

 

2.8. Удаление подключения

Если сетевой профиль вам больше не нужен, вы можете удалить его:

nmcli connection delete "Old Profile Name"

 

Замените «Старое имя профиля» на фактическое имя профиля. Это приведет к удалению профиля подключения из NetworkManager.

 

2.9. Перезагрузка профилей подключения

nmcli connection reload

 

3. Управление сетевыми устройствами

Помимо подключения, вы также можете управлять самими устройствами.

 

3.1. Отключение устройства

Чтобы отключить сетевое устройство и предотвратить его автоматическое повторное подключение, выполните следующие действия:

nmcli device disconnect ens18

 

Это отличается от connection down, так как действительно предотвращает повторное подключение устройства.

 

3.2. Сделайте устройство неуправляемым

Иногда может потребоваться, чтобы NetworkManager игнорировал устройство, позволяя вам управлять им вручную (например, с помощью скрипта). Чтобы временно сделать устройство неуправляемым:

nmcli device set enp18 managed no

 

Это указание для NetworkManager не трогать enp18.

 

3.3. Постоянная настройка устройства как неуправляемого

Для постоянных изменений создайте файл конфигурации, например /etc/NetworkManager/conf.d/99-unmanaged-devices.conf, со следующим содержимым:

[keyfile]
unmanaged-devices=interface-name:enp18

 

Чтобы сделать несколько устройств неуправляемыми, разделите записи в параметре unmanaged-devices точкой с запятой, как показано ниже:

[keyfile]
unmanaged-devices=interface-name:enp18;interface-name:ens3

 

Наконец, перезагрузите службу NetworkManager, чтобы изменения вступили в силу:

sudo systemctl reload NetworkManager

 

Список неуправляемых устройств можно проверить с помощью команды:

nmcli device status

 

Пример вывода:

DEVICE  TYPE      STATE      CONNECTION
enp1s0  ethernet  unmanaged  --

 

4. Расширенное использование команд nmcli для повышения эффективности

nmcli предлагает полезные функции для настройки вывода данных в соответствии с вашими потребностями.

 

4.1. Лаконичный вывод (-t)

При написании скриптов часто требуются только необработанные данные без дополнительного форматирования. Опция -t обеспечивает именно это:

nmcli -t device

 

Это значительно упрощает анализ выходных данных в скриптах.

Пример вывода:

ens18:ethernet:connected:Wired connection 1
lo:loopback:connected (externally):lo

 

4.2. Фильтрация по полю (-f)

Вы можете выбрать, какую именно информацию (поля) отображать. Это уменьшит количество ненужной информации и поможет вам сосредоточиться на главном.

nmcli -f DEVICE,TYPE device

 

Пример вывода:

DEVICE  TYPE     
ens18   ethernet 
lo      loopback

 

Объедините это с -t для удобного использования в скриптах и получения конкретных данных: nmcli -t -f DEVICE,TYPE device.

 

4.3. Форматированный вывод (-p)

Для пользователей nmcli может сделать вывод аккуратным и выровнять его по заголовкам. Это удобно для просмотра информации прямо в терминале:

nmcli -p device

 

Благодаря этому информацию гораздо легче воспринимать с первого взгляда.

Пример вывода:

=====================
  Status of devices
=====================
DEVICE  TYPE      STATE                   CONNECTION         
-----------------------------------------------------------------------------------
ens18   ethernet  connected               Wired connection 1 
lo      loopback  connected (externally)  lo

 

4.4. Интерактивный редактор

Для более сложных конфигураций или для тех, кто предпочитает пошаговое руководство, в nmcli есть интерактивный редактор:

nmcli connection edit

 

Вам будет предложено указать тип подключения, а затем настроить различные параметры.

Valid connection types: 6lowpan, 802-11-olpc-mesh (olpc-mesh), 802-11-wireless (wifi), 802-3-ethernet (ethernet), adsl, bluetooth, bond, bridge, cdma, dummy, generic, gsm, hsr, infiniband, ip-tunnel, ipvlan, loopback, macsec, macvlan, ovs-bridge, ovs-interface, ovs-port, pppoe, team, tun, veth, vlan, vpn, vrf, vxlan, wifi-p2p, wimax, wireguard, wpan, bond-slave, bridge-slave, team-slave
Enter connection type: ethernet

===| nmcli interactive connection editor |===

Adding a new '802-3-ethernet' connection

Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [<setting>.<prop>]' for detailed property description.

You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, hostname, link, tc, proxy
nmcli>

 

Читать  7 Забавных команд в Linux

Это полезно для изучения возможностей и проверки правильности синтаксиса.

Вы можете указать тип подключения (например, Ethernet, Wi-Fi и т. д.), как показано ниже:

nmcli connection edit type ethernet

 

Чтобы узнать ещё больше примеров и получить подробную информацию, ознакомьтесь со страницей руководства nmcli.

man nmcli

 

5. Проверка журналов для устранения неполадок

Если что-то пойдёт не так, вы можете проверить логи с помощью команды:

nmcli general logging

 

Вы увидите уровень ведения журнала и отслеживаемые домены, что поможет выявить неправильные настройки.

 

6. Настройка разрешений на подключение с помощью nmcli

nmcli позволяет ограничить или предоставить разрешения для определенных профилей подключения Ethernet (или любых других). Эта функция полезна, когда несколько пользователей работают в одной системе, но вам нужно контролировать кто может активировать или изменить сетевой профиль.

По умолчанию любой пользователь с доступом к NetworkManager может установить соединение вверх или вниз. Но вы можете ограничить это, назначив разрешения для конкретных подключений.

1. Разрешите одному пользователю управлять подключением

nmcli connection modify MyConnection connection.permissions user:senthil

 

  • MyConnection: Имя (идентификатор) вашего профиля подключения.
  • connection.permissionsСвойство для определения разрешённых пользователей.
  • user:john: Предоставляет разрешение только пользователю senthil.

 

2. Разрешить доступ нескольким пользователям

Если подключением должны управлять несколько пользователей, разделяйте имена пользователей запятыми (без пробелов):

nmcli connection modify MyConnection connection.permissions user:senthil,kumar

 

Это позволяет senthil и kumar активировать, деактивировать или изменять профиль с именем MyConnection.

 

3. Удалите все разрешения (снова сделайте его глобальным)

Чтобы снять ограничения и разрешить всем пользователям управлять подключением, удалите свойство:

nmcli connection modify MyConnection connection.permissions \"\"

 

4. Проверка ограничений доступа

Если пользователь не указан в connection.permissions (например, satheesh) попытается установить соединение:

nmcli connection up MyConnection

 

Они получат сообщение об ошибке отказано в доступе, и профиль не будет активирован. Потому что у текущего пользователя нет прав на управление профилем MyConnection.

Чтобы решить эту проблему, у вас есть три варианта:

1. Переключитесь на авторизованного пользователя (например, su senthil).

2. Добавьте текущего пользователя в профиль:

nmcli connection modify MyConnection connection.permissions user: senthil.kumar,satheesh

 

3. Снимите все ограничения:

nmcli connection modify MyConnection connection.permissions ""

7. Краткие справочные команды

Вот команды, которые я использую чаще всего:

  • nmcli device — Показывать состояние устройства
  • nmcli connection show — Список всех подключений
  • nmcli device wifi list — Сканирование сетей Wi-Fi
  • nmcli connection up "name" — Активировать соединение
  • nmcli connection down "name" — Отключить подключение
  • nmcli connection delete "name" — Удалить профиль подключения

 

Контрольная таблица команд nmcli

Вот практическое руководство список команд nmcli, в котором описаны самые важные задачи.

1. Общее состояние сети

ЦельКоманда
Показать общее состояниеnmcli general status
Показывать только состояние соединенияnmcli -t -f STATE general
Показать версию NetworkManagernmcli --version

 

2. Список устройств и управление ими

ЦельКоманда
Список всех сетевых устройствnmcli device status
Отключите устройствоnmcli device disconnect eth0
Повторно подключите устройствоnmcli device connect eth0
Сканирование доступных сетей Wi-Finmcli device wifi list

 

3. Управление подключениями (профилями)

ЦельКоманда
Список всех сохраненных подключенийnmcli connection show
Перечислите только активные подключенияnmcli connection show --active
Активировать соединениеnmcli connection up my-office
Деактивировать соединениеnmcli connection down my-office
Удаление соединенияnmcli connection delete my-office

 

4. Подключитесь к Wi-Fi

ЦельКоманда
Подключитесь к Wi-Fi, используя SSIDnmcli device wifi connect MyWiFi password mysecretpass
Подключение к скрытой сетиnmcli device wifi connect HiddenSSID password mysecretpass hidden yes

 

5. Создайте новое подключение к сети Ethernet

ЦельКоманда
Добавьте подключение на основе DHCPnmcli connection add type ethernet con-name my-office ifname ens3
Установите статический IP-адресbash\nnmcli connection modify my-office \\\n ipv4.addresses 192.168.1.100/24 \\\n ipv4.gateway 192.168.1.1 \\\n ipv4.dns 8.8.8.8,1.1.1.1 \\\n ipv4.method manual
Повторно активируйте измененное соединениеnmcli connection up my-office

 

6. Краткие сокращения

Полная КомандаКраткая Форма
nmcli connection shownmcli con show
nmcli connection upnmcli con up
nmcli device statusnmcli dev
nmcli general statusnmcli g

 

7. Команды по устранению неполадок

ЦельКоманда
Показывать журналы NetworkManagernmcli general logging
Перезапустить NetworkManagersudo systemctl restart NetworkManager
Перезагрузите профили подключенияnmcli connection reload

 

Выводы

nmcli — это настоящий швейцарский нож для управления сетью в Linux. Он может выполнять самые разные задачи: от базовой проверки состояния сети до сложной настройки подключения для системных администраторов и опытных пользователей.

Освоив использование команд nmcli , вы сможете точно контролировать свою сеть в Linux.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Редактор: AndreyEx

Рейтинг: 0 (0 голосов)
Если статья понравилась, то поделитесь ей в социальных сетях:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Это может быть вам интересно


Загрузка...

Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала