Урок 6. Сеть: /etc/network/interfaces и NetworkManager
В этом уроке — как посмотреть сетевые настройки Debian и где они хранятся. Главное отличие от Ubuntu: в Debian нет netplan. На сервере сеть описана в файле /etc/network/interfaces, на компьютере с рабочим столом ею управляет NetworkManager.
Адрес и имя сетевой карты
$ ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
enp1s0 UP 192.168.1.20/24 fe80::5054:ff:fe12:3456/64ip -br a — коротко обо всех сетевых интерфейсах (так называют сетевые карты и похожие устройства):
lo— «петля», сам компьютер; адрес127.0.0.1есть всегда;enp1s0— сетевая карта;UP— включена,192.168.1.20/24— её адрес и размер сети (/24— то же, что маска255.255.255.0).
Имя интерфейса зависит от того, где он подключён: enp1s0 или eno1 на обычном компьютере, ens18 в виртуальной машине Proxmox, eth0 в контейнерах, wlp2s0 — Wi‑Fi. Подробный вывод — ip a.
Шлюз — адрес, через который компьютер выходит в другие сети и в интернет:
ip routeСтрока default via 192.168.1.1 dev enp1s0 значит: шлюз 192.168.1.1, через карту enp1s0.
Проверить связь — ping: сначала шлюз, потом адрес в интернете. Ctrl+C останавливает, ключ -c 4 — четыре попытки:
ping -c 4 192.168.1.1
ping -c 4 deb.debian.orgЕсли шлюз отвечает, а имя deb.debian.org — «не найдено», дело в DNS (о нём ниже).
Кто управляет сетью
| Где | Кто | Настройки |
|---|---|---|
| Сервер без рабочего стола | ifupdown (служба networking) | файл /etc/network/interfaces |
| Компьютер с рабочим столом | NetworkManager | значок сети, команды nmcli и nmtui |
Они не мешают друг другу: интерфейс, описанный в /etc/network/interfaces, NetworkManager не трогает. У хостингов и облачных образов бывает и третий вариант — cloud-init или systemd-networkd. Какая служба работает, покажет:
systemctl is-active networking NetworkManager systemd-networkdОтвет — по строке на службу: active — работает, inactive — нет.
Файл /etc/network/interfaces
Так его обычно записывает установщик на сервере:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug enp1s0
iface enp1s0 inet dhcpauto loиiface lo inet loopback— «петля», её не трогают;allow-hotplug enp1s0— поднять интерфейс, когда система его обнаружит;auto enp1s0— поднять при загрузке; для постоянной сетевой карты годится любое из двух;iface enp1s0 inet dhcp— получить адрес IPv4 по DHCP, то есть автоматически от роутера; вместоdhcpбываетstatic— постоянный адрес, как его задать, рассказано в справке Статический IP в Debian;source /etc/network/interfaces.d/*— подключить файлы из этой папки, если они есть.
Если сервер ставили по Wi‑Fi, под строкой iface будут строки wpa-ssid (имя сети) и wpa-psk (пароль).
Применить изменения — перезапуском службы или перезагрузкой:
sudo systemctl restart networkingОшибка в этом файле или перезапуск сети по SSH могут оборвать соединение, а с неверными настройками сервер не будет доступен по сети. Правьте сеть удалённого сервера, только если есть доступ к его экрану: клавиатура, консоль виртуальной машины или консоль в панели хостинга.
NetworkManager на рабочем столе
На компьютере с рабочим столом сеть настраивают мышью — значок сети в углу экрана и раздел сети в настройках. Из терминала то же делает nmcli:
nmcli device status
nmcli connection show
nmcli device wifi list
nmcli --ask device wifi connect "HomeWiFi"По порядку: состояние интерфейсов, сохранённые подключения, видимые сети Wi‑Fi и подключение к сети HomeWiFi (пароль nmcli спросит сам). Есть и текстовое меню с теми же возможностями — команда nmtui.
DNS
DNS превращает имена вроде deb.debian.org в адреса. Адреса серверов DNS записаны в файле /etc/resolv.conf:
cat /etc/resolv.confСтроки вида nameserver 192.168.1.1. На сервере файл заполняет установщик или служба DHCP, на рабочем столе — NetworkManager. В отличие от Ubuntu, systemd-resolved в Debian по умолчанию не стоит, и resolv.conf — обычный файл. Проверить, что имена находятся, можно без дополнительных программ:
getent hosts deb.debian.orgПустой ответ — имя не нашлось.
Имя компьютера
hostnamectl
sudo hostnamectl set-hostname server1Первая команда показывает имя и сведения о системе, вторая меняет имя на server1. В Debian имя компьютера записано ещё и в файле /etc/hosts, в строке, которая начинается с 127.0.1.1. Поправьте её вручную (sudo nano /etc/hosts) — иначе sudo начнёт предупреждать unable to resolve host server1.
Коротко
ip -br a— адреса и имена интерфейсов,ip route— шлюз,ping -c 4— проверка связи.- На сервере сеть — в
/etc/network/interfaces(службаnetworking), на рабочем столе — NetworkManager (nmcli). inet dhcp— адрес по DHCP,inet static— постоянный.- DNS —
/etc/resolv.conf, проверка —getent hosts имя. - Имя компьютера меняют
hostnamectl set-hostnameи строкой127.0.1.1в/etc/hosts.