Как управлять сетевыми подключениями Linux из командной строки — CloudSavvy IT

Команда nmcli позволяет вам использовать возможности Linux NetworkManager прямо из командной строки, что делает его идеальным для серверов без среды рабочего стола и удаленного администрирования оболочки SSH.

Команда nmcli не нова, она была выпущена в 2010 году. Вместе с командой ip она заменяет почтенный, но устаревший — ifconfig. От старых привычек трудно избавиться, и многие системные администраторы все еще используют ifconfig. Они уже знают, как им пользоваться, им не нужно учиться, и им просто нужно выполнить свою работу. Так зачем изучать еще один инструмент?

Что ж, в конце концов, ifconfig будет удален дистрибутивами, так что это изменение, нравится вам это или нет. Но у nmcli есть свои собственные хитрости, благодаря которым стоит узнать, что он может предложить.

Как и все команды CLI, nmcli принимает параметры командной строки. Параметры сгруппированы в три категории.

Но учтите, что вам не всегда нужны все три набора параметров для каждой команды. Разделы nmcli:

  • Справка: предоставляет короткие справочные тексты по командам ncmcli.
  • Общие: извлекает состояние и конфигурацию NetworkManager.
  • Сеть: запрашивает, включает или отключает сетевые подключения.
  • Радио: запрашивает, включает или отключает сетевые подключения Wi-Fi.
  • Монитор: отслеживает NetworkManager и изменения статуса сетевых подключений.
  • Соединение: напрямую управляет сетевыми интерфейсами, включая их включение и отключение, добавление новых соединений и удаление существующих соединений.
  • Устройство: изменяет параметры сетевого устройства и подключает или отключает устройство от существующего подключения.
  • Секрет: регистрирует nmcli как Секретный агент NetworkManager. Поскольку nmcli делает это автоматически, это используется очень редко.

Первые шаги с nmcli

Давайте убедимся, что NetworkManager установлен, запущен и мы можем подключиться к нему с помощью nmcli. Мы будем использовать статусное действие из общего раздела.

общее состояние nmcli

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

Мы можем перечислить все профили сетевых подключений в памяти и на диске, используя действие show из раздела подключения:

nmcli соединение показать

Вывод шире, чем окно терминала. Наши результаты были:

ИМЯ UUID ТИП УСТРОЙСТВО Проводное соединение 1 d2864443-9cee-31ec-ab2e-55e9ebddd53e ethernet enp0s3 ethernet-enp0s8 9aad8efa-3427-4a5c-bef5-270340cd33d0 ethernet enp0sce6 ethernet-enp323d4-enp0s8-ethernet-enp03d04-enp323d4-enp0s8

На тестовой машине, использованной для этой статьи, установлена ​​предварительная версия Ubuntu 21.10. В нем установлено три сетевых адаптера с именами enp0s3, enp0s8 и enp0s9.

Понимание сантехники

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

Соединение nmcli инкапсулирует всю информацию, относящуюся к этому соединению, включая уровень канала передачи данных и Информация об IP-адресации Информация. Вы можете думать о подключениях nmcli как о деталях конфигурации для реальных сетевых подключений.

Чтобы получить доступ к внешнему миру, соединение должно использовать устройство сетевого интерфейса, такое как сетевая карта. Подключение привязано к устройству. Когда устройство активно и может принимать или передавать данные, соединение считается активным или установленным. Соответствующее неактивное состояние, что неудивительно, называется неактивным или выключенным.

Добавление сетевых подключений

С помощью nmcli вы можете создать сетевое соединение и установить некоторые из его параметров конфигурации с помощью одной команды. На этом тестовом компьютере нет соединения с enp0s8, именем нашего проводного соединения (ethernet) номер 2. Мы добавим соединение с enp0s8. Поскольку мы вносим изменения в систему, вам необходимо использовать sudo:

sudo nmcli подключение добавить тип ethernet ifname enp0s8

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

Проверим, что случилось:

nmcli соединение показать

ИМЯ UUID ТИП УСТРОЙСТВО Проводное соединение 1 d2864443-9cee-31ec-ab2e-55e9ebddd53e ethernet enp0s3 ethernet-enp0s8 9aad8efa-3427-4a5c-bef5-270340cd33d0 ethernet enp0sce6 ethernet-enp320s-enp03d0-ethernet-enp0s8-ethernet-enp323-enp890s 1 b874aa09-3a25-4f52-b20b-1b95d9741be9 Ethernet —

Наше новое соединение, ethernet-enp0s8-1, было создано. Назначен его универсальный уникальный идентификатор (UUID), а тип подключения — Ethernet. Теперь мы можем сделать его активным с помощью команды вверх. После команды up должно быть указано имя соединения или его UUID:

nmcli подключение к Ethernet-enp0s8-1

Еще раз проверим наши активные подключения:

nmcli connection show —active

НАЗВАНИЕ UUID ТИП УСТРОЙСТВО Проводное соединение 1 d2864443-9cee-31ec-ab2e-55e9ebddd53e ethernet enp0s3 ethernet-enp0s8-1 b874aa09-3a25-4f52-b20b-1b95d9741be9 ethernet enp0s8-480s-enp0s8-ethernet-enp0s8-enp0c8-enp09-enp09-enp09-enp329-ru

