Введение
После установки 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. И теперь у меня есть под рукой мануал, как быстро настроить сеть и не лезть за этим в поисковик.