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

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

Чтобы получить информацию о всех установленных в системе сетевых интерфейсах используйте команду:
$ ip addr show
Примерный вывод:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether bc:ae:c5:be:8b:b7 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.2/24 brd 192.168.1.255 scope global dynamic enp2s0
valid_lft 75866sec preferred_lft 75866sec
inet6 fe80::beae:c5ff:febe:8bb7/64 scope link
valid_lft forever preferred_lft forever
3: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default
link/sit 0.0.0.0 brd 0.0.0.0
Для  просмотра статистики переданных и полученных пакетов активными интерфейсами наберите:
$ ip -s link show eno16777736
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether bc:ae:c5:be:8b:b7 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
332140667 293632 0 0 0 0
TX: bytes packets errors dropped carrier collsns
35490533 281001 0 0 0 0
А чтобы посмотреть таблицу маршрутизации:
$ ip route
default via 192.168.1.1 dev enp2s0 proto static metric 100
127.0.0.0/8 dev lo scope host
192.168.1.0/24 dev enp2s0 proto kernel scope link src 192.168.1.2
192.168.1.0/24 dev enp2s0 proto kernel scope link src 192.168.1.2 metric 202
Анализируем путь к определенному сайту:
$ tracepath losst.ru

Утилита Nmcli

Утилита Nmcli — многофункциональный и гибкий инструмент командной строки. Чаще всего в nmcli мы будем использовать параметры:
  • device — управление сетевыми интерфейсами
  • connection — управление соединениями.

Смотрим доступные соединения

$ nmcli connection show
ИМЯ UUID ТИП УСТРОЙСТВО
ham0 6272eb20-2c54-4fc7-afba-31e0f0db295b generic ham0
Проводное соединение 1 e4ba8abf-3608-4482-955d-aa9000f565ee 802-3-ethernet enp2s0

Смотрим информацию о подключении

$ nmcli connection show «Проводное соединение 1″
connection.id: Проводное соединение 1
connection.uuid: e4ba8abf-3608-4482-955d-aa9000f565ee
connection.interface-name: —
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.timestamp: 1441537783
connection.read-only: no
connection.permissions:
connection.zone: —
connection.master: —
connection.slave-type: —
connection.secondaries:
connection.gateway-ping-timeout: 0
802-3-ethernet.port: —
802-3-ethernet.speed: 0
802-3-ethernet.duplex: —
802-3-ethernet.auto-negotiate: yes
802-3-ethernet.mac-address: BC:AE:C5:BE:8B:B7
802-3-ethernet.cloned-mac-address: —
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu: автоматически
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype: —
802-3-ethernet.s390-options:
ipv4.method: auto
Получаем состояние интерфейсов:
$ nmcli device status
УСТРОЙСТВО ТИП СОСТОЯНИЕ СОЕДИНЕНИЕ
enp2s0 ethernet подключено Проводное соединение 1
lo loopback без управления —
sit0 sit без управления —

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

$ nmcli connection add con-name «dhcp» type ethernet ifname enp2s0
Connection ‘dhcp’ (163a6822-cd50-4d23-bb42-8b774aeab9cb) successfully added.
Здесь:
  • connection add — добавить новое соединение
  • con-name — название подключения
  • type — тип устройства, в нашем случае ethernet
  • ifname — название сетевого интерфейса

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

$ nmcli connection add con-name «static» ifname enp2s0 autoconnect no type ethernet ip4 192.168.1.240 gw4 192.168.1.1
Connection ‘static’ (8e69d847-03d7-47c7-8623-bb112f5cc842) successfully added.

Добавляем настройки DNS

$ nmcli connection modify «static» ipv4.dns 202.131.124.4

Добавляем еще один сервер DNS

$ nmcli connection modify «static» +ipv4.dns 8.8.8.8
Для добавления дополнительной информации в поле используйте символ +. Например вот так можно добавить еще один ip адрес:
$ nmcli connection modify «static» +ipv4.addresses 192.168.200.1/24
Осталось обновить настройки:
$ nmcli connection up static
Как видите все очень просто и быстро.