Главная >> Команды >> Настройка Network Manager в консоли

Настройка Network Manager в консоли

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

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


Содержание статьи

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

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

ip addr show

Примерный вывод:

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

ip -s link show enp24s0

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

ip route show match 0/0

Синтаксис и опции nmcli

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

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

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

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

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

Настройка сети с помощью nmcli

1. Запустить NetworkManager

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

sudo systemctl start NetworkManager

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

nmcli general status

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

nmcli general hostname

Получаем состояние интерфейсов

nmcli device status

2. Список подключений

Теперь самое интересное, управление сетью nmcli. Смотрим список доступных подключений:

nmcli connection show

Здесь вы можете видеть одно проводное подключение для интерфейса enp24s0. С помощью следующей команды можно посмотреть информацию о нём:

nmcli connection show "Проводное соединение 2"

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

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

nmcli connection up "Проводное соединение 2"

Команды можно сокращать, например:

nmcli conn up "Проводное соединение 2"

А для деактивации подключения используйте команду down:

nmcli conn down "Проводное соединение 2"

4. Создание DHCP соединения

Чтобы создать новое подключение используйте команду add. Например создадим новое подключение с именем dhcp:

nmcli connection add con-name "dhcp" type ethernet ifname enp24s0

Команде надо передать параметр type - тип устройства, в нашем случае ethernet (Проводное соединение), а также ifname - название сетевого интерфейса, в этом примере enp24s0. По умолчанию используется тип подключения DHCP, поэтому больше ничего настраивать не надо и вы можете уже активировать это подключение как описано выше.

5. Создание соединения с статическим адресом

Для статического подключения настроек больше, вам надо передать команде add ip адрес, который будет использоваться в качестве основного в параметре ip4, а также шлюз с помощью параметра gw4:

nmcli connection add con-name "static" ifname enp2s0 autoconnect no type ethernet ip4 192.168.0.210 gw4 192.168.0.1

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

Продолжим настройку нашего статического соединения. Обычно оно уже может работать, но вы можете захотеть добавить DNS сервер. Для этого используется команда modify:

nmcli conn modify "static" ipv4.dns 8.8.8.8

И ещё один DNS сервер с помощью оператора +:

nmcli conn modify "static" +ipv4.dns 8.8.4.4

Для добавления дополнительной информации в поле используйте символ +. Например, вот так можно добавить еще один ip адрес:

nmcli conn modify "static" +ipv4.addresses 192.168.0.240/24

Обратите внимание, что IP адрес должен быть из той же подсети, что и ваш шлюз иначе может ничего не работать. Теперь можете активировать подключение:

nmcli connection up static

7. Настройка Wifi

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

nmcli radio wifi

Теперь включаем:

nmcli radio wifi on

Или отключаем:

nmcli radio wifi off

Такой командой можно посмотреть список доступных сетей wifi:

nmcli device wifi list

Команда для подключения к новой сети wifi выглядит не намного сложнее. Например, давайте подключимся к сети TP-Link с паролем 12345678:

nmcli device wifi connect "TP-Link" password 12345678 name "TP-Link Wifi"

Если всё прошло хорошо, то вы получите уже привычное сообщение про создание подключения с именем TP-Link Wifi и это имя в дальнейшем можно использовать для редактирования этого подключения и управления им, как описано выше.

Выводы

Как видите, все очень просто и быстро. Настройка network manager в консоли выполняется в пару команд, достаточно только их запомнить или где-нибудь написать, чтобы вы могли выполнить управление сетью nmcli когда это понадобится.

