메뉴 건너뛰기

SayClub.org

네트워크(Network)

tshark 사용법 완전 정리 (설치부터 URL/IP 필터링까지)

 

tshark는 Wireshark의 CLI(커맨드라인) 버전으로, 서버나 원격 환경에서 GUI 없이도 패킷 캡처, 필터링, 추출, 통계 분석을 할 수 있는 강력한 도구입니다. 이번 글에서는 설치부터 기본 개념, 주요 옵션, 실전 예제, 그리고 URL/IP 기반 모니터링까지 한 번에 정리합니다.

 


 

[ 1. 설치 방법 ]

Ubuntu / Debian

sudo apt update
sudo apt install -y tshark
sudo dpkg-reconfigure wireshark-common
sudo usermod -aG wireshark $USER

 

Rocky / Alma / RHEL

sudo dnf install -y wireshark-cli
sudo usermod -aG wireshark $USER

 

macOS (Homebrew)

brew install wireshark

 

Windows

winget install WiresharkFoundation.Wireshark

 

또는 Chocolatey

choco install wireshark -y

※ Wireshark 설치 시 tshark도 함께 포함됩니다.

 


 

[ 2. 기본 개념 ]

  • 캡처 필터(-f) : 패킷을 캡처하는 순간 필터링 (BPF 문법)

  • 디스플레이 필터(-Y) : 캡처된 패킷을 출력할 때 필터링 (Wireshark 문법)

  • 입출력(-i/-w/-r) : 인터페이스에서 캡처(-i), 파일로 저장(-w), 파일에서 읽기(-r)

 


 

[ 3. 주요 옵션 치트시트 ]

-D : 인터페이스 목록 보기
-i <iface> : 캡처 인터페이스 선택
-c <N> : N개 패킷만 캡처
-a duration:<초> : 지정 시간 후 종료
-b files:<N> : 링버퍼 파일 개수 지정
-b duration:<초> : 회전 주기
-f "<BPF>" : 캡처 필터 (예: "tcp port 80")
-Y "<display filter>" : 디스플레이 필터 (예: "http.request")
-w <file> : pcap 파일 저장
-r <file> : 파일에서 읽기
-T fields/json : 출력 포맷 지정
-e <field> : 출력할 필드 지정
-q -z <stat> : 통계 출력 (엔드포인트, 대화, I/O 등)

 


 

[ 4. 빠른 시작 ]

tshark -D
tshark -i eth0 -c 100
tshark -i any -a duration:30 -w out.pcapng

 


 

[ 5. 상황별 실전 예제 ]

(1) HTTP 요청 추출
tshark -r traffic.pcapng -Y "http.request"
-T fields -e ip.src -e http.host -e http.request.method -e http.request.uri

 

(2) TLS SNI 확인
tshark -r tls.pcapng -Y "tls.handshake.extensions_server_name"
-T fields -e ip.dst -e tls.handshake.extensions_server_name

 

(3) DNS 요청
tshark -r dns.pcapng -Y "dns.flags.response==0"
-T fields -e ip.src -e dns.qry.name

 

(4) TCP 대화/재전송 통계
tshark -r app.pcapng -q -z conv,tcp

 

(5) 링버퍼 캡처
tshark -i eth0 -b duration:60 -b files:10 -w ring.pcapng

 


 

[ 6. URL 및 IP 기준 트래픽 모니터링 ]

(1) 캡처 필터 (BPF, IP/도메인 기반)

 

도메인 기반 캡처 (자동으로 IP로 변환됨)

tshark -i eth0 -f "host www.example.com"

 

IP 기반 캡처

tshark -i eth0 -f "host 192.168.1.100"

 

특정 포트와 함께 (예: HTTPS)

tshark -i eth0 -f "host 192.168.1.100 and tcp port 443"

 

(2) HTTP Host 헤더 기반
tshark -i any -Y "http.host contains "example.com"" -l
-T fields -e ip.src -e http.request.method -e http.host -e http.request.uri

 

(3) HTTPS (TLS SNI) 기반
tshark -i any -Y "tls.handshake.extensions_server_name contains "example.com"" -l
-T fields -e ip.src -e ip.dst -e tls.handshake.extensions_server_name

 

