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

Урок 6. Сеть: IP-адрес, ping, DNS и netplan

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

Чтобы настроить сервер или понять, почему «нет интернета», хватит нескольких понятий и десятка команд. В этом уроке — и то и другое.

Понятия

Сетевая карта в 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 100

Вывод у вас будет похожим, но со своими именами и адресами. Если у интерфейса нет адреса — компьютер не получил его от роутера: проверьте кабель или подключение к Wi‑Fi. Старой команды ifconfig из пакета net-tools в новых системах может не быть — ip её заменяет.

Проверить связь: ping

Bash
ping -c 4 192.168.1.1

ping отправляет короткие запросы и показывает, за сколько миллисекунд пришёл ответ (time=). -c 4 — четыре запроса; без этого ключа ping работает бесконечно, пока не нажмёте Ctrl+C. В конце — итог: сколько запросов отправлено и какая доля потеряна (packet loss).

Если «нет интернета», проверяйте по шагам — так видно, на каком участке обрыв:

  1. ip -br -4 addr — есть ли адрес у интерфейса.
  2. ping -c 4 192.168.1.1 (адрес шлюза из ip route) — есть ли связь с роутером.
  3. ping -c 4 1.1.1.1 — есть ли выход в интернет (это адрес публичного DNS-сервера).
  4. ping -c 4 ubuntu.com — работает ли DNS.

Первый шаг, на котором ответа нет, и показывает место обрыва. Например, если по адресу (шаг 3) ответы есть, а по имени (шаг 4) — нет, связь с интернетом в порядке, а сломан DNS.

локальная сеть Компьютер 192.168.1.25 enp3s0 1 Роутер шлюз 192.168.1.1 2 Интернет 1.1.1.1 3 ubuntu.com 4 1 ip -br -4 addr 2 ping -c 4 192.168.1.1 3 ping -c 4 1.1.1.1 4 ping -c 4 ubuntu.com 3 отвечает, а 4 нет — сломан DNS
Четыре проверки идут по участкам пути: адрес самого компьютера, связь с роутером, выход в интернет и имя через DNS.

Некоторые серверы и роутеры нарочно не отвечают на ping. Нет ответа — ещё не значит, что сервер выключен.

DNS

В Ubuntu имена в адреса превращает служба systemd-resolved. Поэтому в файле /etc/resolv.conf записан адрес 127.0.0.53 — это она сама, на этом же компьютере. Настоящие DNS-серверы и проверку имени показывают команды:

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

этот компьютер ping server ping ubuntu.com /etc/hosts проверяется первым ubuntu.com нет в файле systemd-resolved 127.0.0.53 DNS-серверы из настроек сети есть 192.168.1.10 server ping server → 192.168.1.10 /etc/resolv.conf nameserver 127.0.0.53 адрес ubuntu.com
Имя сначала ищется в /etc/hosts, а если его там нет — через службу systemd-resolved на 127.0.0.53, которая спрашивает DNS-серверы.

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

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

/etc/netplan/ 50-cloud-init.yaml network: version: 2 ethernets: enp3s0: dhcp4: true netplan читает и передаёт NetworkManager рабочий стол, nmcli systemd-networkd сервер
netplan читает файлы YAML из /etc/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 в нём выглядит так:

YAML
network:
  version: 2
  ethernets:
    enp3s0:
      dhcp4: true

В YAML важны отступы: только пробелы, никаких табуляций, каждый уровень вложенности — сдвиг на два пробела.

Посмотреть, какие файлы есть и что в них записано для проводной сети:

Bash
ls /etc/netplan/
sudo netplan get ethernets

netplan get собирает настройки из всех файлов сразу, а ключ ethernets оставляет только проводные интерфейсы.

В файлах netplan бывают пароли Wi‑Fi. sudo netplan get без ключа и cat по этим файлам покажут их на экране — не выкладывайте такой вывод на форумы и в чаты. По той же причине у файлов должны быть права 600 (читает только root); если права шире, netplan предупреждает Permissions ... are too open.

Применить изменения:

Bash
sudo netplan try
sudo netplan apply

netplan try применяет настройки и ждёт, пока вы нажмёте Enter. Не нажали за 120 секунд (например, потому что связь пропала) — возвращает прежние. netplan apply применяет сразу и без отката. Как задать постоянный адрес — в справке Статический IP через netplan.

Wi‑Fi из терминала

Bash
nmcli device wifi list
nmcli --ask device wifi connect "ИмяСети"

Первая команда показывает сети вокруг, вторая подключается к выбранной. С ключом --ask пароль спрашивается во время подключения и не остаётся в истории команд.

Какие порты открыты

Bash
ss -tln
sudo ss -tlnp

Порт — номер, по которому программа на компьютере принимает подключения: SSH — 22, сайт — 80 и 443. ss -tln показывает TCP-порты, которые ждут подключений; с -p и sudo — ещё и какая программа держит каждый порт. Адрес 127.0.0.1:порт значит, что подключиться можно только с этого же компьютера, а 0.0.0.0:порт или *:порт — из сети. Как открыть порт в брандмауэре (программе, которая пропускает или блокирует подключения) — в справке Как открыть порт в Ubuntu.

Коротко

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

1. Какой командой узнать IP-адрес компьютера?
2. Ping по адресу 1.1.1.1 проходит, а по имени ubuntu.com — нет. Что, скорее всего, сломано?
3. Что делает sudo netplan try?
4. Что означает адрес 127.0.0.1?