1. 排查sandbox-repeater的请求参数被篡改
用户反馈,某个业务字段,录制下来的值与实际原始传递来的值不一。 排查步骤:
- 先远程断点目标机器,查看请求参数
- 使用tcpdump工具抓包,比较原始网络的参数是否与远程断点时的参数,存在偏差
- 执行以下命令来抓包,ctrl+c结束
shell
yum install tcpdump
# -w write写入某个文件
tcpdump -w package.cap1.1. 使用wireshark来分析包
- 下载完cap数据,装载到wireshark,因为观测的dubbo协议(基于tcp协议),所以找到源地址,目标地址以及目标端口
- 右击某个tcp通信记录(一个完成的dubbo调用,会由多个tcp包来运输),跟踪流
- 可以看到一次dubbo协议完整的调用,sync与ack
1.2. 对比远程断点与tcpdump原始包,数据确实篡改
1.3. 排查思路总结
- 先确认是“上游传错了”,还是“链路中途被改了”。
- 远程断点只能看到进入应用时的数据,不代表网络原始数据。
tcpdump + wireshark的价值在于还原最接近原始网络报文的内容。
1.4. 继续深挖的方向
如果确认原始包没问题,但业务参数进入应用后变了,下一步通常要重点看:
- 序列化和反序列化逻辑
- Repeater / Sandbox 插桩逻辑
- 业务对象转换层
- 网关或中间件是否做了字段兼容处理