네트워크 트래픽 분석에 필수적인 tcpdump 명령어는 다양한 옵션과 필터를 통해 원하는 패킷만 빠르고 정확하게 캡처할 수 있습니다. 이 글에서는 자주 사용하는 옵션과, 실무에서 바로 적용할 수 있는 다양한 예제를 소개합니다.
◎ 자주 사용하는 tcpdump 옵션
아래는 tcpdump에서 가장 많이 쓰는 옵션과 설명입니다. 이 중 -n 옵션도 포함되어 있습니다.
| 옵션 | 설명 |
| -i | 인터페이스 특정 네트워크 인터페이스 지정 |
| -n | IP 주소를 호스트 이름으로 변환하지 않음 |
| -nn | IP 주소와 포트 모두 숫자로만 출력 |
| -w 파일명 | 패킷을 파일로 저장 (pcap 형식) |
| -r 파일명 | 저장된 패킷 파일 읽기 |
| -c 개수 | 지정한 개수만큼 패킷 캡처 후 종료 |
| -v, -vv, -vvv | 상세한 정보 출력 (v가 많을수록 더 자세함) |
| -t | 타임스탬프 생략 |
| -q | 간략한 정보만 출력 |
| -s | 캡처할 패킷 크기 지정 (0: 전체) |
◎ tcpdump 필터(조건) 문법
tcpdump는 다양한 필터를 조합하여 원하는 패킷만 캡처할 수 있습니다.
- src/dst: 출발지/도착지 IP 지정
- port: 특정 포트 지정
- host: 특정 호스트(IP) 지정
- net: 네트워크 대역 지정
- tcp/udp: 프로토콜 지정
- and, or, not: 조건 조합
◎ 실전 tcpdump 명령어 예제 (-nn -i 사용)
아래 예제는 모두 -nn -i 옵션을 사용하여, IP와 포트를 숫자로만 출력하고, 특정 인터페이스에서 패킷을 캡처하는 방법을 보여줍니다.
1. 기본 패킷 캡처
| # tcpdump -nn -i eth0 |
eth0 인터페이스에서 패킷을 캡처하며, IP와 포트를 숫자로만 출력합니다.
2. 패킷을 파일로 저장
| # tcpdump -nn -i eth0 -w capture.pcap |
eth0 인터페이스의 패킷을 capture.pcap 파일로 저장하며, IP와 포트를 숫자로만 출력합니다.
3. 저장된 패킷 파일 읽기
| # tcpdump -nn -r capture.pcap |
저장된 pcap 파일의 패킷을 읽으며, IP와 포트를 숫자로만 출력합니다.
4. 특정 개수만큼 패킷 캡처
| # tcpdump -nn -i eth0 -c 10 |
eth0 인터페이스에서 10개의 패킷만 캡처 후 종료하며, IP와 포트를 숫자로만 출력합니다.
5. 특정 포트(예: 80) 패킷 캡처
| # tcpdump -nn -i eth0 port 80 |
eth0에서 80번 포트로 오가는 패킷만 캡처하며, IP와 포트를 숫자로만 출력합니다.
6. 출발지/도착지 IP로 패킷 캡처
| # tcpdump -nn -i eth0 src 192.168.0.1 |
출발지 IP가 192.168.0.1인 패킷만 캡처하며, IP와 포트를 숫자로만 출력합니다.
| # tcpdump -nn -i eth0 dst 192.168.0.1 |
도착지 IP가 192.168.0.1인 패킷만 캡처하며, IP와 포트를 숫자로만 출력합니다.
7. 특정 호스트(양방향) 패킷 캡처
| # tcpdump -nn -i eth0 host 192.168.0.1 |
192.168.0.1로 들어오거나 나가는 모든 패킷을 캡처하며, IP와 포트를 숫자로만 출력합니다.
8. 프로토콜(TCP/UDP)로 필터링
| # tcpdump -nn -i eth0 tcp |
eth0에서 TCP 패킷만 캡처하며, IP와 포트를 숫자로만 출력합니다.
| # tcpdump -nn -i eth0 udp |
eth0에서 UDP 패킷만 캡처하며, IP와 포트를 숫자로만 출력합니다.
9. 캡처할 패킷 크기 지정
| # tcpdump -nn -i eth0 -s 100 |
-s 옵션의 숫자는 바이트 단위로 해석됩니다. 즉, 패킷에서 최대 100바이트까지 캡처합니다.
이 옵션을 생략하면 시스템 기본값(보통 65535 또는 262144 바이트 등)이 적용되며,
-s 0으로 지정하면 패킷 전체(즉, 최대 길이)를 캡처합니다.
10. 여러 조건 조합
| # tcpdump -nn -i eth0 'src 192.168.0.1 and (dst port 3389 or 22)' |
출발지 IP가 192.168.0.1이고, 도착지 포트가 3389 또는 22인 패킷만 캡처하며, IP와 포트를 숫자로만 출력합니다.
11. 상세 정보 출력
| # tcpdump -nn -i eth0 -vvv port 80 |
eth0에서 80번 포트로 오가는 패킷을 매우 상세하게 출력하며, IP와 포트를 숫자로만 출력합니다.
◎ 요약 및 활용 팁
-n: IP만 숫자로 출력
-nn: IP와 포트 모두 숫자로 출력
-i: 인터페이스 지정
실무 활용: 네트워크 트러블슈팅, 보안 감사, 통신 테스트 등 다양한 상황에서 유용하게 사용할 수 있습니다.
◎ 마무리
이 글이 tcpdump 명령어의 옵션과 활용법을 더 쉽게 이해하는 데 도움이 되길 바랍니다!
관련하여 find, ls, grep 등 명령줄 도구 활용에도 관심이 많으시다면, 시스템 관리와 네트워크 분석에 더욱 능숙해질 수 있습니다.
'IT > Linux' 카테고리의 다른 글
| [Linux] 침해사고분석 관점에서의 MAC Time과 find 명령어 활용 시 주의사항 (0) | 2025.06.12 |
|---|---|
| [Linux] 리눅스 find 명령어 기본과 실전 활용 예제 (1) | 2025.06.12 |
| [Linux] 리눅스 cat과 zcat 명령어 기본과 실전 활용 예제 (0) | 2025.06.11 |
| [Linux] 리눅스 tar 명령어 기본과 실전 활용 예제 (0) | 2025.06.11 |
| [Linux] Ubuntu에서 SSH 서버가 기본 설치되지 않는 이유와 OpenSSH 설치, 백업, 보안 설정 방법 (1) | 2025.06.07 |