Ответ
Анализ сетевых соединений — рутина для DevOps при диагностике проблем с доступностью, производительностью или безопасностью. Мы используем комбинацию статических снимков и динамического трассирования.
1. Анализ активных и слушающих соединений:
-
Современная утилита
ss(заменаnetstat):# Показать все слушающие сокеты с именами процессов ss -tulnp # Ключи: -t (TCP), -u (UDP), -l (listening), -n (numeric), -p (process) # Показать все установленные TCP-соединения ss -tn # Показать соединения в определенном состоянии (например, TIME-WAIT) ss -tn state time-wait - Использование
lsofдля сетевых соединений:# Все сетевые соединения lsof -i # Соединения конкретного процесса (например, Docker daemon) lsof -i -a -p $(pidof dockerd)
2. Динамический анализ трафика (трассировка):
tcpdumpдля захвата пакетов:# Захват HTTP-трафика на порту 80 интерфейса eth0 tcpdump -i eth0 -nn 'tcp port 80' -w capture.pcap # Захват трафика до/от конкретного IP tcpdump -i any host 10.0.1.5ngrepдля поиска по содержимому:# Поиск строки "POST /api" в сетевом трафике ngrep -d any 'POST /api' port 80
3. Мониторинг и метрики (DevOps-подход):
- Prometheus + Node Exporter: Сбор метрик
node_netstat_Tcp_CurrEstab(активные соединения),node_network_receive_bytes_total. - Специализированные экспортеры: Например,
haproxy_exporterилиnginx-prometheus-exporterдля мониторинга соединений на уровне балансировщика. - Cloud-мониторинг:
- AWS: VPC Flow Logs (логируются все IP-трафик), анализ в CloudWatch Logs Insights или Athena.
- GCP: Firewall Rules Logging и VPC Flow Logs.
4. Диагностика конкретных проблем:
- Куда уходит исходящий трафик?
ss -tn dst :443 # Все исходящие соединения на 443 порт - Есть ли исчерпание лимита портов?
ss -tan | grep -c TIME-WAIT # Подсчет соединений в TIME-WAIT # Проверка системных лимитов sysctl net.ipv4.ip_local_port_range sysctl net.ipv4.tcp_tw_reuse # Можно ли переиспользовать TIME-WAIT сокеты? - Какой процесс установил соединение с подозрительным IP?
lsof -i @192.168.1.100
5. Автоматизация и IaC: Конфигурация сетевых правил (фаерволы, security groups) управляется через Terraform/CloudFormation, что делает сетевую топологию предсказуемой и версионируемой. Анализ соединений часто нужен, чтобы проверить, что реальный трафик соответствует декларируемой конфигурации.