当前位置: 首页 > news >正文

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 连接、断开的具体过程。

[root@k8s-worker27-65 work]# tshark -i ens192  -f 'tcp port 8082 and host 192.168.0.254'
Running as user "root" and group "root". This could be dangerous.
Capturing on 'ens192'1 0.000000000 192.168.0.254 → 192.168.1.65 HTTP 551 GET /jettopro-basic/basichello20101 HTTP/1.1 2 0.084347377 192.168.1.65 → 192.168.0.254 TCP 54 8082 → 2205 [ACK] Seq=1 Ack=498 Win=245 Len=03 0.595447306 192.168.1.65 → 192.168.0.254 HTTP 182 HTTP/1.1 200   (text/html)4 0.637529068 192.168.0.254 → 192.168.1.65 TCP 60 2205 → 8082 [ACK] Seq=498 Ack=129 Win=4124 Len=05 34.345636265 192.168.0.254 → 192.168.1.65 TCP 60 2206 → 8082 [ACK] Seq=1 Ack=1 Win=4125 Len=16 34.345692626 192.168.1.65 → 192.168.0.254 TCP 66 8082 → 2206 [ACK] Seq=1 Ack=2 Win=229 Len=0 SLE=1 SRE=27 45.641652303 192.168.0.254 → 192.168.1.65 TCP 60 [TCP Keep-Alive] 2205 → 8082 [ACK] Seq=497 Ack=129 Win=4124 Len=18 45.641713966 192.168.1.65 → 192.168.0.254 TCP 66 [TCP Keep-Alive ACK] 8082 → 2205 [ACK] Seq=129 Ack=498 Win=245 Len=0 SLE=497 SRE=4989 49.367150373 192.168.1.65 → 192.168.0.254 TCP 54 8082 → 2206 [FIN, ACK] Seq=1 Ack=2 Win=229 Len=010 49.367535440 192.168.0.254 → 192.168.1.65 TCP 60 2206 → 8082 [ACK] Seq=2 Ack=2 Win=4125 Len=011 52.723050733 192.168.0.254 → 192.168.1.65 TCP 60 2206 → 8082 [FIN, ACK] Seq=2 Ack=2 Win=4125 Len=012 52.723119403 192.168.1.65 → 192.168.0.254 TCP 54 8082 → 2206 [ACK] Seq=2 Ack=3 Win=229 Len=013 61.314198115 192.168.1.65 → 192.168.0.254 TCP 54 8082 → 2205 [FIN, ACK] Seq=129 Ack=498 Win=245 Len=014 61.328775769 192.168.0.254 → 192.168.1.65 TCP 60 2205 → 8082 [ACK] Seq=498 Ack=130 Win=4124 Len=0

-- 观察屏幕输出

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

# 序号 1-3 的包,即 TCP 三次握手的过程
[root@k8s-worker27-65 work]# tshark -i ens192  -f 'tcp port 8082 and host 192.168.0.254'
Running as user "root" and group "root". This could be dangerous.
Capturing on 'ens192'1 0.000000000 192.168.0.254 → 192.168.1.65 HTTP 551 GET /jettopro-basic/basichello20101 HTTP/1.1 2 0.084347377 192.168.1.65 → 192.168.0.254 TCP 54 8082 → 2205 [ACK] Seq=1 Ack=498 Win=245 Len=03 0.595447306 192.168.1.65 → 192.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_网易订阅

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

安装高版本:

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

Build and install cmake3

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

Build and install tshark

