tshark是wireshark的命令行工具,同tcpdump一样,可通过libpcap抓取/过滤/保存网卡报文,处理速度低于tcpdump,但支持的协议更加丰富。
重点参数:
-f : 抓包过滤(capture filter) https://tshark.dev/capture/capture_filters/
-Y/-R : 显示过滤(display filter) https://tshark.dev/analyze/packet_hunting/packet_hunting/
安装
1 | |
使用
- 实时打印dns协议
1
tshark -i eth0 -f "udp and port 53" -Y 'dns.qry.name==www.baidu.com' -l -T fields -e dns.qry.name -e dns.count.queries -e dns.id -e ip.src参数含义:
-i eth0 :捕获eth0网卡
-f ‘udp and port 53’ :抓包过滤:指定协议和端口
-Y dns.qry.name==”www.baidu.com” :显示过滤:指定域名
-l 实时输出
-T fields -e dns.qry.name -e dns.count.queries -e dns.id -e ip.src :按列显示,请求域名/请求个数/transactionId/源IP - 实时打印当前http请求的url
1
tshark -s 512 -i eth0 -n -f 'tcp dst port 80' -R 'http.host and http.request.uri' -T fields -e http.host -e http.request.uri -l | tr -d '\t'参数含义:
-s 512 :只抓取前512个字节数据
-i eth0 :捕获eth0网卡
-n :禁止网络对象名称解析
-f ‘tcp dst port 80’ :只捕捉协议为tcp,目的端口为80的数据包
-R ‘http.host and http.request.uri’ :过滤出http.host和http.request.uri
-T fields -e http.host -e http.request.uri :打印http.host和http.request.uri
-l :实时输出 - 实时打印当前mysql查询语句
1
tshark -s 512 -i eth0 -n -f 'tcp dst port 3306' -R 'mysql.query' -T fields -e mysql.query参数含义:
-s 512 :只抓取前512个字节数据
-i eth0 :捕获eth0网卡
-n :禁止网络对象名称解析
-f ‘tcp dst port 3306’ :抓包过滤,只捕捉协议为tcp,目的端口为3306的数据包
-R ‘mysql.query’ :显示过滤,mysql.query
-T fields -e mysql.query :打印mysql查询语句