tshark 命令行版本的wireshark
tcpdump用来分析数据包不太直观, 远程抓包专门打开一个wireshark又不太方便, tshark作为命令行版本的wireshark简直是一个完美解决方案
安装
Debian: pkg install tshark
Fedora: dnf install wireshark-cli
FreeBSD: pkg install wireshark
开始捕获数据包
tshark -i <interface>
<interface>
: 网络接口名称,例如eth0
、wlan0
等。
保存捕获的数据包到文件中
tshark -i <interface> -w <file.pcap>
<file.pcap>
: 捕获数据保存的文件名。
从文件中读取数据包并分析
tshark -r <file.pcap> -Y "http.request"
<file.pcap>
: 捕获数据的文件名。"http.request"
: 显示 HTTP 请求数据包。
指定捕获的包的数量
tshark -i <interface> -c <number>
<number>
: 捕获的数据包数量。
只显示数据包的摘要
tshark -i <interface> -q -z io,stat,0
-q
: 仅显示网络统计信息。-z io,stat,0
: 显示统计信息。
显示数据包的详细信息
tshark -i <interface> -V
-V
: 显示每个数据包的详细信息。
查看特定协议的数据包
tshark -i <interface> -Y "http"
"http"
: 只显示 HTTP 数据包。
过滤并显示特定 IP 地址的数据包
tshark -i <interface> -f "host 192.168.1.1"
"host 192.168.1.1"
: 过滤指定 IP 地址的数据包。
捕获并实时显示 HTTP 数据包
tshark -i <interface> -f "tcp port 80"
"tcp port 80"
: 只捕获 TCP 80 端口的数据包(HTTP)。
查看 HTTP/HTTPS 请求
tshark -i <interface> -Y '(http.request or tls.handshake.type == 1)' -T fields -e frame.time -e ip.src -e tcp.srcport -e tcp.dstport -e http.host -e tls.handshake.extensions_server_name
-Y '(http.request or tls.handshake.type == 1)'
: 过滤 HTTP 请求和 TLS 握手。-T fields
: 输出字段指定。-e frame.time -e ip.src -e tcp.srcport -e tcp.dstport -e http.host -e tls.handshake.extensions_server_name
: 指定输出的字段。