Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TCP and UDP proxy in Go

UDP proxy is unidirectional. Usage:

$ goproxy [flags] [listen-ip]:port [connect-to-ip]:port
Flags:
-debug
        Print debug level info
-dns string
        DNS server address, supply host[:port]; will use system default if not set
-dns-interval duration
        Time interval between DNS queries (default 20s)
-srv
        Query DNS for SRV records, -dns must be specified
-timeout duration
        TCP connect timeout (default 10s)
-udp
        UDP mode
-verbose
        Print noticeable info

Via Docker:

$ docker run --name proxy --restart unless-stopped -d \
    -p 443:443/tcp arkadi/goproxy :443 10.10.20.55:4443

Build Docker image:

$ docker build . -t arkadi/goproxy

Build static 64-bit Linux binary:

$ GOOS=linux GOARCH=amd64 CGO_ENABLED=0 \
    go build -ldflags '-w -extldflags -static'

Note, for a multi-value SRV record the target pool could be unstable as DNS server may only return a subset of the target records (eight records on AWS).

Viva go-nuts!

About

TCP and UDP proxy in Go, with DNS polling

Resources

Stars

13 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages