Запустить network manager linux

Обновлено: 05.07.2024

NetworkManager - популярный инструмент управления сетевыми подключениями в Linux, имеет удобный графический интерфейс как для Gnome, так и для KDE, но бывают ситуации когда окружение рабочего стола не запускается, и нужно поднимать сеть из консоли, или нужно настроить сеть на сервере где не установлено рабочее окружение.

В этой инструкции будет рассмотрена настройка network Manager в консоли с помощью утилиты nmcli linux. Также поговорим о том, как посмотреть информацию о сетевых интерфейсах в системе.

Собираем информацию о системе

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

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

А чтобы посмотреть таблицу маршрутизации:

Анализируем путь к определенному сайту:

Утилита Nmcli

Утилита Nmcli - многофункциональный и гибкий инструмент командной строки для настройки сети с помощью networkamanger из консоли. Сначала рассмотрим ее синтаксис:

$ nncli опции объект команда

Чаще всего в nmcli мы будем использовать такие объекты:

  • device - управление сетевыми интерфейсами;
  • connection - управление соединениями;
  • networking - управление сетью в целом;
  • general - показывает состояние всех сетевых протоколов и NetworkManager в целом;
  • radio - управление сетевыми протоколами, wifi, ethernent и т д.

Команды для каждого объекта разные, а опции нам не будут интересны. Дальше рассмотрим примеры nmcli network manager.

Запустить NetworkManager

Первым делом нужно запустить NetworkManager из консоли:

Теперь смотрим состояние интерфейсов с помощью nmcli:

Еще мы можем посмотреть имя хоста:

Включить/выключить wifi

В графическом интерфейсе это делается одной галочкой, здесь одной командой. Сначала смотрим состояние wifi:


NetworkManager — программа для управления сетевыми соединениями в Ubuntu. Графический интерфейс представлен в виде индикатора на панели Unity.

FIXME

- надо написать! Пока что подключение_к_интернету

Этот способ решает проблему с исчезающим апплетом сети ( nm-applet , апплет NetworkManager ). Данная инструкция должна подойдет для всех Ubuntu начиная с Interpid 8.10 и до Lucid Lynx 10.04 (10.04.1)

В ubuntu существуют два режима работы с сетью:

Управление сетевыми настройками через редактирование файла /etc/network/interfaces Использование апплета сети, он же nm-applet , апплет NetworkManager и т.д.

Рассмотрим оба варианта

Управление сетевыми настройками через редактирование файла /etc/network/interfaces

Руководствуясь man interfaces , указываем свои сетевые настройки в файле /etc/network/interfaces , перезапускаем сервис сети командой

Использование апплета сети, он же nm-applet , апплет NetworkManager и т.д.

Отредактируйте файл /etc/NetworkManager/nm-system-settings.conf установив параметр managed=true в разделе [ifupdown] чтобы получилось как в примере указанном ниже

Параметр managed=true/false в разделе [ifupdown] файла /etc/NetworkManager/nm-system-settings.conf устанавливает состояние работы апплета сети. То есть, managed=true позволяет апплету сети обслуживание сетевых соединений, а managed=false запрещает (по умолчанию стоит именно этот параметр), что собственно и приводит к исчезновению апплета сети из трея после добавления любых настроек кроме как по умолчанию в файл /etc/network/interfaces .

Перезапустите апплет сети командой

Для ubuntu-14.04 (i386, AMD64):

файл для редактирования /etc/NetworkManager/nm-system-settings.conf теперь расположен по другому пути и с другим именем: /etc/NetworkManager/NetworkManager.conf

Создайте мобильное подключение в нетворк-менеджере.

Если пароль не нужен впишите в поле пароль какой-н символ, например 0. Иначе будет спрашивать пароль и соединения не будет.

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

Используйте все возможности инструмента управления сетевыми подключениями NetworkManager в командной строке Linux c помощью утилиты nmcli.

Утилита nmcli напрямую обращается к API для доступа к функциям NetworkManager.

Она появилась в 2010 году и для многих стала альтернативным способом настройки сетевых интерфейсов и соединений. Хотя кто-то до сих пор использует ifconfig. Так как nmcli — это инструмент интерфейса командной строки (CLI), предназначенный для использования в окнах терминалов и скриптах, он идеально подходит для системных администраторов, работающих без GUI.

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

В общем виде синтаксис выглядит так:

  • options — это параметры, которые определяют тонкости работы nmcli,
  • section (секция) — определяет, какими возможностями утилиты пользоваться,
  • action (действие) — позволяет указать, что, собственно, нужно сделать.

