- Notifications
You must be signed in to change notification settings - Fork239
A cli tool to proxy and analyze TCP connections.
License
NotificationsYou must be signed in to change notification settings
kevwan/tproxy
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
When I develop backend services and writego-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>
On Windows, you can usescoop:
$ scoop install tproxy
$ tproxy --helpUsage 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 -qQuiet mode, only prints connection open/close and stats, defaultfalse -r string Remote address (host:port) to connect -sEnable statistics -t string Thetype of protocol, currently support http2, grpc, redis and mongodb -up int Upward speed limit(bytes/second)
$ 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
$ tproxy -p 3307 -r localhost:3306
$ tproxy -p 3307 -r remotehost:3306 -s -q
$ tproxy -p 3307 -r localhost:3306 -q -s
If you like or are using this project, please give it astar. Thanks!
About
A cli tool to proxy and analyze TCP connections.