一个用于代理和分析TCP连接的Cli工具——tproxy
作者:Sec-Labs | 发布时间:
我为什么写这个工具
当我开发后端服务并编写 go-zero 时,我经常需要监控网络流量。 例如:
- 监控 gRPC 连接,何时连接以及何时重新连接
- 监控 MySQL 连接池,有多少连接并找出生命周期策略
- 实时监控任何 TCP 连接
项目地址
https://github.com/kevwan/tproxy
安装
$ go install github.com/kevwan/tproxy@latest
或者使用 docker 镜像:
$ docker run --rm -it -p <listen-port>:<listen-port> -p <remote-port>:<remote-port> kevinwan/tproxy:v1 tproxy -l 0.0.0.0 -p <listen-port> -r host.docker.internal:<remote-port>
对于 arm64:
$ docker run --rm -it -p <listen-port>:<listen-port> -p <remote-port>:<remote-port> kevinwan/tproxy:v1-arm64 tproxy -l 0.0.0.0 -p <listen-port> -r host.docker.internal:<remote-port>
在 Windows 上,您可以使用 scoop :
$ scoop install tproxy
用途
$ tproxy --help
Usage of tproxy:
-d duration
the delay to relay packets
-l string
Local address to listen on (default "localhost")
-p int
Local port to listen on, default to pick a random port
-q Quiet mode, only prints connection open/close and stats, default false
-r string
Remote address (host:port) to connect
-s Enable statistics
-t string
The type of protocol, currently support grpc
例子
监控 gRPC 连接
$ tproxy -p 8088 -r localhost:8081 -t grpc -d 100ms
- 监听本地主机和端口 8088
- 将流量重定向到
localhost:8081 - 协议类型为 gRPC
- 每个数据包延迟 100ms

监控 MySQL 连接
$ tproxy -p 3307 -r localhost:3306

标签:工具分享