20 комментариев к “Настройка Network Manager в консоли”

  1. В netctl было так
    Возьмем за образец настройки пример из набора
    [root@localhost ~]# cp /etc/netctl/examples/ethernet-static /etc/netctl/enp3s0

    Исправим его в соответствие с нашими нуждами:
    Description='A basic static ethernet connection'
    Interface=enp3s0
    Connection=ethernet
    IP=static
    Address=('192.168.0.23/24' '192.168.3.23/24')
    Routes=('192.168.0.0/16 via 192.168.3.1')
    Gateway='192.168.0.1'
    DNS=('192.168.0.1')

    Ответить
  2. Спасибо, очень помогло, кода чинил систему. Не было интернета и не работал apt в консоли.
    Network Manager пришлось устанавливать вручную.
    Команды:
    $ sudo dpkg --configure network-manager
    и взятая из статьи команда запуска network-manager
    $ sudo service NetworkManager start
    решили проблему интернета.

    Ответить
  3. nmcli device wifi list не выдаёт ничего абсолютно, хотя WiFi сети через nmcli connection show видно, весь копаюсь в этом, не могу вай фай настроить никак и уже не пойму в чем дело

    Ответить
  4. Здравствуйте!

    а как создать GSM соединение?
    # mmcli -m 0
    -----------------------------
    General | dbus path: /org/freedesktop/ModemManager1/Modem/0
    | device id: 91c0b946a92aaca130edfbb57cfc7eeddfcb0c76
    -----------------------------
    Hardware | manufacturer: huawei
    | model: EM770W
    | firmware revision: 11.126.10.80.00
    | supported: gsm-umts
    | current: gsm-umts
    | equipment id: 357030021538604

    Ответить
  5. Статья хороша. Мне пошла на пользу. Но то что я искал я не нашел в ней, да и в прочем в других статьях. Дело в том что все выше описанное работает при условии если ваша точка доступа не является скрытой. А вот если точка доступа скрыта то при команде: " nmcli device wifi list " - В поле SSID проходит пустота. Даже если мне известна моя сеть ( как пример Asdf ) и пароль ( qwerty ) то по команде: " nmcli device wifi connect "Asdf" password qwerty name "Asdf Wifi" выдаст ошибку как указано далее. Ошибка: не найдена сеть с SSID «Asdf». Если вы знаете как проводить подключение из терминала к скрытой точке доступа то пожалуйста напишите. Мне кажется что нужно проводить подключение по BSSID

    Ответить
  6. А что делать, если на шаге nmcli general status видим вот такое?
    ia@ubuntu:~$ nmcli general status
    STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
    disconnected unknown enabled enabled enabled enabled

    Ответить
  7. Привет!
    Может кто сталкивался, на fedora перестала работать сеть.

    $ systemctl status NetworkManager
    ● NetworkManager.service - Network Manager
    Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
    Active: active (running) since Tue 2022-12-27 04:21:48 EST; 5min ago
    Docs: man:NetworkManager(8)
    Main PID: 864 (NetworkManager)
    Tasks: 3 (limit: 4611)
    Memory: 11.1M
    CPU: 74ms
    CGroup: /system.slice/NetworkManager.service
    └─ 864 /usr/sbin/NetworkManager --no-daemon

    $ nmcli general
    STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
    disconnected unknown missing enabled missing enabled

    Как это полечить можно?

    Ответить
  8. Спасибо большое! Оказалось всё довольно просто. Даже драйверов никаких сторонних для моего старого китайского usb-адаптера к deb-десктопу ставить не пришлось, всё установилось по "plug&play" (в отличие от Windows, на которой пришлось скачивать буквально из дебрей интернета старые драйвера, т.к. "официальный" сайт china-производителя давно почил). Люблю когда "из каропки", без геммороя лишнего. 🙂

    Ответить
  9. Всё это, конечно, хорошо, но с Network Manager происходят постоянные разрывы соединения проводной сети, сеть на секунду разрывается, а затем соединение снова восстанавливается.
    Колупался с этой проблемой несколько лет, поменял три "свитча", однако, проблема оставалась.
    Плюнул на всё и удалил Network Manager, а сеть настроил вручную, через конфигурационные файлы. В Debian удалось настроить только проводную сеть, а вот Wi-Fi настроить не удаётся.
    Попробовал всё это проделать в Alt Linux K10.3 и в нём удалось всё настроить, сеть стабильно работает и проводная, через etcnet, и Wi-Fi, через Network Manager, более того они работают одновременно и друг другу не мешают.
    Пробовал это повторить в других Linux: Debian, Fedora, OpenSUSE, Rosa Fresh, Astra...
    Во всех одна и та же проблема с разрывами проводного соединения и более того, без Network Manager настроить сеть почти ни в одной системе не удаётся.
    Лет 10 назад нашёл способ настройки сети без Network Manager в CentOS и даже настроил сеть домашнего сервера без использования Network Manager, но из-за одной неприятной особенности CentOS, заменил его на Debian, а это описание где-то затерялось.
    Помню, что в описании настройки, взятом с какого-то сайта, первыми строками были:
    1. Отключаем Network Manager, "команда"
    2. Удаляем Network Manager, "команда"
    ...............
    И всё получилось, сеть стала работать нормально.

    Ответить

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