Linux命令行抓包及包解析工具tshark(wireshark)使用实例解析

如遇技术问题,请联系博主帮您解决QQ 452336092(添加时注明”付费技术支持”)。

文章目录
[隐藏]

Linux下,当我们需要抓取网络数据包分析时,通常是使用tcpdump抓取网络raw数据包存到一个文件,然后下载到本地使用wireshark界面网络分析工具进行网络包分析。
最近才发现,原来wireshark也提供有Linux命令行工具-tshark。tshark不仅有抓包的功能,还带了解析各种协议的能力。下面我们以两个实例来介绍tshark工具。

1、安装方法

  1. CentOS: yum install -y wireshark
  2. Ubuntu: apt-get install -y tshark

2、实时打印当前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 :输出到标准输出

3、实时打印当前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查询语句

tshark使用-f来指定捕捉包过滤规则,规则与tcpdump一样,可以通过命令man pcap-filter来查得。
tshark使用-R来过滤已捕捉到的包,与界面版wireshark的左上角Filter一致。

转载请保留原文链接:Linux运维日志 » Linux命令行抓包及包解析工具tshark(wireshark)使用实例解析

打赏

如果此文对你有所帮助,请随意打赏鼓励作者^_^

评论 4

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. 学徒MARK,好东西。回复
  2. hongtoushizisudo 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' 我用这个查看我的mysql日志,不知道为什么获取不到呢?我的系统是ubuntu回复
    • 朱 茂海这个是http的,怎么跟mysql扯上关系了?回复
  3. dodng楼主分享的好东西,很实用回复