#!/bin/bash
# 실습 #16 ⑤ — conntrack: 연결 추적 상태 디버깅
set -e

sudo apt install -y conntrack

echo "=== 1) 전체 연결 추적 (최근 20개) ==="
sudo conntrack -L 2>/dev/null | head -20

echo
echo "=== 2) SSH(22) 만 ==="
sudo conntrack -L -p tcp --dport 22 2>/dev/null | head -10

echo
echo "=== 3) 통계 — CPU 코어별 카운트 ==="
sudo conntrack -S 2>/dev/null

echo
echo "=== 4) 테이블 크기 + 사용량 ==="
echo "→ 최대: $(sudo sysctl -n net.netfilter.nf_conntrack_max)"
echo "→ 현재: $(sudo cat /proc/sys/net/netfilter/nf_conntrack_count)"

echo
echo "=== 5) 이벤트 스트림 모니터 (5초) ==="
echo "→ 다른 터미널에서 접속 시도하면 NEW/UPDATE/DESTROY 이벤트 보임"
timeout 5 sudo conntrack -E 2>&1 | head -20 || true

echo
echo "=== 운영 조정 ==="
echo "→ 테이블 풀이면: sudo sysctl -w net.netfilter.nf_conntrack_max=2097152"
echo "→ TCP timeout 줄이기 (대량 단명 연결 환경):"
echo "   sudo sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=30"