Простые примеры

Перед началом работы убедитесь, что NetworkManager запущен и nmcli может общаться с ним:


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


Это команда использует действие show для секции Connection.

На тестовой машине крутится Ubuntu 20.04. В данном случае мы нашли три проводных подключения: enp0s3, enp0s8, and enp0s9.

Управление подключениями

Важно понимать, что в nmcli под термином Connection мы подразумеваем сущность, которая содержит всю информацию о соединении. Другими словами, это конфигурация сети. Connection инкапсулирует всю информацию, связанную с соединениями, включая канальный уровень и информацию об IP-адресации. Это уровень 2 и уровень 3 в сетевой модели OSI.

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

Добавление сетевых соединений

Утилита nmcli позволяет быстро добавлять и сразу же настраивать соединения. Например, чтобы добавить Wired connection 2 (с enp0s8), нужно от имени суперпользователя запустить следующую команду:


В опции type мы указываем, что это будет Ethernet-соединение, а в опции ifname (interface name) указываем сетевой интерфейс, который хотим использовать.

Вот что будет после запуска команды:


Создано новое соединение, ethernet-enp0s8. Ему был назначен UUID, тип подключения — Ethernet. Поднимем его с помощью команды up:


Ещё раз проверяем список активных соединений:


Добавлено новое соединение ethernet-enp0s8, оно активно и использует сетевой интерфейс enp0s8.

Настройка подключений

Утилита nmcli позволяет легко менять параметры уже существующих подключений. Например, вам нужно сменить динамический (DHCP) на статический IP-адрес.

Пусть нам нужно установить IP-адрес равным 192.168.4.26. Для этого используем две команды. Первая непосредственно установит IP-адрес, а вторая переключит метод установки IP-адреса на значение «вручную» (manual):


Не забудьте также задать маску подсети. Для нашего тестового подключения это 255.255.255.0, или с /24 для бесклассовой маршрутизации (CIDR).

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


Если вам наоборот нужно установить DHCP, вместо manual используйте auto:

Работа с устройствами

Для этого мы используем секцию Device.

Проверка статуса устройств

Запрос информации об устройстве

Для этого используем действие show из секции Device (нужно обязательно указать имя устройства). Утилита показывает достаточно много информации, часто на нескольких страницах.
Давайте посмотрим на интерфейс enp0s8, который использует наше новое соединение. Убедимся, что оно использует ровно тот IP-адрес, который мы установили ранее:


Информации достаточно много. Выделим главное:

  • Имя сетевого интерфейса: enp0s8.
  • Тип соединения: проводное Ethernet-соединение.
  • Мы видим MAC-адрес устройства.
  • Указан Maximum transmission unit (MTU) — максимальный размер полезного блока данных одного пакета, который может быть передан протоколом без фрагментации.
  • Устройство в данный момент подключено.
  • Имя соединения, которое использует устройство: ethernet-enp0s8.
  • Устройство использует тот IP-адрес, который мы установили ранее: 192.168.4.26/24.

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

У nmcli также имеется простенький интерактивный редактор, в котором кому-то работать может быть комфортнее. Чтобы запустить его, например, для соединения ethernet-enp0s8, используйте действие edit:


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


Если вы введёте команду print и нажмёте Enter, nmcli отобразит все свойства соединения:


Например, чтобы задать для подключения свойство DHCP, введите goto ipv4 и нажмите Enter:


Затем пропишите set method auto и нажмите Enter:


Если вы хотите очистить статический IP-адрес, нажмите Enter. В противном случае введите no и нажмите Enter. Вы можете сохранить его, если думаете, что он понадобится вам в будущем. Но даже с сохраненным статическим IP-адресом будет использован DHCP, если method установлен в значение auto.

Используйте команду save, чтобы сохранить изменения:


Введите quit, чтобы выйти из Интерактивного редактора nmcli. Если передумали выходить — используйте команду back.

И это далеко не всё

Откройте Интерактивный редактор nmcli и посмотрите, сколько существует настроек и сколько свойств имеет каждая настройка. Интерактивный редактор — отличный инструмент, но, если вы хотите использовать nmcli в однострочниках или скриптах, вам понадобится обычная версия для командной строки.

Теперь, когда у вас есть основы, ознакомьтесь со справочной страницей nmcli, чтобы узнать, чем ещё она может вам помочь.

На правах рекламы

