一条命令看穿所有 TCP 连接!后端网络排查终于不玄学了

一条命令看穿所有 TCP 连接!后端网络排查终于不玄学了

_

身为后端,每天查网络连接、看请求内容是家常便饭。

但现实总是残酷的:
tcpdump 抓一堆包,Wireshark过滤半天还看不清业务逻辑;
关键时刻永远抓不到那一帧想要的信息;
线上问题一排查就是半小时起步,效率低到崩溃。

直到我用上 tproxy —— 这个轻量级开源网络代理工具,网络排查效率直接起飞。

一条命令就能实时拦截并转发任意TCP流量,清楚看到gRPC连接建立过程、MySQL连接池实时状态,还能顺手把重传率、RTT等网络指标全量出来。

1783475154824.png

tproxy 核心能力一览

  • 实时观测任意 TCP 连接全生命周期
  • 智能协议解析:支持 gRPC、HTTP2、Redis、MongoDB 等,自动识别业务内容
  • 网络性能指标直出:重传率、RTT、丢包情况一目了然
  • 连接池状态透视:总连接数、活跃/空闲连接、最大并发等关键数据实时显示
  • 延迟转发 + 上下行限速:轻松模拟弱网环境,压测和问题复现超方便

它不是简单抓包,而是把网络行为变成肉眼可见的清晰数据流

真实使用案例

案例1:gRPC 接口偶发超时
以前抓包半天看不出连接重连时机,用 tproxy 后:

tproxy -p 8088 -r localhost:8081 -t grpc -d 100ms

立刻看到连接建立、断开、重连的全过程,问题 5 分钟定位。

1783473033405.png

案例2:MySQL 连接池打满

tproxy -p 3307 -r localhost:3306 -s -q

实时监控连接数变化、连接池生命周期策略,瞬间明白是配置问题还是流量突增。

1783473366825.png

案例3:分析MySQL连接
加上延迟和限速参数:

$ tproxy -p 3307 -r localhost:3306

1783473079224.png

案例4:查看网络状况(重传率和RTT)

tproxy -l 0.0.0.0 -p 7777 -r host.docker.internal:8888 -s -q

直接看重传率和 RTT,快速判断是网络抖动还是服务端问题。

1783473271557.png

🚀 超简单上手方法

安装方式(任选其一):

  1. Go 安装(推荐):

    go install github.com/kevwan/tproxy@latest
    
  2. 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>
    
  3. Windows 用户:用 Scoop 一键安装 scoop install tproxy

核心命令参数

  • -p:本地监听端口
  • -r:目标远程地址(host:port)
  • -t:协议类型(grpc/http2/redis/mongodb)
  • -d:添加延迟(模拟弱网)
  • -s:开启统计(RTT、重传等)
  • -q:安静模式,只显示关键信息

谁强烈推荐使用?

  • 日常写业务的后端开发
  • 需要排查线上疑难杂症的 SRE
  • 做压测和稳定性建设的同学
  • 所有讨厌网络问题变成“玄学”的开发者

GitHub 地址

点个Star支持作者,也方便自己以后随时调用。

网络排查不再是玄学,把效率拉满,把时间留给更有价值的事情!

你在排查网络连接时踩过哪些坑?欢迎评论区分享你的经历~

(欢迎转发给身边的后端朋友,一起告别低效抓包!)

🔥 爆款工具!Rust 终端神器 dnsglobe:全球 34 个 DNS 解析器并行查询 + 实时世界地图,一眼看穿 DNS 传播全貌! 2026-07-07

评论区