plugin: socks5 support user password auth, close #484

This commit is contained in:
fatedier 2018-01-24 23:04:55 +08:00
parent 68dfc89bce
commit 41c41789b6
2 changed files with 21 additions and 4 deletions

View File

@ -142,9 +142,16 @@ plugin = http_proxy
plugin_http_user = abc plugin_http_user = abc
plugin_http_passwd = abc plugin_http_passwd = abc
[plugin_static_file] [plugin_socks5]
type = tcp type = tcp
remote_port = 6005 remote_port = 6005
plugin = socks5
plugin_user = abc
plugin_passwd = abc
[plugin_static_file]
type = tcp
remote_port = 6006
plugin = static_file plugin = static_file
plugin_local_path = /var/www/blog plugin_local_path = /var/www/blog
plugin_strip_prefix = static plugin_strip_prefix = static

View File

@ -32,13 +32,23 @@ func init() {
type Socks5Plugin struct { type Socks5Plugin struct {
Server *gosocks5.Server Server *gosocks5.Server
user string
passwd string
} }
func NewSocks5Plugin(params map[string]string) (p Plugin, err error) { func NewSocks5Plugin(params map[string]string) (p Plugin, err error) {
sp := &Socks5Plugin{} user := params["plugin_user"]
sp.Server, err = gosocks5.New(&gosocks5.Config{ passwd := params["plugin_passwd"]
cfg := &gosocks5.Config{
Logger: log.New(ioutil.Discard, "", log.LstdFlags), Logger: log.New(ioutil.Discard, "", log.LstdFlags),
}) }
if user != "" || passwd != "" {
cfg.Credentials = gosocks5.StaticCredentials(map[string]string{user: passwd})
}
sp := &Socks5Plugin{}
sp.Server, err = gosocks5.New(cfg)
p = sp p = sp
return return
} }