Эпичные серверы — это виртуальные серверы на Windows или Linux с мощными процессорами семейства AMD EPYC и очень быстрыми NVMe дисками Intel. Спешите заказать!

Современные версии Astra Linux поддерживают возможность использования трёх (а с учётом возможности использования ОС Astra Linux для мобильных устройств - четырёх) способов конфигурирования сети:

    Служба NetworkManager - служба, обеспечивающая базовые операции с сетевыми интерфейсами.
    Эта служба в первую очередь предназначена для использования на персональных компьютерах, предоставляет удобный графический интерфейс для вполнения базовых операций, но потребляет довольно много ресурсов, поэтому для серверных приложений не рекомендуется. Помимо проводных сетевых интерфейсов может работь с интерфейсами WiFi.
    При стандартной установке Astra Linux Common Edition эта служба и её графический интерфейс устанавливаются и запускаются автоматически, и автоматически получают управление внешними сетевыми интерфесами.

В состав диструбутива Astra Linux входит сетевая служба NetworkManager и графический инструмент настройки сетевых интерфейсов апплет NetworkManager, обеспечивающий графический пользовательский интерфейс для выполнения всех стандартных операций по настройке сети в режиме настольного компьютера.
При стандартной установке Astra Linux служба NetworkManager и соответствующий графический инструмент устанавливаются и запускаются автоматически, получая под своё управление все внешние сетевые интерфейсы.
Графический инструмент после установки доступен через меню "Пуск" - "Панель управления" - "Сеть" - "Сетевые соединения", или через иконку быстрого запуска на всплывающей линейке в нижней части экрана.

Документация по использованию NetworkManager находится в каталоге /usr/share/doc/ network-manager/.

Конфигурационные файлы NetworkManager находятся в каталоге /etc/NetworkManager/.

Инструмент командной строки nmcli для работы с NetworkManager

В составе пакета имеется инструмент командной строки nmcli для работы с NetworkManager.

Инструмент может работать с устройствами (devices, dev) или с соединениями (connection, con).

Примеры применения командного интерфейса к устройствам:

При установке ОС по умолчанию устанавливается сетевой интерфейс "Проводное соединение 1" , настроенный на получение динамического адреса по протоколу DHCP.
Кроме "длинного" имени "Проводное соединение 1" можно использовать опции path (выбор соединений по номеру конфигурации в шине dBus) или apath (выбор активных соединений по номеру конфигурации в шине dBus), например:

nmcli con show path 3
nmcli con show apath 1

При этом типовой задачей при настройке серверов является задача переключения этого соединения на статический адрес.
Пример сценария настройки соединения (connection, сокращенно con), выполняющего эту задачу:

nmcli con down "$con" ; nmcli con up "$con"

else
echo "Соединение «$con» не найдено, настройте адрес вручную."
exit 1
fi

Полное описание командного интерфейса доступно в общей системе документации:

man nmcli
man nmcli-examples
man nm-online

Во избежание конфликтов со службой networking настроенная по умолчанию служба NetworkManager НЕ РАБОТАЕТ с сетевыми интерфейсами, перечисленными в файле /etc/network/interfaces.
По умолчанию в файле /etc/network/interfaces присутствует только интерфейс локальной петли (loopback).

Для того, чтобы NetworkManager прочитал изменения конфигурации (в том числе изменения списка интерфейсов, перечисленных в файле /etc/network/interfaces), следует перезапустить службу NetworkManager:

sudo systemctl restart NetworkManager

При работе со службой NetworkManager можно использовать её псевдоним network-manager: sudo systemctl restart network-manager

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

Networking: Настройка сети из командной строки

Теоретически, службы NetworkManager и networking конфликтовать не должны, так как первая не работает с сетевыми интерфейсами, перечисленными в файле /etc/network/interfaces, а вторая - работает только с интерфейсами, перечисленными в этом файле, но
при переходе к использованию networking лучше отключить NetworkManager , для чего выполнить команду:

sudo systemctl --now mask NetworkManager

По желанию после удаления службы NetworkManager можно с крыть графическую оснастку NetworkManager (значок сети в панели задач). Для запрета запуска графической оснастки выполнить команду

sudo mv /etc/xdg/autostart/nm-applet.desktop /etc/xdg/autostart/nm-applet.desktop.disabled

Иконка будет скрыта в следующей сессии пользователя. Если нужно, чтобы оснастка была скрыта немедленно, перезапустить fly-dm:

sudo systemctl restart fly-dm

