Урок 6. Сеть: IP-адрес, ping, DNS и netplan
Чтобы настроить сервер или понять, почему «нет интернета», хватит нескольких понятий и десятка команд. В этом уроке — и то и другое.
Понятия
- IP-адрес — номер компьютера в сети, например
192.168.1.25. Адреса192.168.x.x,10.x.x.xи172.16.x.x–172.31.x.x— локальные: они действуют только внутри домашней или офисной сети. В интернете компьютеры такой сети обычно видны под одним общим внешним адресом роутера. - Маска записывается после косой черты:
192.168.1.25/24./24значит, что первые три числа — номер сети, и в ней адреса от192.168.1.1до192.168.1.254. - Шлюз — устройство, через которое идёт связь с другими сетями и с интернетом. Дома это роутер, обычно
192.168.1.1или192.168.0.1. - DNS — служба, которая превращает имена вроде
ubuntu.comв IP-адреса. - DHCP — автоматическая раздача настроек: роутер сам выдаёт компьютеру адрес, маску, шлюз и DNS. По умолчанию Ubuntu получает настройки именно так.
Сетевая карта в Linux называется интерфейсом. lo — сам компьютер (адрес 127.0.0.1), enp3s0 и похожие имена — проводная сеть, wlp2s0 и похожие — Wi‑Fi. В виртуальных машинах встречаются ens18 и eth0. Имена у каждого компьютера свои.
Свой адрес и шлюз
$ ip -br -4 addr
lo UNKNOWN 127.0.0.1/8
enp3s0 UP 192.168.1.25/24
$ ip route show default
default via 192.168.1.1 dev enp3s0 proto dhcp src 192.168.1.25 metric 100ip -br -4 addr— краткая таблица: интерфейс, состояние (UP— подключён) и адрес с маской. Полный вывод со всеми подробностями —ip a.ip route show default— маршрут по умолчанию: адрес послеvia— это шлюз.hostname -I— только адреса, через пробел.
Вывод у вас будет похожим, но со своими именами и адресами. Если у интерфейса нет адреса — компьютер не получил его от роутера: проверьте кабель или подключение к Wi‑Fi. Старой команды ifconfig из пакета net-tools в новых системах может не быть — ip её заменяет.
Проверить связь: ping
ping -c 4 192.168.1.1ping отправляет короткие запросы и показывает, за сколько миллисекунд пришёл ответ (time=). -c 4 — четыре запроса; без этого ключа ping работает бесконечно, пока не нажмёте Ctrl+C. В конце — итог: сколько запросов отправлено и какая доля потеряна (packet loss).
Если «нет интернета», проверяйте по шагам — так видно, на каком участке обрыв:
ip -br -4 addr— есть ли адрес у интерфейса.ping -c 4 192.168.1.1(адрес шлюза изip route) — есть ли связь с роутером.ping -c 4 1.1.1.1— есть ли выход в интернет (это адрес публичного DNS-сервера).ping -c 4 ubuntu.com— работает ли DNS.
Первый шаг, на котором ответа нет, и показывает место обрыва. Например, если по адресу (шаг 3) ответы есть, а по имени (шаг 4) — нет, связь с интернетом в порядке, а сломан DNS.
Некоторые серверы и роутеры нарочно не отвечают на ping. Нет ответа — ещё не значит, что сервер выключен.
DNS
В Ubuntu имена в адреса превращает служба systemd-resolved. Поэтому в файле /etc/resolv.conf записан адрес 127.0.0.53 — это она сама, на этом же компьютере. Настоящие DNS-серверы и проверку имени показывают команды:
resolvectl status
resolvectl query ubuntu.comПривычные по старым инструкциям nslookup и dig лежат в пакете bind9-dnsutils.
Файл /etc/hosts проверяется раньше DNS. В него можно вписать свои имена — например, чтобы обращаться к серверу в своей сети по имени:
192.168.1.10 serverПосле этого ping server пойдёт на 192.168.1.10. Правится файл командой sudo nano /etc/hosts.
Имя компьютера
hostnamectl
sudo hostnamectl set-hostname server1Первая команда показывает имя компьютера и сведения о системе, вторая меняет имя. После смены замените старое имя и в /etc/hosts, в строке с 127.0.1.1, — иначе sudo станет предупреждать unable to resolve host.
Где хранятся настройки: netplan
Настройки сети Ubuntu хранит в файлах YAML (текстовый формат настроек, где вложенность задают отступы) в папке /etc/netplan/. Программа netplan читает их и передаёт тому, кто управляет сетью на деле: на компьютере с рабочим столом это NetworkManager, на сервере — systemd-networkd.
В Ubuntu Desktop сеть удобно настраивать в параметрах системы (Wi‑Fi и проводная сеть), а в терминале — командой nmcli. Подключения NetworkManager в Ubuntu 24.04 и новее тоже хранит файлами в /etc/netplan/.
В Ubuntu Server настройки лежат в файле вида 50-cloud-init.yaml или 00-installer-config.yaml. Сеть по DHCP в нём выглядит так:
network:
version: 2
ethernets:
enp3s0:
dhcp4: trueВ YAML важны отступы: только пробелы, никаких табуляций, каждый уровень вложенности — сдвиг на два пробела.
Посмотреть, какие файлы есть и что в них записано для проводной сети:
ls /etc/netplan/
sudo netplan get ethernetsnetplan get собирает настройки из всех файлов сразу, а ключ ethernets оставляет только проводные интерфейсы.
В файлах netplan бывают пароли Wi‑Fi. sudo netplan get без ключа и cat по этим файлам покажут их на экране — не выкладывайте такой вывод на форумы и в чаты. По той же причине у файлов должны быть права 600 (читает только root); если права шире, netplan предупреждает Permissions ... are too open.
Применить изменения:
sudo netplan try
sudo netplan applynetplan try применяет настройки и ждёт, пока вы нажмёте Enter. Не нажали за 120 секунд (например, потому что связь пропала) — возвращает прежние. netplan apply применяет сразу и без отката. Как задать постоянный адрес — в справке Статический IP через netplan.
Wi‑Fi из терминала
nmcli device wifi list
nmcli --ask device wifi connect "ИмяСети"Первая команда показывает сети вокруг, вторая подключается к выбранной. С ключом --ask пароль спрашивается во время подключения и не остаётся в истории команд.
Какие порты открыты
ss -tln
sudo ss -tlnpПорт — номер, по которому программа на компьютере принимает подключения: SSH — 22, сайт — 80 и 443. ss -tln показывает TCP-порты, которые ждут подключений; с -p и sudo — ещё и какая программа держит каждый порт. Адрес 127.0.0.1:порт значит, что подключиться можно только с этого же компьютера, а 0.0.0.0:порт или *:порт — из сети. Как открыть порт в брандмауэре (программе, которая пропускает или блокирует подключения) — в справке Как открыть порт в Ubuntu.
Коротко
- Адрес —
ip -br -4 addrилиhostname -I, шлюз —ip route show default. - Связь проверяют по шагам: шлюз, адрес в интернете, имя. По адресу есть, по имени нет — сломан DNS.
- DNS в Ubuntu — служба systemd-resolved:
resolvectl status; свои имена — в/etc/hosts. - Настройки сети — файлы YAML в
/etc/netplan/; применять —sudo netplan try. - На рабочем столе сетью управляет NetworkManager: параметры системы или
nmcli.