Вики / Сеть
Диагностика сети (ping, traceroute, mtr)
Лесенка проверки связности — от шлюза до DNS и порта назначения.
«Не работает сеть» — расплывчато. Диагностируй по лесенке уровней, отсекая половину проблем на каждом шаге:
- адрес есть? → ip
-br a - шлюз доступен? →
ping шлюз - интернет (L3)? →
ping 8.8.8.8 - DNS? →
getent hosts имя(см. dns-resolv) - порт назначения? → nc
-zv host port
Каждый шаг отвечает на «докуда дошло» — и сужает поиск вдвое.
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 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 — главный инструмент: показывает потери на каждом хопе, видно, у кого
именно (у тебя, у провайдера, у промежуточного узла) теряются пакеты.
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 PORT, а не только ICMP.
«Работает через раз»
Перемежающиеся потери: ping -c100 -i0.2, mtr подольше. Часто — перегрузка
канала, дубликат IP в сети или флапающий линк.
ping -c4 шлюз ; ping -c4 8.8.8.8 # L2/L3 связность
mtr -rwc 10 host # путь + потери (отчёт)
traceroute -T -p 443 host # трейс по TCP-порту (ICMP режут)
getent hosts имя # DNS
nc -zv host port # порт назначения
ip route get IP # каким маршрутом пойдёт
# лесенка: адрес → шлюз → интернет → DNS → порт
См. также
- ip (адреса и маршруты) — Сеть
- ss (сокеты и порты) — Сеть
- DNS и разрешение имён — Сеть
- nc (netcat) — проверка портов — Сеть