tcpdump는 리눅스/유닉스 시스템에서 네트워크 트래픽을 실시간으로 캡처하고 분석할 수 있는 강력한 도구입니다.
시스템 엔지니어, 보안 담당자, 네트워크 관리자라면 꼭 알아두어야 할 필수 명령어입니다.
이 글에서는 tcpdump의 자주 사용하는 명령어와 실전 예시를 정리합니다.
기본 사용법
tcpdump -i <인터페이스명>
#예시
# eth0의 모든 트래픽을 캡처합니다.
tcpdump -i eth0
# eno1의 모든 트래픽을 캡처합니다.
tcpdump -i eno1
참고 명령어 : 인터페이스 목록 확인
tcpdump -D
자주 사용하는 옵션 정리
옵션 | 설명 |
-i <인터페이스> | 캡처할 네트워크 인터페이스 지정 (lo, eth0, ens33 등) |
-n | 호스트명, 포트명을 숫자로 표시 (DNS 조회 방지) |
-nn | IP와 포트 모두 숫자로 표시 |
-v, -vv, -vvv | 출력 상세도 증가 |
-c <패킷 수> | 캡처할 패킷 개수 지정 |
-w <파일명> | 캡처한 데이터를 파일로 저장 |
-r <파일명> | 저장한 캡처 파일 읽기 |
-s 0 | 패킷 전체 캡처 (기본은 일부만 캡처) |
실전 예제
1. 특정 포트 캡처
# 80번 포트를 사용하는 트래픽 (HTTP)만 캡처
tcpdump -i eth0 port 80
2. 특정 IP로 들어오는 패킷 캡처
# 192.168.0.10에서 오는 트래픽만 캡처
tcpdump -i eth0 src host 192.168.0.10
3. 특정 IP로 나가는 패킷 캡처
# 192.168.0.10으로 나가는 트래픽만 캡처
tcpdump -i eth0 dst host 192.168.0.10
4. 특정 IP와의 트래픽만 보기
# 송수신 포함
tcpdump -i eth0 host 192.168.0.10
5. TCP 패킷만 캡처
tcpdump -i eth0 tcp
6. UDP 패킷만 캡처
tcpdump -i eth0 udp
7. 특정 문자열 포함된 패킷 보기
# HTTP 요청(GET 등) 패킷 내용 출력
tcpdump -A -i eth0 | grep "GET"
8. 캡처한 내용을 파일로 저장
- wireshark 등의 툴을 활용해서 확인 가능
tcpdump -i eth0 -w capture.pcap
9. 저장한 파일에서 분석
tcpdump -r capture.pcap
10. 로컬 루프백(lo) 인터페이스 보기 (예: localhost 통신)
tcpdump -i lo
tcpdump는 단순한 도구 같지만, 조합해서 사용하면 매우 강력한 네트워크 분석 도구가 됩니다.
Wireshark와 함께 사용하면 더욱 강력한 분석이 가능합니다.
필요한 명령어를 북마크하거나 스크립트로 저장해 두면, 장애 대응이나 트래픽 분석 시 큰 도움이 됩니다.
감사합니다.