From 68ae8fefb7612f657d2fbc31abd60c0106a5b884 Mon Sep 17 00:00:00 2001 From: Toby Date: Sat, 29 Aug 2020 16:19:02 -0700 Subject: [PATCH] SOCKS5 username & password auth option --- cmd/proxy_client.go | 8 +++++++- cmd/proxy_config.go | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/cmd/proxy_client.go b/cmd/proxy_client.go index 027a22d..7e552e0 100644 --- a/cmd/proxy_client.go +++ b/cmd/proxy_client.go @@ -96,7 +96,13 @@ func proxyClient(args []string) { if len(config.SOCKS5Addr) > 0 { go func() { - socks5server, err := socks5.NewServer(client, config.SOCKS5Addr, nil, config.SOCKS5Timeout, aclEngine, + var authFunc func(user, password string) bool + if config.SOCKS5User != "" && config.SOCKS5Password != "" { + authFunc = func(user, password string) bool { + return config.SOCKS5User == user && config.SOCKS5Password == password + } + } + socks5server, err := socks5.NewServer(client, config.SOCKS5Addr, authFunc, config.SOCKS5Timeout, aclEngine, config.SOCKS5DisableUDP, func(addr net.Addr, reqAddr string, action acl.Action, arg string) { logrus.WithFields(logrus.Fields{ diff --git a/cmd/proxy_config.go b/cmd/proxy_config.go index 6e4b046..a192698 100644 --- a/cmd/proxy_config.go +++ b/cmd/proxy_config.go @@ -11,6 +11,8 @@ type proxyClientConfig struct { SOCKS5Addr string `json:"socks5_addr" desc:"SOCKS5 listen address"` SOCKS5Timeout int `json:"socks5_timeout" desc:"SOCKS5 connection timeout in seconds"` SOCKS5DisableUDP bool `json:"socks5_disable_udp" desc:"Disable SOCKS5 UDP support"` + SOCKS5User string `json:"socks5_user" desc:"SOCKS5 auth username"` + SOCKS5Password string `json:"socks5_password" desc:"SOCKS5 auth password"` HTTPAddr string `json:"http_addr" desc:"HTTP listen address"` HTTPTimeout int `json:"http_timeout" desc:"HTTP connection timeout in seconds"` HTTPUser string `json:"http_user" desc:"HTTP basic auth username"`