Наше новое соединение ethernet-enp0s8-1 теперь активно и привязано к устройству сетевого интерфейса enp0s8.

Регулировка соединений

Конечно, ncmli позволяет изменять и параметры существующих подключений. Предположим, мы хотим переключить сетевой интерфейс с протокола динамической конфигурации хоста (DHCP) на использование статического IP-адреса. Чтобы соответствовать нашей сети, нам нужен фиксированный IP-адрес 192.168.1.40 для нашего нового соединения.

Для этого вам нужно выполнить две команды. Один для установки IP-адреса, а второй для установки метода получения IP-адреса вручную:

nmcli connection изменить ethernet-enp0s8-1 ipv4.address 192.168.1.40/24 nmcli connection изменить ethernet-enp0s8-1 ipv4.method manual

«/ 24», которое мы предоставляем с IP-адресом, является маской подсети в Бесклассовая междоменная маршрутизация (CIDR). В этом контексте «/ 24» означает «255.255.255.0».

Изменения не вступят в силу, пока соединение не будет отключено. То есть отключили и вернули в онлайн. Первая команда отключает соединение, а вторая восстанавливает его.

подключение nmcli вниз ethernet-enp0s8-1 подключение nmcli вверх ethernet-enp0s8-1

Если вы хотите отменить изменение и перейти от статического IP-адреса к IP-адресу DHCP, используйте параметр auto вместо ручного.

подключение nmcli изменить ethernet-enp0s8-1 ipv4.method auto

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

Раздел устройства nmcli содержит действия (команды), которые позволяют управлять сетевыми интерфейсами, установленными на вашем компьютере. Чтобы увидеть состояние всех сетевых интерфейсов на вашем компьютере, используйте:

Состояние устройства nmcli

Отображение сведений об устройстве

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

Давайте посмотрим на enp0s8, устройство, которое использует наше новое соединение. Мы можем проверить, что используемый IP-адрес — это тот адрес, который мы запросили ранее.

Устройство nmcli показывает enp0s8

GENERAL.DEVICE: enp0s8 GENERAL.TYPE: ethernet GENERAL.HWADDR: 08: 00: 27: 79: A7: 68 GENERAL.MTU: 1500 GENERAL.STATE: 100 (подключен) GENERAL.CONNECTION: ethernet-enp0s8-1 GENERAL.CON -PATH: / org / freedesktop / NetworkManager / ActiveConnection / 8 WIRED-PROPERTIES.CARRIER: на IP4.ADDRESS[1]: 192.168.1.40/24 IP4.ШЛЮЗ: — IP4.ROUTE[1]: dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 102 IP6.АДРЕС[1]: fe80 :: 3241: 457d: cd1c: 2436/64 IP6.ШЛЮЗ: — IP6.ROUTE[1]: dst = fe80 :: / 64, nh = ::, mt = 102

Nmcli возвращает полный экран информации. Вот некоторые из наиболее часто используемых предметов:

  • УСТРОЙСТВО: имя исследуемого устройства.
  • ТИП: Тип подключения с помощью этого устройства.
  • HWADDR: MAC-адрес интерфейсной карты.
  • СОСТОЯНИЕ: есть ли на этом устройстве активное соединение.
  • IP4.АДРЕС[1]: IP-адрес и маска подсети для этого устройства.
  • СОЕДИНЕНИЕ: имя подключения, использующего это устройство.

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

Хотя nmcli — это инструмент командной строки, у него есть элементарный интерактивный редактор. Действие редактирования в разделе подключения открывает интерактивный редактор для подключения, которое вы передаете в командной строке:

Соединение nmcli редактировать ethernet-enp0s8-1

Некоторый текст справки выводится на экран, и вы видите командную строку «nmcli>».

если вы наберете print и нажмете «Enter», nmcli отобразит все свойства, связанные с подключением. Их очень много. Вы можете пролистать их, чтобы просмотреть.

Распечатать

Давайте снова изменим наше соединение на использование DHCP. Мы будем использовать настройки «ipv4». Для этого нам нужно «перейти» в настройки IPv4.

перейти к ipv4

Свойство, которое мы хотим изменить, — это метод. Мы хотим установить его на автоматический режим.

установить метод авто

Вы увидите следующее приглашение:

Вы также хотите удалить «ipv4.addresses»? [yes]:

Если вы не очистите IP-адрес, в следующий раз, когда вы настроите это соединение на использование статического IP-адреса, оно будет использовать тот, который был установлен ранее. Если вы его очистите, вам нужно будет установить новый IP-адрес, если вы когда-либо снова измените это соединение на использование статического IP-адреса. Введите «да» или просто нажмите «Enter», чтобы очистить его. Введите «нет» и нажмите «Enter», чтобы сохранить его.

Нам нужно сохранить наши изменения:

спасти

Введите «quit», чтобы выйти из интерактивного редактора. Если вы не хотите выходить, введите «назад», чтобы вернуться на основной уровень, и продолжайте использовать редактор.

В человеке гораздо больше

Команда nmcli может намного больше. У него очень много параметров и опций командной строки. Так много на самом деле, что это страница руководства насчитывает более 1200 строк. Просмотрите их, чтобы узнать, что еще nmcli может для вас сделать.

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.