С чего начать Первые шаги трек · 15 ступеней
Linux Labs

Диагностика сети

4 мин Linux

Лесенка проверки связности: от интерфейса и шлюза до DNS и порта нужного сервиса.

Шпаргалка

7 команд Версия для печати
  • ping -c4 шлюз L2/L3: доступен ли шлюз
  • ping -c4 8.8.8.8 L3: связность с интернетом
  • mtr -rwc 10 host путь + потери (отчёт)
  • traceroute -T -p 443 host трейс по TCP-порту (ICMP режут)
  • getent hosts имя DNS
  • nc -zv host port порт назначения
  • ip route get IP каким маршрутом пойдёт
  • лесенка: адрес → шлюз → интернет → DNS → порт

Обзор

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

  1. адрес есть? → ip -br a
  2. шлюз доступен? → ping шлюз
  3. интернет (L3)? → ping 8.8.8.8
  4. DNS? → getent hosts имя (см. dns-resolv)
  5. порт назначения? → nc -zv host port

Каждый шаг отвечает на «докуда дошло» — и сужает поиск вдвое.

Рецепты

2

ping

bash
ping -c4 192.168.1.1             # 4 пакета и стоп (иначе бесконечно)
ping -c4 8.8.8.8                 # связность с интернетом по IP
ping -c4 -W1 host                # таймаут ответа 1с (не ждать долго)
ping -c100 -i0.2 host            # чаще (0.2с) — ловить редкие потери
ping -s1472 -Mdo -c3 host        # проверить MTU/фрагментацию (1472+28=1500)
ping6 -c4 2001:4860:4860::8888   # IPv6

В выводе смотри: потери (packet loss) и разброс (rtt min/avg/max). 0% и стабильный rtt — канал здоров.

traceroute / mtr

bash
traceroute 8.8.8.8               # путь пакетов по хопам (где теряется)
traceroute -n 8.8.8.8            # без DNS (быстрее)
traceroute -T -p 443 host        # TCP-трейс на порт 443 (когда ICMP режут)
mtr 8.8.8.8                      # traceroute + ping в реальном времени (лучший)
mtr -rwc 10 example.com          # отчёт за 10 циклов (для тикетов/переписки)
mtr -T -P 443 host               # mtr по TCP-порту
ip route get 8.8.8.8             # каким маршрутом/интерфейсом реально пойдёт

mtr — главный инструмент: показывает потери на каждом хопе, видно, у кого именно (у тебя, у провайдера, у промежуточного узла) теряются пакеты.

Неполадки

6

ping IP идёт, ping имени — нет

Сеть работает, DNS не работает. См. dns-resolv: resolvectl status, getent hosts имя, dig @8.8.8.8 имя.

Не пингуется даже шлюз

Локальная проблема: нет адреса/маршрута (ip -br a, ip r), линк down, не та VLAN/подсеть, дубликат IP. Проверь ip и netplan.

Пинг идёт, но сервис недоступен

ICMP проходит, а нужный порт — нет. Проверь порт: nc -zv host port. Дальше — служба слушает (ss) и firewall.

Потери/высокий пинг в середине пути

mtr -rwc 20 покажет, на каком хопе растут потери. Потери только на промежуточном хопе, но не на конечном — обычно норма (роутеры деприоритизируют ICMP к себе). Потери, тянущиеся до конца, — реальная проблема канала.

ICMP заблокирован — ping не показателен

Многие хосты не отвечают на ping намеренно. Проверяй доступность порта через nc и трейсь через traceroute -T -p 443, а не только ICMP.

«Работает через раз»

Перемежающиеся потери: ping -c100 -i0.2, mtr подольше. Часто — перегрузка канала, дубликат IP в сети или флапающий линк.

Термины

2
ICMP
Протокол управляющих сообщений IP; ping использует эхо-запросы и эхо-ответы. Ещё встречается в: ping, Файрвол, Capabilities: права root по частям, nmap: какие порты видны снаружи и ещё 1
сквозная проверка end-to-end check
Проверка требуемой операции от клиента до ожидаемого ответа сервиса.

См. также

  • ping — ключи, вывод и ошибки ping подробно.
  • ip — Управление интерфейсами, адресами и маршрутами (iproute2) — замена ifconfig/route.
  • ss — Кто слушает порты и какие соединения открыты — современная замена netstat.
  • dns-resolv — Как имя превращается в IP — resolv.conf, systemd-resolved, /etc/hosts, dig.
  • nc — Проверка доступности портов, простой обмен данными по TCP/UDP.
Загрузка…