우분투 실전 명령어 | tcpdump 패킷 캡처 기본 패턴
언제 쓰는가
서비스는 살아 있는데 특정 구간에서만 통신이 끊길 때가 있습니다. 이럴 때 애플리케이션 로그만 보면 원인이 애매해서, 실제 패킷이 오가는지 tcpdump로 먼저 확인하면 문제 지점을 빠르게 좁힐 수 있습니다.
바로 쓰는 명령어
# eth0 인터페이스에서 443 트래픽만 캡처
sudo tcpdump -i eth0 tcp port 443
# DNS 질의/응답만 확인
sudo tcpdump -i any udp port 53
# 특정 호스트와의 트래픽만 저장 (사후 분석용)
sudo tcpdump -i eth0 host 10.0.2.15 -w /tmp/incident-443.pcap
# 헤더는 사람이 보기 쉽게, 페이로드는 ASCII로 일부 확인
sudo tcpdump -i eth0 -nn -A -s 0 'tcp port 80'
핵심 옵션
-i <인터페이스>: 캡처할 네트워크 인터페이스를 지정합니다.any를 쓰면 전체 인터페이스를 한 번에 볼 수 있습니다.-nn: DNS/포트 이름 해석을 끄고 원본 IP/포트 숫자를 그대로 보여줍니다.-w <파일>: 패킷을 pcap 파일로 저장해 Wireshark 등에서 재분석할 수 있습니다.-s 0: 스냅샷 길이를 제한하지 않아 패킷을 전체 길이로 수집합니다.- 필터 표현식(BPF):
host,port,tcp,udp,and,or,not조합으로 필요한 트래픽만 좁힙니다.
명령 출력 예시
$ sudo tcpdump -i eth0 -nn tcp port 443
23:33:12.114842 IP 10.0.1.20.51234 > 10.0.2.15.443: Flags [S], seq 32911811, win 64240, options [mss 1460,sackOK,TS val 154338 ecr 0], length 0
23:33:12.115031 IP 10.0.2.15.443 > 10.0.1.20.51234: Flags [S.], seq 812331991, ack 32911812, win 65160, options [mss 1460,sackOK,TS val 912221 ecr 154338], length 0
23:33:12.115087 IP 10.0.1.20.51234 > 10.0.2.15.443: Flags [.], ack 1, win 502, options [TS val 154339 ecr 912221], length 0
$ sudo tcpdump -i eth0 -nn host 10.0.2.15 and tcp port 443
23:35:41.229120 IP 10.0.1.20.51240 > 10.0.2.15.443: Flags [S], length 0
23:35:44.230998 IP 10.0.1.20.51240 > 10.0.2.15.443: Flags [S], length 0
23:35:47.232851 IP 10.0.1.20.51240 > 10.0.2.15.443: Flags [S], length 0
자주 하는 실수
- 필터 없이 전체 트래픽을 오래 캡처해서 로그 폭증과 디스크 부족을 만드는 경우
-nn없이 실행해 DNS 역조회 지연 때문에 출력이 느려지는 경우- 캡처 파일에 민감정보가 포함될 수 있다는 점을 놓치고 공유 채널에 바로 업로드하는 경우
- 인터페이스를 잘못 잡아 패킷이 없는 상태를 장애로 오판하는 경우
검증 방법
# 1) 서버 인터페이스/주소 확인
ip -br addr
# 2) 캡처 파일이 정상 생성됐는지 확인
ls -lh /tmp/incident-443.pcap
# 3) SYN 재전송 여부나 RST 응답 확인
sudo tcpdump -nn -r /tmp/incident-443.pcap 'tcp[tcpflags] & (tcp-syn|tcp-rst) != 0'
패킷이 아예 안 보이면 경로/보안그룹/방화벽을 먼저 의심하고, SYN만 반복되면 중간 경로 차단 또는 대상 포트 미오픈 가능성을 우선 점검하면 됩니다.
운영 팁
장애 대응 중에는 30~60초 단위로 짧게 캡처해 증거를 남기고 바로 정리하는 방식이 안전합니다. 파일명에 서비스명과 타임스탬프를 넣어 두면 사후 회고 때 원인 구간을 훨씬 빨리 찾을 수 있습니다.
출처
- tcpdump.org 문서
- Ubuntu Server Guide
- Wireshark User’s Guide