0
点赞
收藏
分享

微信扫一扫

linux下使用tcpdump抓取数据包

西特张 2022-05-02 阅读 65
  • 我们都知道windows系统下抓包有强大的wireShark工具,Linux下则可以使用tcpdump进行抓包。

tcpdump命令格式

tcpdump option proto dir type

  • option : 可选参数
  • proto : 协议。
  • dir : 方向。
  • type : 类型。

举例

  • tcpdump host 192.168.10.100 抓取该ip地址上的所有数据包
  • tcpdump src port 8088 抓取源端口号8088上的所有数据包
  • tcpdump portrange 8000-8080 抓取这个端口范围的所有数据包
  • tcpdump tcp 抓取所有tcp数据包

tcpdump输出内容介绍

19:50:51.802675 IP ubuntu.53284 > 182.92.205.179.10088: Flags [P.], seq 1:7, ack 23, win 64218, length 6
  • 19:50:51.802675 时间
  • IP 网络协议
  • ubuntu.53284 发送方地址以及端口号
  • 182.92.205.179.10088 接收方地址以及端口号
  • Flags [P.] flags标识符。有以下几种
  • seq 序列号
  • ack 确认号
  • length 数据长度

使用tcpdump抓包分析tcp三次握手

命令:tcpdump host 182.92.205.179

  • 先抓取这个地址上的所有数据包

三次握手

20:28:44.659214 IP ubuntu.53310 > 182.92.205.179.10088: Flags [S], seq 3892635409, win 64240, options [mss 1460,sackOK,TS val 3092868458 ecr 0,nop,wscale 7], length 0
20:28:44.686879 IP 182.92.205.179.10088 > ubuntu.53310: Flags [S.], seq 1283407174, ack 3892635410, win 64240, options [mss 1460], length 0
20:28:44.686916 IP ubuntu.53310 > 182.92.205.179.10088: Flags [.], ack 1, win 64240, length 0
  • 可以看到客户端先发送了一个SYN请求,服务端回应了一个ACK + SYN,客户端回应了一个ACK,三次握手建立连接。(这里flags里面的点就是ACK)

数据传输

  • 客户端发送了一个"hello"字符串
20:29:09.856194 IP ubuntu.53310 > 182.92.205.179.10088: Flags [P.], seq 1:7, ack 1, win 64240, length 6
20:29:09.856332 IP 182.92.205.179.10088 > ubuntu.53310: Flags [.], ack 7, win 64240, length 0
  • flags标志位为P,表示进行数据推送。

四次挥手

20:24:52.536351 IP ubuntu.53304 > 182.92.205.179.10088: Flags [F.], seq 1, ack 1, win 64240, length 0
20:24:52.536547 IP 182.92.205.179.10088 > ubuntu.53304: Flags [.], ack 2, win 64239, length 0
20:24:52.561859 IP 182.92.205.179.10088 > ubuntu.53304: Flags [FP.], seq 1, ack 2, win 64239, length 0
20:24:52.561889 IP ubuntu.53304 > 182.92.205.179.10088: Flags [.], ack 2, win 64240, length 0
  • 客户端发起断开请求FIN,服务端回应ACK,服务端发起断开请求FIN,客户端回应ACK。完成四次挥手断开连接。

备注

  • 具体三次握手和四次挥手,以及数据的推送过程在这里就不详细分析了,其实和wireShark差不多,可以参考我在另一篇文章中的详细分析。
  • wireShark抓包分析tcp

输出

  • 如果你觉得在linux下分析数据不方便,我们可以把抓取到的数据包保存到文件中
tcpdump -w tcpdata.pcap host 182.92.205.179 
  • 然后把tcpdata.pacap文件传到windows系统下,可以直接使用wireShark打开进行分析。

参考

  • 全网最详细的 tcpdump 使用指南
举报

相关推荐

0 条评论