본문 바로가기
Old Posts/Linux

[Linux] tcpdump 명령어 사용방법

by A6K 2022. 6. 17.

tcpdump는 리눅스나 유닉스 계열 운영체제에서 네트워크 인터페이스를 통해 송수신되는 패킷의 정보를 출력해주는 프로그램이다. 특정 서버 장비에서 비정상적인 네트워크 입출력이 감지된 경우 문제의 원인을 파악하기 위해 tcpdump를 이용하면 된다.

tcpdump는 libpcap 라이브러리를 이용해서 패킷을 캡쳐하고 확인된 정보를 파일로 저장한다. 따라서 확인된 정보를 wireshark 같은 분석 도구를 이용해 확인 할 수도 있다.

tcpdump 설치

tcpdump는 yum을 통해 설치할 수 있다.

$ sudo yum install tcpdump

tcpdump 옵션

옵션 설명
-c <count> 지정한 수 만큼 패킷을 수신
-i <interface> 지정한 인터페이스를 통하는 패킷들의 내역을 출력
-w <file> 캡쳐한 패킷의 정보를 지정한 파일에 바이너리 포맷으로 출력
-r <file> -w 옵션으로 만들어진 파일에 기록되어 있는 정보를 확인
-v, -vv, -vvv 패킷 내용을 상세 보기, v가 많아질 수록 더 자세하게 출력
-nn 패킷 내용 출력시 호스트/서비스 명으로 해석하지 않고 IP주소와 포트 번호로 출력
-N 호스트 이름 출력시, 도메인을 출력하지 않음
-ttt 덤프의 각 라인에 타임 스탬프를 함께 출력

tcpdump 범위값

범위 설명
src <IP> 특정 IP를 Source로 갖는 패킷만 캡쳐
dst <IP> 특정 IP를 Destination으로 갖는 패킷만 캡쳐
port <PORT> 특정 포트를 사용하는 패킷만 캡쳐
host <HOST>  특정 호스트로 접속 요청한 패킷
network <IP> / mask <IP>  네트워크와 마스크 정보 설정
tcp / udp  tcp 혹은 udp 패킷을 지정해서 캡쳐
   

이 범위 값들은 and, or, not 을 통해서 조합해 사용할 수 있다.

tcpdump 사용예제

tcpdump 명령의 자주사용하는 사용 예제들은 다음과 같다.

tcpdump -i eth0                # eth0 인터페이스로 전달되는 패킷 확인
tcpdump -w tcpdump.log         # 패킷 정보를 tcpdump.log 파일로 저장
tcpdump -r tcpdump.log         # tcpdump.log 파일에 저장되어 있는 정보 확인
tcpdump -i eth0 -c 10          # eth0 인터페이스의 패킷 10개 확인
tcpdump -i eth0 tcp port 80    # eth0 인터페이스의 80번 포트를 사용하는 tcp 패킷 확인
tcpdump -i eth0 src 172.0.0.1  # 172.0.0.1을 source ip로 갖는 패킷
tcpdump -i eth0 dst 172.0.0.1  # 172.0.0.1을 destination ip로 갖는 패킷

# 여러 조건을 조합해서 사용가능
tcpdump -i eth0 src 192.168.0.1 and tcp port 80 # eth0의 192.168.0.1 소스, 80번 포트의 tcp 패킷

관련글

 

리눅스 명령어 사용법들

리눅스 명령어 사용법 ifconfig 네트워크 인터페이스 설정관련 ls 디렉토리 엔트리 정보 출력

hbase.tistory.com

 

댓글