sudo su - 
cd /root
git clone https://github.com/wireshark/wireshark.git
cd wireshark
git checkout tags/wireshark-3.4.0mkdir -p ~/temp/wireshark-3.4.0
mkdir -p /opt/wireshark/3.4.0
cd ~/temp/wireshark-3.4.0
cmake3 -DCMAKE_INSTALL_PREFIX=/opt/wireshark/3.4.0 -LH /root/wireshark
make
make install
# ls -lasF /opt/wireshark/3.4.0/bin/
# /opt/wireshark/3.4.0/bin/tshark --version
Running as user "root" and group "root". This could be dangerous.
TShark (Wireshark) 3.4.0 (v3.4.0-0-g9733f173ea5e)~~abridgement~~
$ /opt/wireshark/3.4.0/bin/tshark -r testcap_2020-12-14_05-34-54.pcap -T ABC
tshark: Invalid -T parameter "ABC"; it must be one of:"fields"  The values of fields specified with the -e option, in a formspecified by the -E option."pdml"    Packet Details Markup Language, an XML-based format for thedetails of a decoded packet. This information is equivalent tothe packet details printed with the -V flag."ps"      PostScript for a human-readable one-line summary of each ofthe packets, or a multi-line view of the details of each ofthe packets, depending on whether the -V flag was specified."psml"    Packet Summary Markup Language, an XML-based format for thesummary information of a decoded packet. This information isequivalent to the information shown in the one-line summaryprinted by default."json"    Packet Summary, an JSON-based format for the detailssummary information of a decoded packet. This information is equivalent to the packet details printed with the -V flag."jsonraw" Packet Details, a JSON-based format for machine parsingincluding only raw hex decoded fields (same as -T json -x butwithout text decoding, only raw fields included). "ek"      Packet Details, an EK JSON-based format for the bulk insert into elastic search cluster. This information is equivalent to the packet details printed with the -V flag."text"    Text of a human-readable one-line summary of each of thepackets, or a multi-line view of the details of each of thepackets, depending on whether the -V flag was specified.This is the default."tabs"    Similar to the text report except that each column of thehuman-readable one-line summary is delimited with an ASCIIhorizontal 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 <display filter>,使用读取过滤器的语法,在单次分析中可以代替-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 <protocols>,只显示此选项指定的协议的详细信息。
    -P: 即使将解码结果写入文件中,也打印包的概要信息;
    -e: 如果-T fields选项指定,-e用来指定输出哪些字段;
    -E: -E <fieldsoption>=<value>如果-T fields选项指定,使用-E来设置一些属性,比如
        header=y|n
        separator=/t|/s|<char>
        occurrence=f|l|a
        aggregator=,|/s|<char>

    -S: -S <separator> 行分割符
    • -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: <key>:<value> 扩展项,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未设定)时的各参数功能一览:

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

 案列解析:

[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'
Running as user "root" and group "root". This could be dangerous.
Capturing on 'ens192'
1 192.168.1.65:8082/jettopro-basic/basichello20101注释:-s: 只抓取前512字节;-i: 捕获ens192 网卡;-n: 禁止网络对象名称解析;-f: 只捕获协议为tcp,目的端口为80; 抓包前过滤;-R: 过滤出http.host和http.request.uri; #单次可以用-Y 代替  抓包后过滤;-T,-e: 指的是打印这两个字段;-I: 输出到命令行界面; 
//实时打印当前mysql查询语句
tshark -s 512 -i ens192 -n -f 'tcp dst port 3306' -Y 'mysql.query' -T fields -e mysql.query
注释:-Y: 过滤出mysql的查询语句;
/导出smpp协议header和value的例子
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注释:-r: 读取本地文件,可以先抓包存下来之后再进行分析;-R: smpp...可以在wireshark的过滤表达式里面找到,后面会详细介绍;-E: 当-T字段指定时,设置输出选项,header=y意思是头部要打印;-e: 当-T字段指定时,设置输出哪些字段;>: 重定向;
//统计http状态
tshark -n -q -z http,stat, -z http,tree
注释:-q: 只在结束捕获时输出数据,针对于统计类的命令非常有用;-z: 各类统计选项,具体的参考文档,后面会介绍,可以使用tshark -z help命令来查看所有支持的字段;http,stat: 计算HTTP统计信息,显示的值是HTTP状态代码和HTTP请求方法。http,tree: 计算HTTP包分布。 显示的值是HTTP请求模式和HTTP状态代码。

//抓取500个包提取访问的网址打印出来
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注释: -f: 抓包前过滤;-R: 抓包后过滤;-l: 在打印结果之前清空缓存;-c: 在抓500个包之后结束;
//显示ssl data数据
tshark -n -t a -R ssl -T fields -e "ip.src" -e "ssl.app_data"//读取指定报文,按照ssl过滤显示内容
tshark -r temp.cap -R "ssl" -V -T text注释: -T text: 格式化输出,默认就是text;-V: 增加包的输出;//-q 过滤tcp流13,获取data内容
tshark -r temp.cap -z "follow,tcp,ascii,13"//按照指定格式显示-e
tshark -r temp.cap -R ssl -Tfields -e "ip.src" -e tcp.srcport -e ip.dst -e tcp.dstport//输出数据
tshark -r vmx.cap -q -n -t ad -z follow,tcp,ascii,10.1.8.130:56087,10.195.4.41:446 | more注释:-t ad: 输出格式化时间戳;
//过滤包的时间和rtp.seq
tshark  -i eth0 -f "udp port 5004"  -T fields -e frame.time_epoch -e rtp.seq -o rtp.heuristic_rtp:true 1>test.txt注释:-o: 覆盖属性文件设置的一些值;//提取各协议数据部分
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 <interface> 指定捕获接口,默认是第一个非本地循环接口;
  -f: -f <capture filter> 设置抓包过滤表达式,遵循libpcap过滤语法,这个实在抓包的过程中过滤,如果是分析本地文件则用不到。
  -s: -s <snaplen> 设置快照长度,用来读取完整的数据包,因为网络中传输有65535的限制,值0代表快照长度65535,默认也是这个值;
  -p: 以非混合模式工作,即只关心和本机有关的流量。
  -B: -B <buffer size> 设置缓冲区的大小,只对windows生效,默认是2M;
  -y: -y<link type> 设置抓包的数据链路层协议,不设置则默认为-L找到的第一个协议,局域网一般是EN10MB等;
  -D: 打印接口的列表并退出;
  -L 列出本机支持的数据链路层协议,供-y参数使用。
 
捕获停止选项:
  -c: -c <packet count> 捕获n个包之后结束,默认捕获无限个;
  -a: -a <autostop cond.> ... duration:NUM,在num秒之后停止捕获;
                   filesize:NUM,在numKB之后停止捕获;
                    files:NUM,在捕获num个文件之后停止捕获;
捕获输出选项:
  -b <ringbuffer opt.> ... ring buffer的文件名由-w参数决定,-b参数采用test:value的形式书写;
                 duration:NUM - 在NUM秒之后切换到下一个文件;
                 filesize:NUM - 在NUM KB之后切换到下一个文件;
                 files:NUM - 形成环形缓冲,在NUM文件达到之后;
 
RPCAP选项:
  remote packet capture protocol,远程抓包协议进行抓包;
  -A:  -A <user>:<password>,使用RPCAP密码进行认证;
 
输入文件:
  -r: -r <infile> 设置读取本地文件
 
处理选项:
  -2: 执行两次分析
  -R: -R <read filter>,包的读取过滤器,可以在wireshark的filter语法上查看;在wireshark的视图->过滤器视图,在这一栏点击表达式,就会列出来对所有协议的支持。
  -Y: -Y <display filter>,使用读取过滤器的语法,在单次分析中可以代替-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 <outfile|-> 设置raw数据的输出文件。这个参数不设置,tshark将会把解码结果输出到stdout,“-w -”表示把raw输出到stdout。如果要把解码结果输出到文件,使用重定向“>”而不要-w参数。
  -F: -F <output file type>,设置输出的文件格式,默认是.pcapng,使用tshark -F可列出所有支持的输出文件类型。
  -V: 增加细节输出;
  -O: -O <protocols>,只显示此选项指定的协议的详细信息。
  -P: 即使将解码结果写入文件中,也打印包的概要信息;
  -S: -S <separator> 行分割符
  -x: 设置在解码输出结果中,每个packet后面以HEX dump的方式显示具体数据。
  -T: -T pdml|ps|text|fields|psml,设置解码结果输出的格式,包括text,ps,psml和pdml,默认为text
  -e: 如果-T fields选项指定,-e用来指定输出哪些字段;
  -E: -E <fieldsoption>=<value>如果-T fields选项指定,使用-E来设置一些属性,比如
    header=y|n
    separator=/t|/s|<char>
    occurrence=f|l|a
    aggregator=,|/s|<char>
  -t: -t a|ad|d|dd|e|r|u|ud 设置解码结果的时间格式。“ad”表示带日期的绝对时间,“a”表示不带日期的绝对时间,“r”表示从第一个包到现在的相对时间,“d”表示两个相邻包之间的增量时间(delta)。
  -u: s|hms 格式化输出秒;
  -l: 在输出每个包之后flush标准输出
  -q: 结合-z选项进行使用,来进行统计分析;
  -X: <key>:<value> 扩展项,lua_script、read_format,具体参见 man pages;
  -z:统计选项,具体的参考文档;tshark -z help,可以列出,-z选项支持的统计方式。
  
其他选项:
  -h: 显示命令行帮助;
  -v: 显示tshark 的版本信息;

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

 

 tshark官方文档:tshark(1)

  wireshark wiki:Home

  捕获过滤器 CaptureFilters

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

  统计:Statistics

相关文章:

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 连接建立和关闭的过程。 三次握手 客户端向服务器发送 SYN…...

Python开源项目月排行 2023年9月

#2023年9月2023年9月9日1fishdraw这个项目是用来随机生成一条鱼的&#xff0c;这条鱼特别的稀奇古怪&#xff0c;这个项目不依赖任何库&#xff0c;支持 svg, json, csv 等格式。2vizro一个用于创建模块化数据可视化应用程序的工具包。在几分钟内快速自助组装定制仪表板 - 无需…...

uniapp项目实践总结(二十五)苹果 ios 平台 APP 打包教程

导语:当你的应用程序开发完成后,在上架 ios 应用商店之前,需要进行打包操作,下面就简单介绍一下打包方法。 目录 准备工作注册账号生成证书打包配置准备工作 在打包之前,请保证你的 uniapp 应用程序编译到 ios 模拟器或者是真机调试基座环境下是可以正常运行的,苹果打包…...

MySQL查询(基础到高级)

一、单表查询&#xff1a; 1.基本查询&#xff1a; 1.1 查询多个字段&#xff1a; 1.查询所有字段&#xff1a; select * from 表名;2.查询指定字段&#xff1a; select 字段1,字段2 from 表名; 1.2 去除重复记录 select distinct "字段" FROM "表名"; …...

电脑通过串口助手和51单片机串口通讯

今天有时间把电脑和51单片机之间的串口通讯搞定了&#xff0c;电脑发送的串口数据&#xff0c;单片机能够正常接收并显示到oled屏幕上&#xff0c;特此记录一下&#xff0c;防止后面自己忘记了怎么搞得了。 先来两个图片看看结果吧&#xff01; 下面是串口3.c的文件全部内容&a…...

【Linux】线程详解完结篇——信号量 + 线程池 + 单例模式 + 读写锁

线程详解第四篇 前言正式开始信号量引例信号量的本质信号量相关的四个核心接口生产消费者模型用环形队列实现生产者消费者模型基于环形队列的生产消费模型的原理代码演示单生产者单消费者多生产者多消费者 计数器的意义 线程池基本概念代码 单例模式STL,智能指针和线程安全STL中…...

弧度、圆弧上的点、圆的半径(r)、弧长(s)之间的关系

要计算弧度和圆弧上的点&#xff0c;需要知道以下几个要素&#xff1a; 圆的半径&#xff08;r&#xff09;&#xff1a;即圆的中心到圆周上任意一点的距离。 弧长&#xff08;s&#xff09;&#xff1a;从圆周上的一个点到另一个点所经过的弧长。 弧度&#xff08;θ&#x…...

[AOSP] [JNI] [Android] AOSP中使用JNI

一. 简要 &#x1f34e; JNI是Java Native Interface的缩写&#xff0c;它提供了若干的API实现了Java和其他语言的通信&#xff08;主要是C&C&#xff09;。从Java1.1开始&#xff0c;JNI标准成为java平台的一部分&#xff0c;它允许Java代码和其他语言写的代码进行交互。J…...

GEE案例——如何使用长时序影像实现多波段图像加载(不同层土壤湿度)

简介: 在GEE中实现时序图像的加载主要的目的是查看影像波段或者指数的变化,这里我们使用的主要是加载常规的4个波段,然后添加一个复合波段,复合波段主要的是求4个波段的平均值,然后再次加入到原有的4个波段的时序图中。这里面主要的技术难点一个是图表的设定,另外一个就…...

Cloudflare进阶技巧:缓存利用最大化

1. 引言 cloudflare我想你应该知道是什么&#xff0c;一家真正意义上免费无限量的CDN&#xff0c;至今未曾有哥们喷它的。当然&#xff0c;在国内的速度确实比较一般&#xff0c;不过这也不能怪它。 CDN最大的特色&#xff0c;我想就是它的缓存功能&#xff0c;达到防攻击&am…...

想要精通算法和SQL的成长之路 - 二叉树的判断问题(子树判断 | 对称性 | 一致性判断)

想要精通算法和SQL的成长之路 - 二叉树的判断问题 前言一. 相同的树二. 对称二叉树三. 判断子树 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 相同的树 原题链接 这题目典型的递归题&#xff1a; 如果两个节点都是null&#xff0c;我们返回true。如果两个节点一个nul…...

(零)如何做机器视觉项目

文章目录 1 项目的前期准备1.1 从5个方面初步分析客户需求1.2 方案评估与验证1.3 签订合同 2 项目规划2.1 定义客户端的详细需求2.2 制定项目管理计划2.3 方案评审 3 详细设计3.1 硬件设备的选择与环境搭建3.2 软件开发平台与开发工具的选择3.3 机器视觉系统的整体框架与开发流…...

【Leetcode】滑动窗口合集

这里写目录标题 209.长度最小的子数组题目思路代码 3. 无重复字符的最长子串&#xff08;medium&#xff09;题目思路 11. 最大连续 1 的个数 III题目思路 1658. 将 x 减到 0 的最⼩操作数题目思路代码 904. 水果成篮题目思路代码 438.找到字符串中所有字母的异位词题目思路代码…...

【C++】STL详解(九)—— set、map、multiset、multimap的介绍及使用

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C学习 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C】STL…...

计组—— I/O系统

&#x1f4d5;&#xff1a;参考王道课件 目录 一、I/O系统的基本概念 1.什么是“I/O”&#xff1f; ​编辑2.主机如何和I/O设备进行交互&#xff1f; 3.I/O控制方式 &#xff08;1&#xff09;程序查询方式 &#xff08;2&#xff09;程序中断方式 &#xff08;3&#x…...

基于vc6+sdk51开发简易文字识别转语音的程序

系统&#xff1a;window7 软件&#xff1a;vc6.0 目的&#xff1a;简易文字转语音真人发声 利用2023国庆小长假&#xff0c;研究如何将文言转语音&#xff0c;之前在网上查询相关知识&#xff0c;大致了解微信语音转换&#xff0c;翻译官之类软件的原理&#xff0c;但要加入神…...

DevOps:自动化部署和持续集成/持续交付(CI/CD)

DevOps&#xff1a;自动化部署和持续集成/持续交付&#xff08;CI/CD&#xff09; 在现代软件开发领域&#xff0c;DevOps&#xff08;Development和Operations的组合&#xff09;已经成为一个不可或缺的概念。它代表了一种将软件开发和运维&#xff08;Operations&#xff09…...

专业图标制作软件 Image2icon 最新中文 for mac

Image2Icon是一款用于Mac操作系统的图标转换工具。它允许用户将常见的图像文件&#xff08;如PNG、JPEG、GIF等&#xff09;转换为图标文件&#xff08;.ico格式&#xff09;&#xff0c;以便在Mac上用作应用程序、文件夹或驱动器的自定义图标。 以下是Image2Icon的一些主要功…...

数据结构:顺序表

SeqList.h #pragma once #include<stdio.h> #include<assert.h> #include<stdlib.h>typedef int SLDataType; //#define NULL 0typedef struct SeqList {SLDataType* a;int size;//顺序表中存储的有效元素的个数int capacity;//空间的大小 }SL;void SLInit(…...

僵尸进程的产生与处理

僵尸进程&#xff08;Zombie Process&#xff09;是指在操作系统中已经完成了执行&#xff0c;但其父进程尚未调用wait()或waitpid()来获取其终止状态的子进程。当一个进程结束时&#xff0c;操作系统会保留该进程的一些基本信息&#xff0c;包括进程ID&#xff08;PID&#xf…...

TouchEffects - Android View点击特效

官网 GitHub - likaiyuan559/TouchEffects: Android View点击特效TouchEffects,几行代码为所有控件添加点击效果 项目简介 Android View点击特效TouchEffects,几行代码为所有控件添加点击效果 TouchEffects能够帮助你更快速方便的增加点击时候的效果&#xff0c;TouchEffect…...

从ContinuousEventTimeTrigger/ContinuousProcessingTimeTrigger代码看如何实现一个自定义的触发器

背景 当我们想要实现提前触发计算的触发器时&#xff0c;我们可以使用ContinuousEventTimeTrigger/ContinuousProcessingTimeTrigger作为触发器达到比如几分钟触发一次计算并发送计算结果的类&#xff0c;我们本文就从代码角度解析下实现自定义触发器的一些注意事项 Continuo…...

Linux 5种网络模型

[参考]&#xff1a;《黑马程序员Redis》https://www.bilibili.com/video/BV1cr4y1671t/?p166&share_sourcecopy_web&vd_source9e65300ccca322aeb367bb1eb677b0fc [参考]&#xff1a;《操作系统》 [参考]&#xff1a;《UNIX网络编程》 为了避免用户应用导致冲突甚至内…...

10.1 调试事件读取寄存器

当读者需要获取到特定进程内的寄存器信息时&#xff0c;则需要在上述代码中进行完善&#xff0c;首先需要编写CREATE_PROCESS_DEBUG_EVENT事件&#xff0c;程序被首次加载进入内存时会被触发此事件&#xff0c;在该事件内首先我们通过lpStartAddress属性获取到当前程序的入口地…...

Linux系统常用指令篇---(一)

Linux系统常用指令篇—(一) 1.cd指令 Linux系统中&#xff0c;磁盘上的文件和目录被组成一棵目录树&#xff0c;每个节点都是目录或文件。 语法:cd 目录名 功能&#xff1a;改变工作目录。将当前工作目录改变到指定的目录下。 (简单理解为进入指定目录下) 举例: cd .. : 返…...

【初识Linux】:常见指令(1)

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关Linux的基础知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数…...

STM32复习笔记(四):看门狗

目录 &#xff08;一&#xff09;简介 &#xff08;二&#xff09;IWDG IWDG的CUBEMX工程配置 IWDG相关函数&#xff08;非常少&#xff0c;所以直接贴上来&#xff09;&#xff1a; &#xff08;三&#xff09;WWDG &#xff08;一&#xff09;简介 看门狗分为独立看门…...

【C++进阶(七)】仿函数深度剖析模板进阶讲解

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习C   &#x1f51d;&#x1f51d; 模板进阶 1. 前言2. 仿函数的概念3. 仿函数的实…...

基于SSM的电动车上牌管理系统(有报告)。Javaee项目。

演示视频&#xff1a; 基于SSM的电动车上牌管理系统&#xff08;有报告&#xff09;。Javaee项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring SpringM…...

mstsc无法保存RDP凭据, 100%生效

问题 即使如下两项都打勾&#xff0c;其还是无法保存凭据&#xff0c;特别是连接Ubuntu (freerdp server)&#xff1a; 解决方法 网上多种复杂方法&#xff0c;不生效&#xff0c;其思路是修改后台配置&#xff0c;以使mstsc跟平常一样自动记住凭据。最后&#xff0c;如下的…...

官方网站建设有限公司/新闻联播直播 今天

通过浏览器访问互联网上的页面&#xff0c;实际是把页面下载并缓存到本地电脑中。页面是有大小的&#xff0c;从互联网到本地电脑&#xff0c;就存在数据流动&#xff0c;从而产生了流量。例如&#xff0c;一个页面&#xff0c;有500kb大小&#xff0c;一次受访&#xff0c;则消…...

傻瓜建网站/做一个公司网站要多少钱

编码转换图&#xff08;转自金角大王&#xff09; 编码转换需要先转换为Unicode编码&#xff0c;然后在转换为需要转换的编码&#xff1a; 如&#xff1a;UTF-8转GBK&#xff1a;UTF-8-->>(decode)Unicode-->>(encode)GBK 转载于:https://www.cnblogs.com/selid/p/…...

怎么制作网站维护公告效果/新一轮疫情最新消息

微信开始严打第三方网页强制跳转行为&#xff0c;禁止使用提供诱导或强制点击跳转阅读全文功能&#xff0c;违规导流网站一律封杀!微信方面表示&#xff0c;近期大量用户投诉&#xff0c;在微信中打开第三方网站链接内容总是出现诱导或强制点击才能阅读链接全文行为&#xff0c…...

低价企业网站搭建/9 1短视频安装

1 修改配置文件 /etc/my.conf (为了命令 mysqldump能省略输入密码执行&#xff0c;mysql5.5 之后已经不建议控制台直接输入密码的方式)增加如下配置[client]hostlocalhostuserrootpassword‘password‘2 创建任务 shell# !/bin/shdd"$(date "%Y%m%d%H%M%S")&qu…...

wordpress例子/百度爱采购服务商查询

首先&#xff0c;需要打开终端&#xff0c;若桌面没有终端图标&#xff0c;则可以使用ctrlaltt即可&#xff0c;之后将终端锁定在任务栏。 其次&#xff0c;需要获取root权限&#xff0c;使用命令 su root 密码&#xff08;我的是root&#xff09;。 进入之后&#xff0c;…...

网站gif图标/网络营销策划目的

基础规范【建议】使用InnoDB存储引擎【强制】无特殊要求必须使用UTF8字符集【强制】数据表、数据字段必须加入中文注释【强制】禁止使用存储过程、视图、触发器、Event。特殊情况申请评审【强制】不在数据库做运算&#xff0c;cpu计算务必移至业务层命名规范【建议】 命名使用具…...