При перезапуске fly-dm пользовательская сессия будет перезапущена.

Традиционно, настройка сети TCP/IP из командной строки выполняется с использованием инструментов ifup и ifdown, входящих в пакет ifupdown, и предназначенных для высокоуровневого конфигурирования сети.
При этом можно выделить два типичных случая

  • Для систем, работающих в статичной сети (например, для серверов), следует сохранять как можно более простую конфигурацию ;
  • Для систем, работающих с динамически меняющимися сетями и IP-адресами (например, для мобильных компьютеров) рекомендуется дополнительно использовать для настройки пакет resolvconf, упрощающий переключение конфигураций при смене сетевого адреса.

Пакет ifupdown содержит три команды: команды ifup и ifdown, обеспечивающие настройки сетевых интерфейсов в соответствии с конфигурационным файлом /etc/network/interfaces, и команда ifquery, проверяющая корректность конфигурационного файла /etc/network/interfaces.
При этом список включенных в данный момент интерфейсов хранится в файле /run/network/ifstate

Сценарий изменения настройки сетевого интерфейса (на примере интерфейса eth0):

Внести изменения в файл /etc/network/interfaces в секцию, относящуюся к интерфейсу eth0.

Проверить корректность файла:

sudo ifquery eth0

Перезапустить интерфейс. Лучше всегда делать это одной командой, чтобы не потерять машину при работе через удалённое подключение:

sudo ifdown eth0; sudo ifup eth0

Не следует использовать низкоуровневые конфигурационные команды как, например, ifconfig(8) и ip(8) для переключения сетевых интерфейсов во включенное (up) состояние.

Типичной ошибкой при использовании команд ifdown/ifup является повторное назначение параметров интерфейса неотключенным и некорректно работающим сервисом NetworkManager,
что выглядит как игнорирование изменений, внесённых в файл /etc/network/interfaces.
Для проверки полного состояния сетевого интерфейса вместо устаревшей команды ifconfig следует использовать современную команду ip из пакета iproute2:

проверить все сетевые адреса, назначенные сетевому интерфейсу:

ip address show dev eth0

очистить все сетевые адреса, назначенные сетевому интерфейсу:

ip address flush dev eth0

Сетевые интерфейсы в статичных сетях

Полное описание синтаксиса файла настроек интерфейсов /etc/network/interfaces доступно по команде

man interfaces

Основные опции настройки:

Опции, начинающиеся с "iface <config_name> …"

Определяют сетевую конфигурацию <config_name> и имеют следующий синтаксис:

Опции , начинающиеся с "mapping <interface_name_glob>"

Не допускается определять повторяющиеся имена в опциях iface.

Интерфейс локальная петля (loopback)

Автоматическое включение интерфейса локальной петли при запуске системы задаётся в /etc/network/interfaces следующими командами:

auto lo
iface lo inet loopback

Этот интерфейс всегда присутствует в стандартном файле /etc/network/interfaces.

Интерфейс, получающий адрес через DHCP

Отправка запроса DHCP и получение адреса при подключении сетевого кабеля:

allow-hotplug eth0
iface eth0 inet dhcp

Интерфейс со статическим адресом

В примере подразумевается следующее:

При этом, если не используется пакет resolvconf, соответствующая настройка параметров DNS должна быть выполнена вручную в файле /etc/resolv.conf:

Для использования служб systemd-networkd / systemd-resolved во избежание конфликтов следует отключить, остановить и заблокировать все остальные службы управления сетевыми интерфейсами:

sudo systemctl --now mask NetworkManager
sudo systemctl --now mask networking
sudo systemctl --now mask resolvconf

И разблокировать и запустить systemd-networkd / systemd-resolved:

sudo systemctl unmask systemd-networkd
sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd
sudo systemctl unmask systemd-resolved
sudo systemctl enable systemd-resolved
sudo systemctl start systemd-resolved

Конфигурациионные файлы сетевых служб systemd хранятся в каталоге /etc/systemd/network.
Доступны следующие типы конфигурационных файлов:

Описания содержимого конфигурационных файлов доступны в общей системе документации:

В мобильном режиме используется сетевой менеджер connman, а файл /etc/resolv.conf заменяется на ссылку на файл /var/run/connman/resolv.conf .

Сетевой менеджер connman поддерживает собственный интерфейс командной строки connmanctl.
Описание команд commanctl доступно в системе документации:

man connmanctl

Графический интерфейс для работы с connman доступен в мобильной версии ОС Astra Linux.

Читайте также: