Tcpdump工具笔记 【Linux实用命令|Tcp抓包指南】参考链接:tcpdump高级过滤 - 九卷 - 博客园
作用: 对网络上的数据包进行截获的包分析工具
常用参数:
- -a 将网络地址和广播地址转变成名字
- -e 在输出行打印出数据链路层的头部信息
- -i 指定监听的网络接口
- -n 不进行IP地址到主机名的转换
- -nn: 表示以ip和port的方式显示来源主机和目的主机,而不是用主机名和服务
- -A: 以ascii的方式显示数据包,抓取web数据时很有用
- -X: 数据包将会以16进制和ascii的方式显示
- -v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息
常用命令: 抓取包含端口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指数据包的大小