kevwan
tproxy
Go

A cli tool to proxy and analyze TCP connections.

Last updated Jul 8, 2026
3.7k
Stars
253
Forks
6
Issues
+8
Stars/day
Attention Score
85
Language breakdown
Go 98.4%
Dockerfile 1.6%
Files click to expand
README

tproxy

English | 简体中文 | 日本語

Go Go Report Card Release License: MIT

Buy Me A Coffee

Why I wrote this tool

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

Installation

$ 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>

On Windows, you can use scoop:

$ scoop install tproxy

Usages

$ tproxy --help
Usage of tproxy:
  -d duration
    	the delay to relay packets
  -down int
    	Downward speed limit(bytes/second)
  -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 http2, grpc, redis and mongodb
  -up int
    	Upward speed limit(bytes/second)

Examples

Monitor gRPC connections

$ tproxy -p 8088 -r localhost:8081 -t grpc -d 100ms
  • listen on localhost and port 8088
  • redirect the traffic to localhost:8081
  • protocol type to be gRPC
  • delay 100ms for each packets
image

Monitor MySQL connections

$ tproxy -p 3307 -r localhost:3306

image

Check the connection reliability (Retrans rate and RTT)

$ tproxy -p 3307 -r remotehost:3306 -s -q

image

Learn the connection pool behaviors

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

image

Give a Star! ⭐

If you like or are using this project, please give it a star. Thanks!

🔗 More in this category

© 2026 GitRepoTrend · kevwan/tproxy · Updated daily from GitHub