English | 简体中文
When I develop backend services and write go-zero, I often need to monitor the network traffic. For example:
- monitoring gRPC connections, when to connect and when to reconnect
- monitoring MySQL connection pools, how many connections and figure out the lifetime policy
- monitoring any TCP connections on the fly
$ go install github.com/kevwan/tproxy@latest
Or use docker images:
$ 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>
For 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>
$ tproxy --help
Usage of tproxy:
-l string
Local address to listen on (default "localhost")
-p int
Local port to listen on
-r string
Remote address (host:port) to connect
-silent
Only prints connection open/close and stats, default false
-t string
The type of protocol, currently support grpc
$ tproxy -p 8088 -r localhost:8081 -t grpc
- listen on localhost and port 8088
- redirect the traffic to localhost:8081
- protocol type to be gRPC
$ tproxy -p 3307 -r localhost:3306
If you like or are using this project, please give it a star. Thanks!