8 Commits
v6.1 ... v6.3

Author SHA1 Message Date
arraykeys@gmail.com
6c586e2b78 Merge branch 'dev' 2018-09-26 12:08:30 +08:00
arraykeys@gmail.com
6917ff3347 a 2018-09-21 18:01:58 +08:00
arraykeys@gmail.com
284bb83d64 1.修复encrypt.Conn释放内存,导致的潜在panic问题.
2.修复了basic认证,处理认证文件没有正确处理注释的bug.
3.修正了ssh中转手册参数-A调整为-D.
2018-09-21 13:57:46 +08:00
arraykeys@gmail.com
1b29112a2c 修复encrypt.Conn释放内存,导致的潜在panic问题. 2018-09-21 12:02:54 +08:00
arraykeys@gmail.com
b9afc98230 修复encrypt.Conn释放内存,导致的潜在panic问题. 2018-09-21 12:01:46 +08:00
arraykeys@gmail.com
20761d2183 修复encrypt.Conn释放内存,导致的潜在panic问题. 2018-09-21 12:01:13 +08:00
arraykeys@gmail.com
1ab07c81ab a 2018-09-19 15:45:15 +08:00
arraykeys@gmail.com
07efc2c8de Merge branch 'dev' 2018-09-19 12:15:15 +08:00
7 changed files with 34 additions and 11 deletions

View File

@ -1,5 +1,10 @@
proxy更新日志 proxy更新日志
v6.2
1.修复encrypt.Conn释放内存,导致的潜在panic问题.
2.修复了basic认证,处理认证文件没有正确处理注释的bug.
3.修正了ssh中转手册参数-A调整为-D.
v6.1 v6.1
1.黑白名单支持设置顶级域了,比如:com,匹配所有的.com域名 1.黑白名单支持设置顶级域了,比如:com,匹配所有的.com域名
2.优化TCPS内存释放. 2.优化TCPS内存释放.

View File

@ -183,7 +183,7 @@ curl -L https://raw.githubusercontent.com/snail007/goproxy/master/install_auto.s
下载地址:https://github.com/snail007/goproxy/releases 下载地址:https://github.com/snail007/goproxy/releases
```shell ```shell
cd /root/proxy/ cd /root/proxy/
wget https://github.com/snail007/goproxy/releases/download/v6.1/proxy-linux-amd64.tar.gz wget https://github.com/snail007/goproxy/releases/download/v6.2/proxy-linux-amd64.tar.gz
``` ```
#### **2.下载自动安装脚本** #### **2.下载自动安装脚本**
```shell ```shell
@ -380,7 +380,7 @@ target:用户访问的URL,比如:http://demo.com:80/1.html或https://www.baidu.c
##### ***1.7.1 ssh用户名和密码的方式*** ##### ***1.7.1 ssh用户名和密码的方式***
本地HTTP(S)代理28080端口,执行: 本地HTTP(S)代理28080端口,执行:
`./proxy http -T ssh -P "2.2.2.2:22" -u user -A demo -t tcp -p ":28080"` `./proxy http -T ssh -P "2.2.2.2:22" -u user -D demo -t tcp -p ":28080"`
##### ***1.7.2 ssh用户名和密钥的方式*** ##### ***1.7.2 ssh用户名和密钥的方式***
本地HTTP(S)代理28080端口,执行: 本地HTTP(S)代理28080端口,执行:
`./proxy http -T ssh -P "2.2.2.2:22" -u user -S user.key -t tcp -p ":28080"` `./proxy http -T ssh -P "2.2.2.2:22" -u user -S user.key -t tcp -p ":28080"`
@ -879,7 +879,7 @@ SOCKS5代理,支持CONNECT,UDP协议,不支持BIND,支持用户名密码认证.
##### ***5.6.1 ssh用户名和密码的方式*** ##### ***5.6.1 ssh用户名和密码的方式***
本地SOCKS5代理28080端口,执行: 本地SOCKS5代理28080端口,执行:
`./proxy socks -T ssh -P "2.2.2.2:22" -u user -A demo -t tcp -p ":28080"` `./proxy socks -T ssh -P "2.2.2.2:22" -u user -D demo -t tcp -p ":28080"`
##### ***5.6.2 ssh用户名和密钥的方式*** ##### ***5.6.2 ssh用户名和密钥的方式***
本地SOCKS5代理28080端口,执行: 本地SOCKS5代理28080端口,执行:
`./proxy socks -T ssh -P "2.2.2.2:22" -u user -S user.key -t tcp -p ":28080"` `./proxy socks -T ssh -P "2.2.2.2:22" -u user -S user.key -t tcp -p ":28080"`

