Воспользуйтесь всеми преимуществами инструмента управления сетью NetworkManager в командной строке Linux с помощью утилиты nmcli.
Полезность нмкли напрямую вызывает API для доступа к функциям NetworkManager.
Он появился в 2010 году и для многих стал альтернативным способом настройки сетевых интерфейсов и подключений.
Хотя некоторые люди все еще используют есликонфигурация .
Поскольку nmcli — это инструмент с интерфейсом командной строки (CLI), предназначенный для использования в окнах терминала и сценариях, он идеально подходит для системных администраторов, работающих без графического пользовательского интерфейса.
синтаксис команды nmcli
В целом синтаксис выглядит так:$ nmcli <options> <section> <action>
- options — параметры, определяющие тонкости работы nmcli,
- раздел (раздел) – определяет, какие возможности утилиты использовать,
- действие — позволяет указать, что на самом деле необходимо сделать.
- Помощь предоставляет справку о командах ncmcli и их использовании.
- Общий возвращает статус NetworkManager и глобальную конфигурацию.
- сеть включает команды для запроса состояния сетевого подключения и включения/отключения подключений.
- Радио включает команды для запроса состояния подключения к сети Wi-Fi и включения/отключения подключений.
- Монитор включает команды для мониторинга активности NetworkManager и наблюдения за изменениями состояния сетевых подключений.
- Связь включает команды для управления сетевыми интерфейсами, добавления новых подключений и удаления существующих.
- Устройство в основном используется для изменения параметров, связанных с устройством (например, имени интерфейса), или для подключения устройств с использованием существующего соединения.
- Секрет регистрирует nmcli как «секретный агент» NetworkManager, который прослушивает секретные сообщения.
Этот раздел используется редко, поскольку nmcli по умолчанию работает именно так при подключении к сетям.
Простые примеры
Прежде чем начать, убедитесь, что NetworkManager запущен и nmcli может с ним взаимодействовать: $ nmcli general
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled
Работа часто начинается с просмотра всех профилей сетевых подключений:
$ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9
Эта команда использует действие show для раздела «Соединения».
Тестовая машина работает под управлением Ubuntu 20.04. В данном случае мы обнаружили три проводных соединения: enp0s3, enp0s8 и enp0s9.
Управление подключениями
Важно понимать, что в nmcli под термином Connection мы подразумеваем сущность, содержащую всю информацию о соединении.Другими словами, это конфигурация сети.
Соединение инкапсулирует всю информацию, связанную с соединением, включая информацию канального уровня и IP-адресации.
Это уровни 2 и 3 в сетевой модели OSI. Когда вы настраиваете сеть в Linux, вы обычно настраиваете соединения, которые в конечном итоге будут привязаны к сетевым устройствам, которые, в свою очередь, представляют собой сетевые интерфейсы, установленные на компьютере.
Когда устройство использует соединение, оно считается активным или с повышенными правами.
Если соединение не используется, оно неактивно или сброшено.
Добавление сетевых подключений
Утилита nmcli позволяет быстро добавлять и сразу настраивать соединения.
Например, чтобы добавить проводное соединение 2 (с enp0s8), вам необходимо запустить следующую команду от имени суперпользователя: $ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.
В опции type мы указываем, что это будет соединение Ethernet, а в опции ifname (имя интерфейса) указываем сетевой интерфейс, который мы хотим использовать.
Вот что произойдет после выполнения команды: $ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9
ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet --
Было создано новое соединение Ethernet-enp0s8. Ему был присвоен UUID, а тип соединения — Ethernet. Поднимем его командой up: $ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
Давайте еще раз проверим список активных подключений: $ nmcli connection show --active
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9
Добавлено новое соединение ethernet-enp0s8, оно активно и использует сетевой интерфейс enp0s8.
Настройка соединений
Утилита nmcli позволяет легко изменять параметры существующих подключений.Например, вам необходимо изменить динамический (DHCP) IP-адрес на статический IP-адрес.
Допустим, нам нужно установить IP-адрес 192.168.4.26. Для этого мы используем две команды.
Первый установит IP-адрес напрямую, а второй переключит метод настройки IP-адреса на ручной: $ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manual
Не забудьте также установить маску подсети.
Для нашего тестового соединения это 255.255.255.0 или /24 для бесклассовой маршрутизации (CIDR).
Чтобы изменения вступили в силу, необходимо деактивировать, а затем повторно активировать соединение: $ nmcli connection down ethernet-enp0s8
Connection 'ethernet-enp0s8' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveC
Если, наоборот, вам нужно установить DHCP, вместо ручного используйте auto: $ nmcli connection modify ethernet-enp0s8 ipv4.method auto
Работа с устройствами
Для этого используем раздел «Устройство».
Проверка состояния устройства
$ nmcli device status
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected Wired connection 1
enp0s8 ethernet connected ethernet-enp0s8
enp0s9 ethernet connected Wired connection 3
lo loopback unmanaged --
Запрос информации об устройстве
Для этого используйте действие show из раздела Устройство (необходимо указать имя устройства).Утилита отображает много информации, зачастую на нескольких страницах.
Давайте посмотрим на интерфейс enp0s8, который использует наше новое соединение.
Убедимся, что он использует именно тот IP-адрес, который мы установили ранее: $ nmcli device show enp0s8
GENERAL.DEVICE: enp0s8
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 08:00:27:81:16:20
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ethernet-enp0s8
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.4.26/24
IP4.GATEWAY: --
IP4.ROUTE[1]: dst = 192.168.4.0/24, nh = 0.0.0.0, mt = 103
IP6.ADDRESS[1]: fe80::6d70:90de:cb83:4491/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 103
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
Информации довольно много.
Выделим главное:
- Имя сетевого интерфейса: enp0s8.
- Тип соединения: проводное соединение Ethernet.
- Видим MAC-адрес устройства.
- Указан максимальный блок передачи (MTU) — максимальный размер полезного блока данных одного пакета, который может быть передан протоколом без фрагментации.
- Устройство в настоящее время подключен .
- Название соединения какое устройство использует: Ethernet-enp0s8.
- В устройстве используется один айпи адрес , который мы установили ранее: 192.168.4.26/24.
Они зависят от конкретной сети.
Интерактивный редактор nmcli
nmcli также имеет простой интерактивный редактор, с которым некоторым может быть удобнее работать.
Например, чтобы запустить его по соединению Ethernet-enp0s8, используйте действие редактировать: $ nmcli connection edit ethernet-enp0s8
Также там есть небольшая справка, которая, правда, меньше по размеру, чем консольная версия: ===| nmcli interactive connection editor |===
Editing existing '802-3-ethernet' connection: 'ethernet-enp0s8'
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, tc, proxy
nmcli>
Если вы введете команду печати и нажмете Enter, nmcli отобразит все свойства подключения: ===============================================================================
Connection profile details (ethernet-enp0s8)
===============================================================================
connection.id: ethernet-enp0s8
connection.uuid: 09d26960-25a0-440f-8b20-c684d7adc2f5
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: enp0s8
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0 (default)
connection.auth-retries: -1
connection.timestamp: 1593967212
connection.read-only: no
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (default)
connection.secondaries: --
Например, чтобы установить соединение по DHCP, введите goto ipv4 и нажмите Входить : nmcli> goto ipv4
You may edit the following properties: method, dns, dns-search,
dns-options, dns-priority, addresses, gateway, routes, route-metric,
route-table, routing-rules, ignore-auto-routes, ignore-auto-dns,
dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-send-hostname,
dhcp-hostname, dhcp-fqdn, dhcp-hostname-flags, never-default, may-fail,
dad-timeout
nmcli ipv4>
Затем напишите метод set auto и нажмите Входить : nmcli ipv4> set method auto
Do you also want to clear 'ipv4.addresses'? [yes]:
Если вы хотите очистить статический IP-адрес, нажмите Входить .
В противном случае введите нет и нажмите Enter. Вы можете сохранить его, если считаете, что он понадобится вам в будущем.
Но даже при сохраненном статическом IP-адресе DHCP будет использоваться, если для метода установлено значение «авто».
Используйте команду save, чтобы сохранить изменения: nmcli ipv4> save
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.
nmcli ipv4>
Введите quit, чтобы выйти из интерактивного редактора nmcli. Если вы передумали уходить, используйте команду «Назад».
И это еще не все
Откройте интерактивный редактор nmcli и посмотрите, сколько там настроек и сколько свойств имеет каждый параметр.Интерактивный редактор — отличный инструмент, но если вы хотите использовать nmcli в однострочных текстах или сценариях, вам понадобится обычная версия командной строки.
Теперь, когда у вас есть основы, проверьте справочная страница nmcli, чтобы узнать, чем еще он может вам помочь.
В качестве рекламы
Эпиковые серверы - Этот виртуальные серверы в Windows или Linux с мощными процессорами семейства AMD EPYC и очень быстрыми накопителями Intel NVMe. Спешите сделать заказ!Теги: #Сетевые технологии #Системное администрирование #Администрирование серверов #Настройка Linux #nmcli #настройка сети
-
Самые Популярные Ноутбуки Современности
19 Oct, 24 -
Гендерные Исследования
19 Oct, 24 -
Учиться Учиться
19 Oct, 24 -
Gis Days 2020, Обзор Сессии Pro3
19 Oct, 24 -
Хаброреклама - Комментарии К Баннерам
19 Oct, 24 -
Простой Графический Редактор Для Android
19 Oct, 24