欢迎来到魔幻小生的博客

抓包分析 TCP 三次握手/四次挥手

前言

  • 一般的前后端联调是用不到抓包的,可以通过postman、chrome的开发者工具进行调试,查看请求和相应。

  • 当做数据对接,或者再做几个服务连接的时候,中间会有restful或者thirft请求,这个时候之只能通过抓包来看请求和相应了。

  • 抓包 其实就是:将网络传输发送接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。

  • 这里的包就是数据包,也就是TCP/IP协议通信传输中的数据单位,一般也称“数据包”

补充:TCP/IP 协议是工作在 OSI 模型第三层(网络层)、第四层(传输层)上的,帧工作在第二层(数据链路层)。上一层的内容由下一层的内容来传输,所以在局域网中,“包”是包含在“帧”里的。

image

tcpdump

image

Tcpdump 是个命令行方式的网络嗅探器。他通过使用命令选项来过滤网卡截获的数据包,假如不进行过滤,过多数量的包会使网络管理员很难理清头绪。

tcpdump常用参数

-n 显示IP地址和端口号
-v 显示更多信息,ttl,长度,其他选项等,tcpdump的详细信息有3个级别,因此-vvv显示最多信息
-D 列出可以抓包的网络接口
-i + 网络接口抓包
-c + 数字 一次抓取多少数据包后停止抓取
-w + 文件名 抓包结果保存到文件
-r + 文件名 读取抓包文件
-s + 数字 抓包的大小
如:tcpdump -nvvv -i any -c 100

tcpdump过滤器参数

协议名,如icmp,过滤出icmp的制定报文
host + ip 特定主机,抓取目标地址和源地址为特定ip的数据包
port + 数字 特定端口抓包
src + [host] ip 源地址
dst + [host] ip 目标地址
多条件选择使用and,or和小括号,在shell中需要用引号包含多个条件的过滤规则如, tcpdump -nvvv -i any -c 20 ‘port 80 or port 443’
-X 以十六进制打印出数据报文
-A 打印数据报文的ASCII值

抓取访问百度的数据包

sudo tcpdump host www.baidu.com -w /tmp/tcpdump.log

curl http://www.baidu.com

抓包之后,需要对报文进行分析。如果用wireshark 进行分析的话,就特别清晰明了。

posted @ 2025-09-04 23:10  魔幻小生  阅读(20)  评论(0)    收藏  举报