diff --git a/README.md b/README.md index 5a39c2a..c29591b 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ easyProxy是一款轻量级、高性能、功能最为强大的**内网穿透** - [x] 支持tcp隧道,提升访问效率 - [x] 支持udp隧道 - [x] 支持http代理 -- [x] 支持内网穿透sock5代理,配合proxifer可达到vpn的效果,在外网访问内网资源或者设备,同时可以设置用户名和密码验证 +- [x] 支持内网穿透sock5代理,配合proxifier可达到vpn的效果,在外网访问内网资源或者设备,同时可以设置用户名和密码验证 - [x] 强大的web管理界面,可方便的设置的和管理隧道 - [x] 支持站点密码保护 - [x] 支持加密传输 @@ -228,7 +228,7 @@ target | 目标地址,格式如上 **原理** -主要用于socks5代理,也就是和ss类似,不过是代理内网。使用此模式时,可在非内网环境下配置本机的socks5代理(服务器ip、sock5代理端口),即可实现socks5代理,达到访问内网的网站的效果,配合proxifer等全局代理软件,即可如同使用内网vpn一样,访问内网网站,通过ssh连接内网机器等等……。 +主要用于socks5代理,也就是和ss类似,不过是代理内网。使用此模式时,可在非内网环境下配置本机的socks5代理(服务器ip、sock5代理端口),即可实现socks5代理,达到访问内网的网站的效果,配合proxifier等全局代理软件,即可如同使用内网vpn一样,访问内网网站,通过ssh连接内网机器等等……。 ![image](https://github.com/cnlh/easyProxy/blob/master/image/sock5.png?raw=true) ### 使用 @@ -247,7 +247,7 @@ httpport | 代理的http端口(socks5连接端口) u | 验证的用户名 p | 验证的密码 -**说明**:用户名和密码验证模式,仅部分socks5客户端支持,例如proxifer。命令行执行加上,web管理模式中可单独配置 +**说明**:用户名和密码验证模式,仅部分socks5客户端支持,例如proxifier。命令行执行加上,web管理模式中可单独配置 ``` @@ -264,7 +264,7 @@ p | 验证的密码 - 需要使用内网代理的机器 ``` -配置socks5代理即可,ip为外网服务器ip,端口为httpport,即可在外网环境使用内网啦!也可使用proxifer等全局代理软件。 +配置socks5代理即可,ip为外网服务器ip,端口为httpport,即可在外网环境使用内网啦!也可使用proxifier等全局代理软件。 ``` 如果设置了用户名和密码,记得填上用户名和密码(仅部分客户端支持密码验证) diff --git a/utils/util.go b/utils/util.go index 669bd5a..f7ade3e 100755 --- a/utils/util.go +++ b/utils/util.go @@ -41,30 +41,24 @@ func Relay(in, out net.Conn, compressType int, crypt, mux bool) { switch compressType { case COMPRESS_SNAPY_ENCODE: copyBuffer(NewSnappyConn(in, crypt), out) - if mux { - out.Close() - NewSnappyConn(in, crypt).Write([]byte(IO_EOF)) - } + out.Close() + NewSnappyConn(in, crypt).Write([]byte(IO_EOF)) case COMPRESS_SNAPY_DECODE: copyBuffer(in, NewSnappyConn(out, crypt)) - if mux { - in.Close() + in.Close() + if !mux { + out.Close() } case COMPRESS_NONE_ENCODE: copyBuffer(NewCryptConn(in, crypt), out) - if mux { - out.Close() - NewCryptConn(in, crypt).Write([]byte(IO_EOF)) - } + out.Close() + NewCryptConn(in, crypt).Write([]byte(IO_EOF)) case COMPRESS_NONE_DECODE: copyBuffer(in, NewCryptConn(out, crypt)) - if mux { - in.Close() - } - } - if !mux { in.Close() - out.Close() + if !mux { + out.Close() + } } }