diff --git a/README.md b/README.md index 16f17e7..76bbdc6 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,7 @@ we can set up local listeners as proxy servers, and forward requests to internet |Simple-Obfs | | |√| |transport client only |Redir |√| | | |linux redirect proxy |Redir6 |√| | | |linux redirect proxy(ipv6) +|Tproxy | |√| | |linux tproxy(udp only) |Reject | | |√|√|reject all requests @@ -177,7 +178,7 @@ glider -verbose -listen :8443 -forward SCHEME://HOST:PORT ```bash Available schemes: - listen: mixed ss socks5 http vless trojan trojanc redir redir6 tcp udp tls ws wss unix smux kcp + listen: mixed ss socks5 http vless trojan trojanc redir redir6 tproxy tcp udp tls ws wss unix smux kcp forward: direct reject ss socks4 socks5 http ssr ssh vless vmess trojan trojanc tcp udp tls ws wss unix smux kcp simple-obfs Socks5 scheme: diff --git a/config.go b/config.go index 7d1a330..f9af07f 100644 --- a/config.go +++ b/config.go @@ -135,7 +135,7 @@ func usage() { fmt.Fprintf(w, "\n") fmt.Fprintf(w, "Available schemes:\n") - fmt.Fprintf(w, " listen: mixed ss socks5 http vless trojan trojanc redir redir6 tcp udp tls ws wss unix smux kcp\n") + fmt.Fprintf(w, " listen: mixed ss socks5 http vless trojan trojanc redir redir6 tproxy tcp udp tls ws wss unix smux kcp\n") fmt.Fprintf(w, " forward: direct reject ss socks4 socks5 http ssr ssh vless vmess trojan trojanc tcp udp tls ws wss unix smux kcp simple-obfs\n") fmt.Fprintf(w, "\n") diff --git a/config/glider.conf.example b/config/glider.conf.example index ca2d477..ab4b342 100644 --- a/config/glider.conf.example +++ b/config/glider.conf.example @@ -51,6 +51,9 @@ listen=socks5://:1080 # listen on 1081 as a linux transparent proxy server. # listen=redir://:1081 +# listen on 1082 as a linux transparent proxy server(tproxy). +# listen=tproxy://:1082 + # http over tls (HTTPS proxy) # listen=tls://:443?cert=crtFilePath&key=keyFilePath,http:// diff --git a/proxy/tproxy/tproxy_linux.go b/proxy/tproxy/tproxy_linux.go index 8bf8773..4601d6d 100644 --- a/proxy/tproxy/tproxy_linux.go +++ b/proxy/tproxy/tproxy_linux.go @@ -72,6 +72,7 @@ func (s *TProxy) ListenAndServeUDP() { log.F("[tproxyu] failed to listen on %s: %v", s.addr, err) return } + defer lc.Close() log.F("[tproxyu] listening UDP on %s", s.addr)