Network Manager настройка сети в командной строке Debian 11

Введение

После установки Home Assistant на свеже установленный Debian 11 столкнулся с проблемами с сетью на хостовой машине. Начал разбираться и понял, что Network Manager, который нужен для Home Assistant, не всегда точно настраивается. Решил написать для себя памятку как его настраивать из командной строки Linux.

Установка

После установки командой

apt install network-manager

В системе появляется служба NetworkManager

Изучение информации

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

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

# nmcli device
DEVICE       TYPE      STATE      CONNECTION
eth0         ethernet  connected  Supervisor eth0
docker0      bridge    unmanaged  --
hassio       bridge    unmanaged  --
veth0494a79  ethernet  unmanaged  --
veth4f73af5  ethernet  unmanaged  --
veth55bac0b  ethernet  unmanaged  --
veth5f8281c  ethernet  unmanaged  --
veth5f979fc  ethernet  unmanaged  --
veth7265583  ethernet  unmanaged  --
veth7c94d8c  ethernet  unmanaged  --
vethacb381f  ethernet  unmanaged  --
lo           loopback  unmanaged  --
tap0         tun       unmanaged  --
tun0         tun       unmanaged  --

Посмотреть информацию по конкретному устройству команда:

nmcli device show DEVICE

К примеру, у меня это:

# nmcli device show eth0
GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:00:00:60:33:78
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     Supervisor eth0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/3
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         185.87.199.54/24
IP4.GATEWAY:                            185.87.199.1
IP4.ROUTE[1]:                           dst = 185.87.199.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 185.87.199.1, mt = 100
IP6.ADDRESS[1]:                         2a03:c980:e5:16::2/64
IP6.ADDRESS[2]:                         fe80::200:ff:fe60:3378/64
IP6.GATEWAY:                            2a03:c980:e5:16::1
IP6.ROUTE[1]:                           dst = 2a03:c980:e5:16::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[3]:                           dst = ::/0, nh = 2a03:c980:e5:16::1, mt = 100

Работа с соединениями

Для получения списка всех соединений команда:

# nmcli connection
NAME             UUID                                  TYPE      DEVICE
Supervisor eth0  4b8d15c5-a3ad-41c1-b8ad-de9fa6e51b04  ethernet  eth0
Supervisor eth0  e3a99c0b-5f8c-33bf-9486-1077526d1aaa  ethernet  --

Для получения информации по конкретному соединению команда:

nmcli connection show NAME
~# nmcli connection show "Supervisor eth0"
connection.id:                          Supervisor eth0
connection.uuid:                        4b8d15c5-a3ad-41c1-b8ad-de9fa6e51b04
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              eth0
connection.autoconnect:                 yes
....

Настройка

Настройка DNS для существующего соединения

Часто бывает, что Network Manager не переносит текущий DNS сервер, и следовательно, теряется связь с интернетом, компьютер не может получить информацию об IP адресе доменов.

Для того чтобы поменять DNS воспользуемся командой

nmcli connection modify "Supervisor eth0" ipv4.DNS 192.168.1.1

Если нужно прописать более одного DNS сервера, перечислим их через запятую

nmcli connection modify "Supervisor eth0" ipv4.DNS 192.168.1.1,192.168.1.10

Для применения изменений нужно перезапустить сервис

service NetworkManager restart

Заключение

Network Manager это очень мощная утилита, которая имеет внешнее управление через API. Поэтому оно используется в Home Assistant Supervisor. И теперь у меня есть под рукой мануал, как быстро настроить сеть и не лезть за этим в поисковик.






0