Глиф Учебники

Урок 6. Сеть: /etc/network/interfaces и NetworkManager

Курс «Debian» · урок 6 из 8 · 4 минуты чтения

В этом уроке — как посмотреть сетевые настройки 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/64

ip -br a — коротко обо всех сетевых интерфейсах (так называют сетевые карты и похожие устройства):

Имя интерфейса зависит от того, где он подключён: enp1s0 или eno1 на обычном компьютере, ens18 в виртуальной машине Proxmox, eth0 в контейнерах, wlp2s0 — Wi‑Fi. Подробный вывод — ip a.

Шлюз — адрес, через который компьютер выходит в другие сети и в интернет:

Bash
ip route

Строка default via 192.168.1.1 dev enp1s0 значит: шлюз 192.168.1.1, через карту enp1s0.

Проверить связь — ping: сначала шлюз, потом адрес в интернете. Ctrl+C останавливает, ключ -c 4 — четыре попытки:

Bash
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. Какая служба работает, покажет:

Bash
systemctl is-active networking NetworkManager systemd-networkd

Ответ — по строке на службу: active — работает, inactive — нет.

Сервер без рабочего стола /etc/network/interfaces ifupdown служба networking enp1s0 Рабочий стол компьютер, ноутбук значок сети, nmcli, nmtui NetworkManager помнит подключения wlp2s0 enp1s0 Интерфейс, описанный в /etc/network/interfaces, NetworkManager не трогает
На сервере служба networking поднимает интерфейсы по файлу /etc/network/interfaces, на рабочем столе ими управляет NetworkManager, и описанный в файле интерфейс он не трогает.

Файл /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 dhcp
/etc/network/interfaces allow-hotplug enp1s0 iface enp1s0 inet dhcp auto lo iface lo inet loopback «петля» — не трогать allow-hotplug поднять, когда система найдёт карту enp1s0 имя сетевой карты (у вас — своё) auto поднять при загрузке inet адрес IPv4 iface как настроить интерфейс dhcp адрес по DHCP; static — постоянный
Строки allow-hotplug enp1s0 и iface enp1s0 inet dhcp говорят, когда поднять сетевую карту enp1s0 и что ей нужен адрес IPv4 по DHCP.

Если сервер ставили по Wi‑Fi, под строкой iface будут строки wpa-ssid (имя сети) и wpa-psk (пароль).

Применить изменения — перезапуском службы или перезагрузкой:

Bash
sudo systemctl restart networking

Ошибка в этом файле или перезапуск сети по SSH могут оборвать соединение, а с неверными настройками сервер не будет доступен по сети. Правьте сеть удалённого сервера, только если есть доступ к его экрану: клавиатура, консоль виртуальной машины или консоль в панели хостинга.

NetworkManager на рабочем столе

На компьютере с рабочим столом сеть настраивают мышью — значок сети в углу экрана и раздел сети в настройках. Из терминала то же делает nmcli:

Bash
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:

Bash
cat /etc/resolv.conf

Строки вида nameserver 192.168.1.1. На сервере файл заполняет установщик или служба DHCP, на рабочем столе — NetworkManager. В отличие от Ubuntu, systemd-resolved в Debian по умолчанию не стоит, и resolv.conf — обычный файл. Проверить, что имена находятся, можно без дополнительных программ:

Bash
getent hosts deb.debian.org

Пустой ответ — имя не нашлось.

Имя компьютера

Bash
hostnamectl
sudo hostnamectl set-hostname server1

Первая команда показывает имя и сведения о системе, вторая меняет имя на server1. В Debian имя компьютера записано ещё и в файле /etc/hosts, в строке, которая начинается с 127.0.1.1. Поправьте её вручную (sudo nano /etc/hosts) — иначе sudo начнёт предупреждать unable to resolve host server1.

$ sudo hostnamectl set-hostname server1 не меняет /etc/hostname меняется сам server1 пока в /etc/hosts старое имя: sudo: unable to resolve host server1 /etc/hosts правят вручную 127.0.1.1 debian старое имя sudo nano /etc/hosts 127.0.1.1 server1
hostnamectl set-hostname server1 меняет имя в /etc/hostname, а строку 127.0.1.1 в /etc/hosts правят вручную, иначе sudo пишет unable to resolve host server1.

Коротко

Проверьте себя

1. Где хранятся настройки сети на сервере Debian без рабочего стола?
2. Что значит строка iface enp1s0 inet dhcp?
3. Шлюз отвечает на ping, а ping deb.debian.org пишет, что имя не найдено. Где искать причину?
4. Какая команда показывает адреса всех интерфейсов коротко?