tproxy:一条命令看穿所有 TCP 连接,网络排查效率神器
tcpdump 抓包太原始?Wireshark 过滤太繁琐?tproxy 让你用一条命令实时拦截并转发任意 TCP 流量,gRPC 连接建立、MySQL 连接池状态、重传率和 RTT 等指标全部清晰可见。
一句话定位 tproxy
轻量级开源网络代理工具,不是简单抓包,而是把网络行为变成肉眼可见的清晰数据流。一条命令即可实时观测任意 TCP 连接全生命周期,支持 gRPC、HTTP2、Redis、MongoDB 等协议自动解析。
五大核心能力
- 实时观测:任意 TCP 连接全生命周期
- 智能协议解析:gRPC、HTTP2、Redis、MongoDB 等,自动识别业务内容
- 网络性能指标直出:重传率、RTT、丢包情况一目了然
- 连接池状态透视:总连接数、活跃/空闲连接、最大并发等关键数据实时显示
- 延迟转发 & 上下行限速:轻松模拟弱网环境,压测和问题复现超方便
真实使用案例
gRPC 接口偶发超时
tproxy -p 8088 -r localhost:8081 -t grpc -d 100ms
立刻看到连接建立、断开、重连全过程,5 分钟定位问题。
MySQL 连接池打满
tproxy -p 3307 -r localhost:3306 -s -q
实时监控连接数变化与池生命周期,瞬间判断是配置问题还是流量突增。
看网络状况(重传率和 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
- 做压测和稳定性建设的同学
- 所有讨厌网络问题变成玄学的开发者
网络排查不再是玄学,把效率拉满,把时间留给更有价值的事情!
开源地址:https://github.com/kevwan/tproxy