身为后端,每天查网络连接、看请求内容是家常便饭。
但现实总是残酷的:
tcpdump 抓一堆包,Wireshark过滤半天还看不清业务逻辑;
关键时刻永远抓不到那一帧想要的信息;
线上问题一排查就是半小时起步,效率低到崩溃。
直到我用上 tproxy —— 这个轻量级开源网络代理工具,网络排查效率直接起飞。
一条命令就能实时拦截并转发任意TCP流量,清楚看到gRPC连接建立过程、MySQL连接池实时状态,还能顺手把重传率、RTT等网络指标全量出来。

tproxy 核心能力一览
- 实时观测任意 TCP 连接全生命周期
- 智能协议解析:支持 gRPC、HTTP2、Redis、MongoDB 等,自动识别业务内容
- 网络性能指标直出:重传率、RTT、丢包情况一目了然
- 连接池状态透视:总连接数、活跃/空闲连接、最大并发等关键数据实时显示
- 延迟转发 + 上下行限速:轻松模拟弱网环境,压测和问题复现超方便
它不是简单抓包,而是把网络行为变成肉眼可见的清晰数据流。
真实使用案例
案例1:gRPC 接口偶发超时
以前抓包半天看不出连接重连时机,用 tproxy 后:
tproxy -p 8088 -r localhost:8081 -t grpc -d 100ms
立刻看到连接建立、断开、重连的全过程,问题 5 分钟定位。

案例2:MySQL 连接池打满
tproxy -p 3307 -r localhost:3306 -s -q
实时监控连接数变化、连接池生命周期策略,瞬间明白是配置问题还是流量突增。

案例3:分析MySQL连接
加上延迟和限速参数:
$ tproxy -p 3307 -r localhost:3306

案例4:查看网络状况(重传率和RTT)
tproxy -l 0.0.0.0 -p 7777 -r host.docker.internal:8888 -s -q
直接看重传率和 RTT,快速判断是网络抖动还是服务端问题。

🚀 超简单上手方法
安装方式(任选其一):
-
Go 安装(推荐):
go install github.com/kevwan/tproxy@latest -
Docker 快速启动:
docker run --rm -it -p <listen-port>:<listen-port> kevinwan/tproxy:v1 tproxy -l 0.0.0.0 -p <listen-port> -r <target-host>:<target-port> -
Windows 用户:用 Scoop 一键安装
scoop install tproxy
核心命令参数:
-p:本地监听端口-r:目标远程地址(host:port)-t:协议类型(grpc/http2/redis/mongodb)-d:添加延迟(模拟弱网)-s:开启统计(RTT、重传等)-q:安静模式,只显示关键信息
谁强烈推荐使用?
- 日常写业务的后端开发
- 需要排查线上疑难杂症的 SRE
- 做压测和稳定性建设的同学
- 所有讨厌网络问题变成“玄学”的开发者
点个Star支持作者,也方便自己以后随时调用。
网络排查不再是玄学,把效率拉满,把时间留给更有价值的事情!
你在排查网络连接时踩过哪些坑?欢迎评论区分享你的经历~
(欢迎转发给身边的后端朋友,一起告别低效抓包!)