View File

@ -1 +1 @@
6.1 6.2

View File

@ -2,6 +2,7 @@ package encrypt
import ( import (
"crypto/cipher" "crypto/cipher"
"fmt"
"io" "io"
"net" "net"
@ -33,15 +34,23 @@ func NewConn(c net.Conn, method, password string) (conn net.Conn, err error) {
return return
} }
func (s *Conn) Read(b []byte) (n int, err error) { func (s *Conn) Read(b []byte) (n int, err error) {
if s.r == nil {
return 0, fmt.Errorf("use of closed network connection")
}
return s.r.Read(b) return s.r.Read(b)
} }
func (s *Conn) Write(b []byte) (n int, err error) { func (s *Conn) Write(b []byte) (n int, err error) {
if s.w == nil {
return 0, fmt.Errorf("use of closed network connection")
}
return s.w.Write(b) return s.w.Write(b)
} }
func (s *Conn) Close() (err error) { func (s *Conn) Close() (err error) {
err = s.Conn.Close() if s.Cipher != nil {
s.Cipher = nil err = s.Conn.Close()
s.r = nil s.Cipher = nil
s.w = nil s.r = nil
return err s.w = nil
}
return
} }

View File

@ -5,7 +5,7 @@ if [ -e /tmp/proxy ]; then
fi fi
mkdir /tmp/proxy mkdir /tmp/proxy
cd /tmp/proxy cd /tmp/proxy
wget https://github.com/snail007/goproxy/releases/download/v6.1/proxy-linux-amd64.tar.gz wget https://github.com/snail007/goproxy/releases/download/v6.2/proxy-linux-amd64.tar.gz
# #install proxy # #install proxy
tar zxvf proxy-linux-amd64.tar.gz tar zxvf proxy-linux-amd64.tar.gz

View File

@ -371,11 +371,20 @@ func RandInt(strLen int) int64 {
return i return i
} }
func ReadBytes(r io.Reader) (data []byte, err error) { func ReadBytes(r io.Reader) (data []byte, err error) {
defer func() {
if e := recover(); e != nil {
err = fmt.Errorf("read bytes fail ,err : %s", e)
}
}()
var len uint64 var len uint64
err = binary.Read(r, binary.LittleEndian, &len) err = binary.Read(r, binary.LittleEndian, &len)
if err != nil { if err != nil {
return return
} }
if len == 0 || len > ^uint64(0) {
err = fmt.Errorf("data len out of range, %d", len)
return
}
var n int var n int
data = make([]byte, len) data = make([]byte, len)
n, err = r.Read(data) n, err = r.Read(data)

View File

@ -235,7 +235,7 @@ func (ba *BasicAuth) AddFromFile(file string) (n int, err error) {
} }
userpassArr := strings.Split(strings.Replace(string(_content), "\r", "", -1), "\n") userpassArr := strings.Split(strings.Replace(string(_content), "\r", "", -1), "\n")
for _, userpass := range userpassArr { for _, userpass := range userpassArr {
if strings.HasPrefix("#", userpass) { if strings.HasPrefix(userpass, "#") {
continue continue
} }
u := strings.Split(strings.Trim(userpass, " "), ":") u := strings.Split(strings.Trim(userpass, " "), ":")