Ответ
Диагностика сети — ежедневная задача. Вот основные команды, которые я использую, от простых проверок до глубокого анализа.
1. Базовая диагностика и проверка доступности:
ping/ping6: Проверка базовой связности и задержки (RTT). Часто с ключом-cдля ограничения числа запросов:ping -c 4 8.8.8.8.traceroute/tracepath: Определение сетевого пути и выявление "прыжков" с большой задержкой или потерей пакетов.
2. Анализ соединений и портов:
ss(предпочтительнее устаревшегоnetstat): Показывает открытые порты, установленные соединения, их состояние.# Показать все слушающие TCP-порты ss -tln # Показать установленные соединения на конкретный порт (например, 5432 - PostgreSQL) ss -t src :5432
3. Работа с сетевыми интерфейсами и маршрутизацией:
ip(заменаifconfigиroute): Универсальная утилита.# Показать адреса интерфейсов ip addr show # Показать таблицу маршрутизации ip route show # Добавить статический маршрут ip route add 10.1.0.0/16 via 192.168.1.1 dev eth0
4. DNS-диагностика:
dig: Мощный инструмент для запросов к DNS. Использую для проверки A, MX, TXT записей и решения проблем с разрешением имен.dig A example.com +short dig @8.8.8.8 example.com # Запрос к конкретному DNS-серверу
5. Анализ трафика (сниффинг и отладка):
tcpdump: Захват и анализ сетевых пакетов. Незаменим для отладки протоколов.# Захватить HTTP-трафик на порту 80 sudo tcpdump -i eth0 -A tcp port 80 # Захватить пакеты до/от конкретного хоста sudo tcpdump host 10.0.1.5nc(netcat): "Швейцарский нож" TCP/IP. Для быстрой проверки доступности порта:nc -zv example.com 443.
6. Фаервол и безопасность:
iptables/nftables: Просмотр и управление правилами фаервола.sudo iptables -L -n -vдля просмотра текущих правил и счетчиков пакетов.
7. HTTP-запросы и скачивание:
curl: Для тестирования API, проверки заголовков, загрузки файлов.curl -I http://example.comпокажет только заголовки ответа (HTTP-код).wget: Для рекурсивного скачивания или зеркалирования сайтов.