Ответ
В DevOps-практике проверка сетевой связности — это базовая операция диагностики. Я использую комбинацию инструментов в зависимости от задачи:
1. Базовая доступность (ICMP):
ping -c 4 <target_host_or_ip>
Флаг -c задаёт количество пакетов. Если пинг не проходит, проверяю правила сетевого экрана (iptables, nftables) и настройки security groups в облаке.
2. Проверка конкретного TCP/UDP порта:
# Использую netcat (nc) для быстрой проверки
nc -zv <target_ip> <port>
# Или, если нужно проанализировать весь маршрут и задержки
mtr --tcp --port <port> <target_host>
3. Анализ сетевого пути:
traceroute -T -p <port> <target_host> # Для TCP
# Или
tracepath <target_host>
Это помогает выявить, на каком участке (внутри VPC, у провайдера) возникает проблема.
4. Проверка существующих соединений и открытых портов на локальной машине:
ss -tulnp | grep <port_or_service_name>
# ss — современная замена netstat, показывает детали процесса
5. Для веб-сервисов добавляю проверку уровня приложения:
curl -s -o /dev/null -w "%{http_code}" --connect-timeout 5 http(s)://<target_host>:<port>/health
Важно: В инфраструктуре как код (IaC) я автоматизирую эти проверки с помощью скриптов (Bash/Python) или инструментов вроде nmap в CI/CD пайплайнах для валидации развёртывания.