Tcp抓包指南

Tcpdump工具笔记

参考链接:tcpdump高级过滤 - 九卷 - 博客园

作用: 对网络上的数据包进行截获的包分析工具

常用参数:

  • -a 将网络地址和广播地址转变成名字
  • -e 在输出行打印出数据链路层的头部信息
  • -i 指定监听的网络接口
  • -n 不进行IP地址到主机名的转换
  • -nn: 表示以ip和port的方式显示来源主机和目的主机,而不是用主机名和服务
  • -A: 以ascii的方式显示数据包,抓取web数据时很有用
  • -X: 数据包将会以16进制和ascii的方式显示
  • -v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息

用过的表达式:host 主机;port 端口;src host 发包主机;dst host 收包主机。多个条件可以用and、or组合,取反可以使用 !

常用命令:

抓取包含端口22的数据包

tcpdump -i eth0 -vnn port 22

抓取源ip是10.10.10.122数据包。

tcpdump -i eth0 -vnn src host 10.10.10.122

抓取目的ip是10.10.10.122数据包

tcpdump -i eth0 -vnn dst host 10.10.10.122

在传输内容中过滤compute关键字

tcpdump -i eth0 -en -A | grep compute

curl主机未开放的端口时抓包:

tcpdump -n port 6378

结果示例:

15:06:22.672654 IP 123.57.147.74.37224 > 172.25.30.241.6378: Flags [S], seq 2597256390, win 29200, options [mss 1460,sackOK,TS val 3372580901 ecr 0,nop,wscale 7], length 0 15:06:22.672667 IP 172.25.30.241.6378 > 123.57.147.74.37224: Flags [R.], seq 0, ack 2597256391, win 0, length 0

结果分析:

tcpdump 的TCP输出结果详解_雨僧的技术博客_51CTO博客

  • [S] 表示这是一个SYN请求
  • [.] 表示这是一个ACK确认包,(client)SYN->(server)SYN->(client)ACK 就是3次握手过程
  • [P] 表示这个是一个数据推送,可以是从服务器端向客户端推送,也可以从客户端向服务器端推
  • [F] 表示这是一个FIN包,是关闭连接操作,client/server都有可能发起
  • [R] 表示这是一个RST包,与F包作用相同,但RST表示连接关闭时,仍然有数据未被处理。可以理解为是强制切断连接
  • win 342是指滑动窗口大小
  • length 12指数据包的大小

你可能感兴趣的:(Linux实用命令,后端开发,网络,网络协议)