• wireshark of tshark tools v3.4.0版本 支持json


    tshark(1)

    Install tshark (Wireshark) Ver.3.4.0 on CentOS7 --It must be "ps", "text", "pdml", "psml" or "fields".

    TCP 协议中的三次握手和四次挥手是 TCP 连接建立和关闭的过程。

    三次握手

    1. 客户端向服务器发送 SYN 报文(请求建立连接)

    2. 服务器收到 SYN 报文后,回复 SYN+ACK 报文(同意建立连接)

    3. 客户端收到 SYN+ACK 报文后,再回复 ACK 报文(确认连接建立)

    四次挥手

    1. 客户端向服务器发送 FIN 报文(请求断开连接)

    2. 服务器收到 FIN 报文后,回复 ACK 报文(确认收到请求)

    3. 当服务器确认数据已经全部发送完毕后,它会向客户端发送 FIN 报文(关闭连接)

    4. 客户端收到 FIN 报文后,回复 ACK 报文(表示确认收到关闭请求),至此,整个 TCP 连接就被彻底关闭了

     

    三次握手用于建立连接,是双方协商建立 TCP 连接的过程;四次挥手用于断开连接,是双方结束 TCP 连接的过程;不过,有时候四次挥手也会变成三次(如果没有数据发送,2 个包会合并传输)。

    我们可以通过 tshark 抓包来观察 TCP 连接、断开的具体过程。

    1. [root@k8s-worker27-65 work]# tshark -i ens192 -f 'tcp port 8082 and host 192.168.0.254'
    2. Running as user "root" and group "root". This could be dangerous.
    3. Capturing on 'ens192'
    4. 1 0.000000000 192.168.0.254192.168.1.65 HTTP 551 GET /jettopro-basic/basichello20101 HTTP/1.1
    5. 2 0.084347377 192.168.1.65192.168.0.254 TCP 54 80822205 [ACK] Seq=1 Ack=498 Win=245 Len=0
    6. 3 0.595447306 192.168.1.65192.168.0.254 HTTP 182 HTTP/1.1 200 (text/html)
    7. 4 0.637529068 192.168.0.254192.168.1.65 TCP 60 22058082 [ACK] Seq=498 Ack=129 Win=4124 Len=0
    8. 5 34.345636265 192.168.0.254192.168.1.65 TCP 60 22068082 [ACK] Seq=1 Ack=1 Win=4125 Len=1
    9. 6 34.345692626 192.168.1.65192.168.0.254 TCP 66 80822206 [ACK] Seq=1 Ack=2 Win=229 Len=0 SLE=1 SRE=2
    10. 7 45.641652303 192.168.0.254192.168.1.65 TCP 60 [TCP Keep-Alive] 22058082 [ACK] Seq=497 Ack=129 Win=4124 Len=1
    11. 8 45.641713966 192.168.1.65192.168.0.254 TCP 66 [TCP Keep-Alive ACK] 80822205 [ACK] Seq=129 Ack=498 Win=245 Len=0 SLE=497 SRE=498
    12. 9 49.367150373 192.168.1.65192.168.0.254 TCP 54 80822206 [FIN, ACK] Seq=1 Ack=2 Win=229 Len=0
    13. 10 49.367535440 192.168.0.254192.168.1.65 TCP 60 22068082 [ACK] Seq=2 Ack=2 Win=4125 Len=0
    14. 11 52.723050733 192.168.0.254192.168.1.65 TCP 60 22068082 [FIN, ACK] Seq=2 Ack=2 Win=4125 Len=0
    15. 12 52.723119403 192.168.1.65192.168.0.254 TCP 54 80822206 [ACK] Seq=2 Ack=3 Win=229 Len=0
    16. 13 61.314198115 192.168.1.65192.168.0.254 TCP 54 80822205 [FIN, ACK] Seq=129 Ack=498 Win=245 Len=0
    17. 14 61.328775769 192.168.0.254192.168.1.65 TCP 60 22058082 [ACK] Seq=498 Ack=130 Win=4124 Len=0

    -- 观察屏幕输出

    1、三次握手
    从左到右的字段依次代表序号、时间戳(纳秒)、源端 IP、目标端 IP、协议、包的长度(字节)、具体信息(包括源/目标端口号或设备名、标志位等内容)

    1. # 序号 1-3 的包,即 TCP 三次握手的过程
    2. [root@k8s-worker27-65 work]# tshark -i ens192 -f 'tcp port 8082 and host 192.168.0.254'
    3. Running as user "root" and group "root". This could be dangerous.
    4. Capturing on 'ens192'
    5. 1 0.000000000 192.168.0.254192.168.1.65 HTTP 551 GET /jettopro-basic/basichello20101 HTTP/1.1
    6. 2 0.084347377 192.168.1.65192.168.0.254 TCP 54 80822205 [ACK] Seq=1 Ack=498 Win=245 Len=0
    7. 3 0.595447306 192.168.1.65192.168.0.254 HTTP 182 HTTP/1.1 200 (text/html)

    TCP 包标志位的说明

    TCP (传输控制协议)包头部有 6 个标志位(Flag),分别为 URG、ACK、PSH、RST、SYN、FIN,它们的十六进制值分别为:0x20、0x10、0x08、0x04、0x02、0x01,其中每个标志位的意义如下:

    • URG 标志:紧急指针是否有效

    • ACK 标志:确认号是否有效

    • PSH 标志:Push操作,尽可能快地将数据交给应用层

    • RST 标志:重置连接

    • SYN 标志:发起一个新的连接

    • FIN 标志:释放连接

    DBA抓包神器tshark测评|服务器|数据包|mysql|query|tcpdump_网易订阅

    1. $ tshark -r testcap_2020-12-14_05-34-54.pcap -T json
    2. tshark: Invalid -T parameter.
    3. It must be "ps", "text", "pdml", "psml" or "fields".
    4. $ tshark -v
    5. TShark 1.10.14 (Git Rev Unknown from unknown)
    6. ~~abridgement~~

    安装高版本:

    1. Install the required rpm packages
    2. sudo yum install libgcrypt-devel glib2-devel qt-devel qt5-qtbase-devel \
    3. qt5-linguist qt5-qtmultimedia-devel qt5-qtsvg-devel \
    4. libcap-devel libcap-ng-devel gnutls-devel krb5-devel \
    5. libxml2-devel lua-devel lz4-devel snappy-devel spandsp-devel \
    6. libssh2-devel bcg729-devel libmaxminddb-devel sbc-devel \
    7. libsmi-devel libnl3-devel libnghttp2-devel libssh-devel \
    8. libpcap-devel c-ares-devel redhat-rpm-config rpm-build \
    9. gtk+-devel gtk3-devel desktop-file-utils portaudio-devel \
    10. rubygem-asciidoctor docbook5-style-xsl docbook-style-xsl \
    11. systemd-devel python3 cmake3 git gcc gcc-c++ flex bison \
    12. doxygen gettext-devel libxslt cmake wget -y

    Build and install cmake3

    1. wget https://github.com/Kitware/CMake/releases/download/v3.19.1/cmake-3.19.1.tar.gz
    2. tar zxvf cmake-3.19.1.tar.gz
    3. cd cmake-3.19.1
    4. mkdir -p /opt/cmake3/3.19.1
    5. sudo mkdir /opt/cmake3/3.19.1/
    6. ./configure --prefix=/opt/cmake3/3.19.1
    7. sudo make install
    8. /opt/cmake3/3.19.1/bin/cmake --version
    9. sudo ln -s /opt/cmake3/3.19.1/bin/cmake /usr/bin/cmake3
    10. ls -lasF /usr/bin/cmake3
    1. $ cmake3 --version
    2. cmake version 3.19.1
    3. CMake suite maintained and supported by Kitware (kitware.com/cmake).

    Build and install tshark

    1. sudo su -
    2. cd /root
    3. git clone https://github.com/wireshark/wireshark.git
    4. cd wireshark
    5. git checkout tags/wireshark-3.4.0
    6. mkdir -p ~/temp/wireshark-3.4.0
    7. mkdir -p /opt/wireshark/3.4.0
    8. cd ~/temp/wireshark-3.4.0
    9. cmake3 -DCMAKE_INSTALL_PREFIX=/opt/wireshark/3.4.0 -LH /root/wireshark
    10. make
    11. make install
    # ls -lasF /opt/wireshark/3.4.0/bin/
    1. # /opt/wireshark/3.4.0/bin/tshark --version
    2. Running as user "root" and group "root". This could be dangerous.
    3. TShark (Wireshark) 3.4.0 (v3.4.0-0-g9733f173ea5e)
    4. ~~abridgement~~
    5. $ /opt/wireshark/3.4.0/bin/tshark -r testcap_2020-12-14_05-34-54.pcap -T ABC
    6. tshark: Invalid -T parameter "ABC"; it must be one of:
    7. "fields" The values of fields specified with the -e option, in a form
    8. specified by the -E option.
    9. "pdml" Packet Details Markup Language, an XML-based format for the
    10. details of a decoded packet. This information is equivalent to
    11. the packet details printed with the -V flag.
    12. "ps" PostScript for a human-readable one-line summary of each of
    13. the packets, or a multi-line view of the details of each of
    14. the packets, depending on whether the -V flag was specified.
    15. "psml" Packet Summary Markup Language, an XML-based format for the
    16. summary information of a decoded packet. This information is
    17. equivalent to the information shown in the one-line summary
    18. printed by default.
    19. "json" Packet Summary, an JSON-based format for the details
    20. summary information of a decoded packet. This information is
    21. equivalent to the packet details printed with the -V flag.
    22. "jsonraw" Packet Details, a JSON-based format for machine parsing
    23. including only raw hex decoded fields (same as -T json -x but
    24. without text decoding, only raw fields included).
    25. "ek" Packet Details, an EK JSON-based format for the bulk insert
    26. into elastic search cluster. This information is
    27. equivalent to the packet details printed with the -V flag.
    28. "text" Text of a human-readable one-line summary of each of the
    29. packets, or a multi-line view of the details of each of the
    30. packets, depending on whether the -V flag was specified.
    31. This is the default.
    32. "tabs" Similar to the text report except that each column of the
    33. human-readable one-line summary is delimited with an ASCII
    34. horizontal tab character.

    根据试验,参数的书写有讲究。模仿tcpdump,可以把抓包过滤表达式写在命令的最后,在试用的时候可以在图像化界面上将命令输出正确后在tshark下引用。。一般将抓包表达式用引号quote起来(在windows上是双引号"),一是为了视觉方便,一是为了逃避其中字符和shell语法的冲突(如“>”,“||”等)。抓包过滤表达式也可以写在-f参数的后面,注意,此时更应该使用引号或者将-f放在最后。否则,它们会认为-f(可省)后面的参数都是表达式的一部分,而导致命令格式混乱。
    主要参数分类含义权作解说如下:

    1. 抓包接口类
      • -i 设置抓包的网络接口,不设置则默认为第一个非自环接口。
      • -D 列出当前存在的网络接口。在不了解OS所控制的网络设备时,一般先用“tshark -D”查看网络接口的编号以供-i参数使用。
      • -f 设定抓包过滤表达式(capture filter expression)。抓包过滤表达式的写法类似于tcpdump,可参考tcpdump man page的有关部分。
      • -s 设置每个抓包的大小,默认为65535,多于这个大小的数据将不会被程序记入内存、写入文件。(这个参数相当于tcpdump的-s,tcpdump默认抓包的大小仅为68)
      • -p 设置网络接口以非混合模式工作,即只关心和本机有关的流量。
      • -B 设置内核缓冲区大小,仅对windows有效。
      • -y 设置抓包的数据链路层协议,不设置则默认为-L找到的第一个协议,局域网一般是EN10MB等。
      • -L 列出本机支持的数据链路层协议,供-y参数使用。
    2. 抓包停止条件
      • -c 抓取的packet数,在处理一定数量的packet后,停止抓取,程序退出。
      • -a 设置tshark抓包停止向文件书写的条件,事实上是tshark在正常启动之后停止工作并返回的条件。条件写为test:value的形式,如“-a duration:5”表示tshark启动后在5秒内抓包然后停止;“-a filesize:10”表示tshark在输出文件达到10kB后停止;“-a files:n”表示tshark在写满n个文件后停止。(windows版的tshark0.99.3用参数“-a files:n”不起作用——会有无数多个文件生成。由于-b参数有自己的files参数,所谓“和-b的其它参数结合使用”无从说起。这也许是一个bug,或tshark的man page的书写有误。)
    3. 文件输出控制
      • -b 设置ring buffer文件参数。ring buffer的文件名由-w参数决定。-b参数采用test:value的形式书写。“-b duration:5”表示每5秒写下一个ring buffer文件;“-b filesize:5”表示每达到5kB写下一个ring buffer文件;“-b files:7”表示ring buffer文件最多7个,周而复始地使用,如果这个参数不设定,tshark会将磁盘写满为止。
    4. 文件输入
      • -r 设置tshark分析的输入文件。tshark既可以抓取分析即时的网络流量,又可以分析dump在文件中的数据。-r不能是命名管道和标准输入。
    5. 处理类
      • -2: 执行两次分析
      • -R 设置读取(显示)过滤表达式(read filter expression)。不符合此表达式的流量同样不会被写入文件。注意,读取(显示)过滤表达式的语法和底层相关的抓包过滤表达式语法不相同,它的语法表达要丰富得多,类似于抓包过滤表达式,在命令行使用时最好将它们quote起来。
      -Y: -Y ,使用读取过滤器的语法,在单次分析中可以代替-R选项;
      • -n 禁止所有地址名字解析(默认为允许所有)。
      • -N 启用某一层的地址名字解析。“m”代表MAC层,“n”代表网络层,“t”代表传输层,“C”代表当前异步DNS查找。如果-n和-N参数同时存在,-n将被忽略。如果-n和-N参数都不写,则默认打开所有地址名字解析。
      • -d 将指定的数据按有关协议解包输出。如要将tcp 8888端口的流量按http解包,应该写为“-d tcp.port==8888,http”。注意选择子和解包协议之间不能留空格。
    6. 输出类
      • -w 设置raw数据的输出文件。这个参数不设置,tshark将会把解码结果输出到stdout。“-w-”表示把raw输出到stdout。如果要把解码结果输出到文件,使用重定向“>”而不要-w参数。
      • -F 设置输出raw数据的格式,默认为libpcap。“tshark -F”会列出所有支持的raw格式。
      • -V 设置将解码结果的细节输出,否则解码结果仅显示一个packet一行的summary。
      • -x 设置在解码输出结果中,每个packet后面以HEX dump的方式显示具体数据。
      -O: -O ,只显示此选项指定的协议的详细信息。
      -P: 即使将解码结果写入文件中,也打印包的概要信息;
      -e: 如果-T fields选项指定,-e用来指定输出哪些字段;
      -E: -E =如果-T fields选项指定,使用-E来设置一些属性,比如
          header=y|n
          separator=/t|/s|
          occurrence=f|l|a
          aggregator=,|/s|

      -S: -S 行分割符
      • -T 设置解码结果输出的格式,包括text,ps,psml和pdml,默认为text。
      -t: -t a|ad|d|dd|e|r|u|ud 设置解码结果的时间格式。“ad”表示带日期的绝对时间,“a”表示不带日期的绝对时间,“r”表示从第一个包到现在的相对时间,“d”表示两个相邻包之间的增量时间(delta)。
        -u: s|hms 格式化输出秒;
        -l: 在输出每个包之后flush标准输出
        -q: 结合-z选项进行使用,来进行统计分析;
        -X: : 扩展项,lua_script、read_format,具体参见 man pages;
        -z:统计选项,具体的参考文档;tshark -z help,可以列出,-z选项支持的统计方式。

      “r”表示从第一个包到现在的相对时间,“d”表示两个相邻包之间的增量时间(delta)。
      • -S 在向raw文件输出的同时,将解码结果打印到控制台。
      • -l 在处理每个包时即时刷新输出。
      • -X 扩展项。
      • -q 设置安静的stdout输出(例如做统计时)
      • -z 设置统计参数。
    7. 其它
      • -h 显示命令行帮助。
      • -v 显示tshark的版本信息。
      • -o 重载选项。
      在即时抓包模式(-r未设定)时的各参数功能一览:

    在文件读取分析模式时的各参数功能一览:

     案列解析:

    1. [root@k8s-worker27-65 work]# tshark -s 512 -i ens192 -n -f 'tcp dst port 8082' -Y 'http.host and http.request.uri' -T fields -e http.host -e http.request.uri -l | tr -d '\t'
    2. Running as user "root" and group "root". This could be dangerous.
    3. Capturing on 'ens192'
    4. 1 192.168.1.65:8082/jettopro-basic/basichello20101
    5.  注释:
    6.     -s: 只抓取前512字节;
    7.     -i: 捕获ens192 网卡;
    8.     -n: 禁止网络对象名称解析;
    9.     -f: 只捕获协议为tcp,目的端口为80; 抓包前过滤;
    10.     -R: 过滤出http.host和http.request.uri; #单次可以用-Y 代替 抓包后过滤;
    11.     -T,-e: 指的是打印这两个字段;
    12.     -I: 输出到命令行界面;
    1. //实时打印当前mysql查询语句
    2. tshark -s 512 -i ens192 -n -f 'tcp dst port 3306' -Y 'mysql.query' -T fields -e mysql.query
    3. 注释:
    4.     -Y: 过滤出mysql的查询语句;
    1. /导出smpp协议header和value的例子
    2. tshark -r test.cap -R '(smpp.command_id==0x80000004) and (smpp.command_status==0x0)' -e smpp.message_id -e frame.time -T fields -E header=y >test.txt
    3. 注释:
    4.     -r: 读取本地文件,可以先抓包存下来之后再进行分析;
    5.     -R: smpp...可以在wireshark的过滤表达式里面找到,后面会详细介绍;
    6.     -E: 当-T字段指定时,设置输出选项,header=y意思是头部要打印;
    7.     -e: 当-T字段指定时,设置输出哪些字段;
    8.      >: 重定向;
    1. //统计http状态
    2. tshark -n -q -z http,stat, -z http,tree
    3. 注释:
    4.     -q: 只在结束捕获时输出数据,针对于统计类的命令非常有用;
    5.     -z: 各类统计选项,具体的参考文档,后面会介绍,可以使用tshark -z help命令来查看所有支持的字段;
    6.        http,stat: 计算HTTP统计信息,显示的值是HTTP状态代码和HTTP请求方法。
    7.        http,tree: 计算HTTP包分布。 显示的值是HTTP请求模式和HTTP状态代码。
    1. //抓取500个包提取访问的网址打印出来
    2. tshark -s 0 -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 -c 500
    3. 注释:
    4.     -f: 抓包前过滤;
    5.     -R: 抓包后过滤;
    6.     -l: 在打印结果之前清空缓存;
    7.     -c: 在抓500个包之后结束;
    1. //显示ssl data数据
    2. tshark -n -t a -R ssl -T fields -e "ip.src" -e "ssl.app_data"
    3. //读取指定报文,按照ssl过滤显示内容
    4. tshark -r temp.cap -R "ssl" -V -T text
    5.   注释:
    6.     -T text: 格式化输出,默认就是text;
    7.     -V: 增加包的输出;//-q 过滤tcp流13,获取data内容
    8. tshark -r temp.cap -z "follow,tcp,ascii,13"
    9. //按照指定格式显示-e
    10. tshark -r temp.cap -R ssl -Tfields -e "ip.src" -e tcp.srcport -e ip.dst -e tcp.dstport
    11. //输出数据
    12. tshark -r vmx.cap -q -n -t ad -z follow,tcp,ascii,10.1.8.130:56087,10.195.4.41:446 | more
    13.   注释:
    14.     -t ad: 输出格式化时间戳;
    15. //过滤包的时间和rtp.seq
    16. tshark -i eth0 -f "udp port 5004" -T fields -e frame.time_epoch -e rtp.seq -o rtp.heuristic_rtp:true 1>test.txt
    17.   注释:
    18.     -o: 覆盖属性文件设置的一些值;
    19. //提取各协议数据部分
    20. tshark -r H:/httpsession.pcap -q -n -t ad -z follow,tcp,ascii,71.6.167.142:27017,101.201.42.120:59381 | more

    捕获接口:
      -i: -i 指定捕获接口,默认是第一个非本地循环接口;
      -f: -f 设置抓包过滤表达式,遵循libpcap过滤语法,这个实在抓包的过程中过滤,如果是分析本地文件则用不到。
      -s: -s 设置快照长度,用来读取完整的数据包,因为网络中传输有65535的限制,值0代表快照长度65535,默认也是这个值;
      -p: 以非混合模式工作,即只关心和本机有关的流量。
      -B: -B 设置缓冲区的大小,只对windows生效,默认是2M;
      -y: -y 设置抓包的数据链路层协议,不设置则默认为-L找到的第一个协议,局域网一般是EN10MB等;
      -D: 打印接口的列表并退出;
      -L 列出本机支持的数据链路层协议,供-y参数使用。
     
    捕获停止选项:
      -c: -c 捕获n个包之后结束,默认捕获无限个;
      -a: -a ... duration:NUM,在num秒之后停止捕获;
                       filesize:NUM,在numKB之后停止捕获;
                        files:NUM,在捕获num个文件之后停止捕获;
    捕获输出选项:
      -b ... ring buffer的文件名由-w参数决定,-b参数采用test:value的形式书写;
                     duration:NUM - 在NUM秒之后切换到下一个文件;
                     filesize:NUM - 在NUM KB之后切换到下一个文件;
                     files:NUM - 形成环形缓冲,在NUM文件达到之后;
     
    RPCAP选项:
      remote packet capture protocol,远程抓包协议进行抓包;
      -A:  -A :,使用RPCAP密码进行认证;
     
    输入文件:
      -r: -r 设置读取本地文件
     
    处理选项:
      -2: 执行两次分析
      -R: -R ,包的读取过滤器,可以在wireshark的filter语法上查看;在wireshark的视图->过滤器视图,在这一栏点击表达式,就会列出来对所有协议的支持。
      -Y: -Y ,使用读取过滤器的语法,在单次分析中可以代替-R选项;
      -n: 禁止所有地址名字解析(默认为允许所有)
      -N: 启用某一层的地址名字解析。“m”代表MAC层,“n”代表网络层,“t”代表传输层,“C”代表当前异步DNS查找。如果-n和-N参数同时存在,-n将被忽略。如果-n和-N参数都不写,则默认打开所有地址名字解析。
      -d: 将指定的数据按有关协议解包输出,如要将tcp 8888端口的流量按http解包,应该写为“-d tcp.port==8888,http”;tshark -d. 可以列出所有支持的有效选择器。
      
    输出选项:
      -w: -w 设置raw数据的输出文件。这个参数不设置,tshark将会把解码结果输出到stdout,“-w -”表示把raw输出到stdout。如果要把解码结果输出到文件,使用重定向“>”而不要-w参数。
      -F: -F ,设置输出的文件格式,默认是.pcapng,使用tshark -F可列出所有支持的输出文件类型。
      -V: 增加细节输出;
      -O: -O ,只显示此选项指定的协议的详细信息。
      -P: 即使将解码结果写入文件中,也打印包的概要信息;
      -S: -S 行分割符
      -x: 设置在解码输出结果中,每个packet后面以HEX dump的方式显示具体数据。
      -T: -T pdml|ps|text|fields|psml,设置解码结果输出的格式,包括text,ps,psml和pdml,默认为text
      -e: 如果-T fields选项指定,-e用来指定输出哪些字段;
      -E: -E =如果-T fields选项指定,使用-E来设置一些属性,比如
        header=y|n
        separator=/t|/s|
        occurrence=f|l|a
        aggregator=,|/s|
      -t: -t a|ad|d|dd|e|r|u|ud 设置解码结果的时间格式。“ad”表示带日期的绝对时间,“a”表示不带日期的绝对时间,“r”表示从第一个包到现在的相对时间,“d”表示两个相邻包之间的增量时间(delta)。
      -u: s|hms 格式化输出秒;
      -l: 在输出每个包之后flush标准输出
      -q: 结合-z选项进行使用,来进行统计分析;
      -X: : 扩展项,lua_script、read_format,具体参见 man pages;
      -z:统计选项,具体的参考文档;tshark -z help,可以列出,-z选项支持的统计方式。
      
    其他选项:
      -h: 显示命令行帮助;
      -v: 显示tshark 的版本信息;

    1. //1. 示例1,分析报文封装的协议
    2.   C:\Users\sdut>tshark -r H:\httpsession.pcap -T fields -e frame.number -e frame.protocols -E header=y
    3.   --输出  
    4.   frame.number frame.protocols
    5.   1 eth:ethertype:ip:tcp
    6.   2 eth:ethertype:ip:tcp
    7.   3 eth:ethertype:ip:tcp
    8.   4 eth:ethertype:ip:tcp:http
    9.   5 eth:ethertype:ip:tcp
    10.   6 eth:ethertype:ip:tcp:http:data-text-lines
    11.   7 eth:ethertype:ip:tcp
    12.   8 eth:ethertype:ip:tcp
    13.   9 eth:ethertype:ip:tcp
    14.   -e frame.number:显示帧序号
    15.   -e frame.time: 显示时间,时间格式为 Sep 21, 2016 17:20:02.233249000 中国标准时间
    16.   -e frame.protocols: 显示此数据包使用的协议
    17.   -e ip.src: 显示源ip,但是不能跟frame一起用
    18.   -e ip.dst: 显示目的ip地址;
    19.   -e tcp.port: 显示端口号。
    20.   ......还有很多,针对需求,一方面可以自己通过wireshark软件显示的头部字段来猜测,另一方面可以查阅文档,https://www.wireshark.org/docs/dfref/,这里面列出了所有支持的-e字段写法,可以在里面搜索ip、frame上面我们使用的这几个就会搜到。
    21. //2.示例2
    22.   C:\Users\sdut>tshark -2 -r H:\httpsession.pcap -R "http.request.line || http.file_data || http.response.line" -T fields -e http.request.line -e http.file_data -e http.response.line -E header=y
    23.   输出:该例子输出http协议的请求头,响应头,和响应数据;
    24.   http.request.line  http.file_data  http.response.line
    25.   ......          ......      ......
    26.   具体的这个-R过滤写法,可以查看文档,根据自己的需求来。https://wiki.wireshark.org/DisplayFilters
    27. //3.示例3
    28.   使用windows版本的tshark,抓包存储到本地。每个包只读取1024字节。
    29.   tshark -w E:/1015.pcap -s 1024 -i 本地连接 -q -F pcap
    30. .....

     

     tshark官方文档:tshark(1)

      wireshark wiki:Home

      捕获过滤器 CaptureFilters

      显示过滤器,用于display过滤的字段可以通过https://wiki.wireshark.org/DisplayFilters 查询。如果不过滤-e指定的字段数据都会输出,通过-R过滤之后,只有满足规则的才会输出,会因此-R和-T、-e通常会一起使用。

      统计:Statistics

  • 相关阅读:
    CleanMyPC比360管家好用N倍的电脑清理软件
    存档&改造【07】多表查询和可操控对象的存储
    富格林:可信技巧隔绝遭遇欺诈
    MTK RILD 无法启动问题分析
    中科磐云—2022广东木马信息获取解析
    循环购商业模式:实现用户裂变的关键
    [VTK] vtkWindowedSincPolyDataFilter 源码注释解读
    i.MX 6ULL 驱动开发 二十:RTC
    Spring和Spring Boot常用注解介绍及使用
    百度文心智能体平台(想象即现实):轻松上手,开启智能新时代!创建属于自己的智能体应用。
  • 原文地址:https://blog.csdn.net/Michaelwubo/article/details/133376390