Настройка IP-сети с помощью nmcli
Как настроить сеть с помощью утилиты командной строки nmcli (NetworkManager Command Line Interface).
Начало работы с nmcli
Утилита командной строки nmcli (NetworkManager Command Line Interface) используется для управления NetworkManager и отчётов о состоянии сети. Её можно использовать в качестве замены nm-applet или других графических клиентов. nmcli используется для создания, отображения, редактирования, удаления, активации и деактивации сетевых подключений, а также для управления и отображения состояния сетевых устройств.
Утилита nmcli может использоваться как пользователями, так и скриптами для управления NetworkManager:
-
Для серверов, безголовых машин и терминалов nmcli можно использовать для прямого управления NetworkManager без GUI, включая создание, редактирование, запуск и остановку сетевых подключений и просмотр состояния сети.
-
Для скриптов nmcli поддерживает сжатый формат вывода, который лучше подходит для обработки скриптами. Это способ интегрировать настройку сети вместо ручного управления сетевыми подключениями.
Базовый формат команды nmcli следующий:
$ nmcli [OPTIONS] OBJECT { COMMAND | help }
где OBJECT может быть одним из следующих вариантов: general, networking, radio, connection, device, agent и monitor. Вы можете использовать любой префикс этих вариантов в своих командах. Например, nmcli con help, nmcli c help, nmcli connection help выдают одинаковый результат.
Некоторые полезные необязательные OPTIONS для начала работы:
- -t, terse
-
Этот режим можно использовать для обработки скриптами, так как вы видите сжатый вывод, отображающий только значения.
Example 1. Просмотр сжатого вывода$ nmcli -t device ens3:ethernet:connected:Profile 1 lo:loopback:unmanaged: - -f, field
-
Этот параметр указывает, какие поля могут отображаться в выводе. Например, NAME,UUID,TYPE,AUTOCONNECT,ACTIVE,DEVICE,STATE. Вы можете использовать одно или несколько полей. Если хотите использовать несколько, не ставьте пробел после запятой для разделения полей.
Example 2. Указание полей в выводе$ nmcli -f DEVICE,TYPE device DEVICE TYPE ens3 ethernet lo loopbackили даже лучше для написания скриптов:
$ nmcli -t -f DEVICE,TYPE device ens3:ethernet lo:loopback - -p, pretty
-
Этот параметр заставляет nmcli выдавать удобочитаемый вывод. Например, значения выравниваются и печатаются заголовки.
Example 3. Просмотр вывода в режиме pretty$ nmcli -p device ===================== Status of devices ===================== DEVICE TYPE STATE CONNECTION -------------------------------------------------------------- ens3 ethernet connected Profile 1 lo loopback unmanaged -- - -h, help
-
Prints help information.
Инструмент nmcli имеет встроенную контекстно-зависимую справку. Чтобы вывести список доступных параметров и имён объектов:
$ nmcli help
Чтобы вывести список доступных действий, связанных с указанным объектом:
$ nmcli _object_ help
Например,
$ nmcli c help
Дополнительные ресурсы
Краткая подборка примеров nmcli
В этом разделе приведена краткая подборка примеров nmcli.
Предварительные требования
$ nmcli general status
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled
В сжатом режиме:
$ nmcli -t -f STATE general connected
$ nmcli general logging
LEVEL DOMAINS
INFO PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,WIFI_SCAN,IP4,IP6,A
UTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,
WIMAX,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,DBUS_PROPS,TEAM,CONCHECK,DC
B,DISPATCH
$ nmcli connection show
NAME UUID TYPE DEVICE
Profile 1 db1060e9-c164-476f-b2b5-caec62dc1b05 ethernet ens3
ens3 aaf6eb56-73e5-4746-9037-eed42caa8a65 ethernet --
$ nmcli connection show --active
NAME UUID TYPE DEVICE
Profile 1 db1060e9-c164-476f-b2b5-caec62dc1b05 ethernet ens3
$ nmcli device status
DEVICE TYPE STATE CONNECTION
ens3 ethernet connected Profile 1
lo loopback unmanaged --
Вы также можете использовать следующие сокращения команд nmcli:
[options="header"] |
команда nmcli |
сокращение |
nmcli general status |
nmcli g |
nmcli general logging |
nmcli g log |
nmcli connection show |
nmcli con show |
nmcli connection show --active |
nmcli con show -a |
nmcli device status |
nmcli dev |
Дополнительные ресурсы
-
Дополнительные примеры см. на странице руководства *nmcli-examples*(5).
== Параметры nmcli
Ниже приведены некоторые важные параметры свойств nmcli:
connection.type-
Тип подключения. Допустимые значения: adsl, bond, bond-slave, bridge, bridge-slave, bluetooth, cdma, ethernet, gsm, infiniband, olpc-mesh, team, team-slave, vlan, wifi, wimax. Каждый тип подключения имеет специфичные для типа параметры команды. Например:
-
Подключение
gsmтребует имени точки доступа, указанного вapn.$ nmcli c add connection.type gsm apn pass:quotes[_access_point_name_] -
Устройство
wifiтребует идентификатора набора служб, указанного вssid.$ nmcli c add connection.type wifi ssid _My identifier_
-
Список TYPE_SPECIFIC_OPTIONS можно посмотреть на странице руководства *nmcli*(1).
connection.interface-name-
Имя устройства, относящееся к подключению.
$ nmcli con add connection.interface-name _eth0_ type _ethernet_ connection.id-
Имя, используемое для профиля подключения. Если вы не укажете имя подключения, оно будет сгенерировано следующим образом:
_connection.type -connection.interface-name_connection.id— это имя профиля подключения, и его не следует путать с именем интерфейса, обозначающим устройство (wlan0,ens3,em1). Однако пользователи могут называть подключения в честь интерфейсов, но это не одно и то же. Для устройства может быть доступно несколько профилей подключения. Это особенно полезно для мобильных устройств или при переключении сетевого кабеля между разными устройствами. Вместо редактирования конфигурации создайте разные профили и применяйте их к интерфейсу по мере необходимости. Параметрidтакже относится к имени профиля подключения.
Наиболее важные параметры для команд nmcli, таких как show, up, down:
id-
Идентификационная строка, назначаемая пользователем профилю подключения. Id можно использовать в командах nmcli connection для идентификации подключения. Поле NAME в выводе команды всегда обозначает id подключения. Оно относится к тому же имени профиля подключения, что и con-name.
uuid-
Уникальная идентификационная строка, назначаемая системой профилю подключения.
uuidможно использовать в командахnmcli connectionдля идентификации подключения.
Дополнительные ресурсы
-
Полный список см. на странице руководства *nmcli*(1).
Want to help? Learn how to contribute to Fedora Docs ›