tcpdump

tshark是Wireshark的命令行版本,命令参数类似tcpdump

tcpdump -r capture.pcap -c 30 -n -tttt

  • -r capture.pcap:指定要读取的抓包文件为"capture.pcap"。
  • -c 30:限制只抓取并显示30个数据包。
  • -n:以数字形式显示IP地址,而不进行反向DNS解析。

  • -t:在每行抓包结果中不打印时间戳。
  • -tt:在每行抓包结果中打印时间戳,以自1970年1月1日00:00:00 UTC以来的秒数和小数秒数表示。
  • -ttt:在每行抓包结果中打印当前行与前一行之间的时间差(微秒精度)。
  • -tttt:在每行抓包结果中打印时间戳,以自午夜以来的小时、分钟、秒钟和小数秒数表示,前面加上日期。
  • -ttttt:在每行抓包结果中打印当前行与第一行之间的时间差(微秒精度)。

tcpdump -c 262144 -C 10 -i ens192 -n port 9710 -w capture.pcap

  • -c 262144:限制只抓取并保存262144个数据包。
  • -C 10:设置每个捕获文件的最大大小为10MB。当捕获文件达到这个大小时,tcpdump会自动创建一个新的捕获文件。
  • -i ens192:指定要监听的网络接口为"ens192"。这是网络接口的名称,可能会因系统而异。
  • -n:以数字形式显示IP地址,而不进行反向DNS解析。
  • port 9710:只捕获目标端口为9710的数据包。
  • -w capture.pcap:将捕获的数据包保存到名为"capture.pcap"的文件中。

这个命令将在网络接口"ens192"上监听并捕获目标端口为9710的数据包。它将捕获并保存最多262144个数据包,每个捕获文件的最大大小为10MB。捕获的数据包将以数字形式显示IP地址,并保存到名为"capture.pcap"的文件中。

tcpdump -r input.pcap -c 10000 -w output.pcap

这个命令将从名为"input.pcap"的PCAP文件中读取数据包,并将其分割成每个文件包含10000个数据包的多个输出文件。输出文件的命名将以"output.pcap"为基础,并在末尾添加数字后缀(例如output.pcap、output.pcap1、output.pcap2等)


读取结果对比

0.041427 x.x.x.x → y.y.y.y TCP 54 38888 → 9999 [ACK] Seq=1 Ack=51476 Win=501 Len=0 这个是tshark 00:00:00.041427 IP x.x.x.x.38888 > y.y.y.y.9999: Flags [.], ack 51475, win 501, length 0 这个是tcpdump

Tcpdump显示的是接收方已成功接收的数据的最后一个字节的序列号,而Tshark显示的是发送方期望从接收方下一次接收的数据的序列号。也就是说,Tcpdump显示的是最后一个被确认的字节,而Tshark显示的是期望接收的下一个字节。因此,Tshark显示的ACK值会比Tcpdump显示的值大1。