(4) DNS 요청 기반
tshark -i any -Y "dns.qry.name contains "example.com"" -l
-T fields -e ip.src -e dns.qry.name

 

(5) 통합 모니터링 예제 (도메인/IP 혼합)
tshark -i any -l
-Y "http.host contains "google.com" || tls.handshake.extensions_server_name contains "google.com" || dns.qry.name contains "google.com" || ip.addr == 142.250.72.14"
-T fields -e frame.time -e ip.src -e ip.dst -e http.host -e tls.handshake.extensions_server_name -e dns.qry.name

※ 위 예제는 google.com 도메인과 142.250.72.14 IP 트래픽을 동시에 추적합니다.

 


 

[ 7. 통계 활용 예시 ]

tshark -r file.pcapng -q -z endpoints,ip
tshark -r file.pcapng -q -z conv,tcp
tshark -r file.pcapng -q -z io,stat,1

 


 

[ 8. 권한 및 보안 주의사항 ]

  • 루트 권한 없이 캡처하려면 wireshark 그룹에 사용자 추가 또는 dumpcap capabilities 부여 필요

  • 캡처 파일에는 민감한 데이터가 포함될 수 있으므로 접근 권한 관리 필수

  • HTTPS 복호화 시 SSLKEYLOGFILE 사용 가능하지만 반드시 법적·정책적 범위 내에서 사용

 


 

[ 9. 정리 ]

  • 캡처는 BPF 필터(-f "host example.com", -f "host 192.168.1.100")로 좁게

  • 분석은 디스플레이 필터(http.host, tls.sni, dns.qry.name, ip.addr)로 정밀하게

  • 장시간은 링버퍼(-b)로 안전하게

  • 출력은 -T fields/json으로 가공해 로그/통계 시스템과 연동



 
번호 제목 글쓴이 날짜 조회 수
132 Adguard Home 운영중 네이버 쇼핑 안 들어가지는 문제 해결방법 file 미르다테 2025.10.17 1
» tshark(Wireshark의 cli버전) 사용법 완전 정리 미르다테 2025.10.02 29
130 CISCO WS-2960L-16TS-LL 펌웨어 업데이트 후 웹화면 글자깨짐 미르다테 2025.04.23 63
129 Fortigate Maintainer(recovery)를 이용한 계정 패스워드 찾기 미르다테 2025.04.01 120
128 Fortigate session-ttl 설정 방법 미르다테 2025.04.01 129
127 Fortigate session timeout 무한대로 설정하기 미르다테 2025.04.01 103
126 Fortigate 2GB RAM 이하의 FortiGate에 대한 변경 사항 미르다테 2025.03.26 106
125 Fortigate SSL VPN Split tunnel의 라우팅 동적으로 설정하는 방법 미르다테 2025.03.26 116
124 Fortigate GUI에서 Firmware upgrade 경고 메세지 없애는 방법 미르다테 2025.03.26 106
123 Fortigate 정보 사이트 yurisk.info 미르다테 2025.03.20 106
122 Fortigate VM Trial 버전 영구적으로 사용 가능 미르다테 2025.03.20 85
121 FortiGate 흐름(Flow) 기반 검사 vs 프록시(Proxy) 기반 검사 차이점 file 미르다테 2025.03.20 144
120 FortiGate – 일부 기능은 2GB RAM 모델에서 더 이상 사용할 수 없습니다. 어떤 영향이 있습니까? 미르다테 2025.03.20 144
119 Fortigate 모델별 CPU 및 메모리 사양 미르다테 2025.03.17 108
118 Fortigate Fortinet Service(license) Activation 정책 미르다테 2025.03.17 115
117 Fortigate v7.2.5 로 업그레이드 한 후 Web GUI(https) 접속이 안되는 경우 미르다테 2025.03.17 109
116 Fortigate SSLVPN 정상 로그인은 되었으나, 내부 서버로 접근이 안되는 경우 미르다테 2025.03.17 101
115 Fortigate의 외부 공인 IP 확인하는 방법 미르다테 2025.03.17 88
114 FortiGate Cloud 라이선스가 만료된 후 로그 보존 기간 미르다테 2025.03.17 91
113 Fortigate Wildcard FQDN의 IP를 획득하지 못하는 경우 미르다테 2025.03.17 78
위로