@ -1,5 +1,8 @@
|
|||||||
proxy更新日志
|
proxy更新日志
|
||||||
|
|
||||||
|
v6.1
|
||||||
|
1.黑白名单支持设置顶级域了,比如:com,匹配所有的.com域名
|
||||||
|
|
||||||
v6.0 企业版开源啦
|
v6.0 企业版开源啦
|
||||||
本次更新主要是把企业版开源,把企业版代码合并到现在的开源goproxy当中,继续遵循GPLv3,免费开源,
|
本次更新主要是把企业版开源,把企业版代码合并到现在的开源goproxy当中,继续遵循GPLv3,免费开源,
|
||||||
之所以直接跳过5.x,用6.0版本号是为了与现有开源版本做一个明显的区分,下面功能主要来自企业版.
|
之所以直接跳过5.x,用6.0版本号是为了与现有开源版本做一个明显的区分,下面功能主要来自企业版.
|
||||||
|
|||||||
@ -181,7 +181,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.0/proxy-linux-amd64.tar.gz
|
wget https://github.com/snail007/goproxy/releases/download/v6.1/proxy-linux-amd64.tar.gz
|
||||||
```
|
```
|
||||||
#### **2.下载自动安装脚本**
|
#### **2.下载自动安装脚本**
|
||||||
```shell
|
```shell
|
||||||
|
|||||||
@ -39,8 +39,11 @@ func (c *CompStream) Write(p []byte) (n int, err error) {
|
|||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *CompStream) Close() error {
|
func (c *CompStream) Close() (err error) {
|
||||||
return c.conn.Close()
|
err = c.conn.Close()
|
||||||
|
c.r = nil
|
||||||
|
c.w = nil
|
||||||
|
return
|
||||||
}
|
}
|
||||||
func (c *CompStream) LocalAddr() net.Addr {
|
func (c *CompStream) LocalAddr() net.Addr {
|
||||||
return c.conn.LocalAddr()
|
return c.conn.LocalAddr()
|
||||||
|
|||||||
@ -38,3 +38,10 @@ func (s *Conn) Read(b []byte) (n int, err error) {
|
|||||||
func (s *Conn) Write(b []byte) (n int, err error) {
|
func (s *Conn) Write(b []byte) (n int, err error) {
|
||||||
return s.w.Write(b)
|
return s.w.Write(b)
|
||||||
}
|
}
|
||||||
|
func (s *Conn) Close() (err error) {
|
||||||
|
err = s.Conn.Close()
|
||||||
|
s.Cipher = nil
|
||||||
|
s.r = nil
|
||||||
|
s.w = nil
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|||||||
@ -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.0/proxy-linux-amd64.tar.gz
|
wget https://github.com/snail007/goproxy/releases/download/v6.1/proxy-linux-amd64.tar.gz
|
||||||
|
|
||||||
# #install proxy
|
# #install proxy
|
||||||
tar zxvf proxy-linux-amd64.tar.gz
|
tar zxvf proxy-linux-amd64.tar.gz
|
||||||
|
|||||||
@ -6,7 +6,7 @@ type LeakyBuf struct {
|
|||||||
freeList chan []byte
|
freeList chan []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
const LeakyBufSize = 2048 // data.len(2) + hmacsha1(10) + data(4096)
|
const LeakyBufSize = 1024 // data.len(2) + hmacsha1(10) + data(4096)
|
||||||
const maxNBuf = 2048
|
const maxNBuf = 2048
|
||||||
|
|
||||||
var LeakyBuffer = NewLeakyBuf(maxNBuf, LeakyBufSize)
|
var LeakyBuffer = NewLeakyBuf(maxNBuf, LeakyBufSize)
|
||||||
|
|||||||
@ -179,6 +179,12 @@ func (c *Checker) domainIsInMap(address string, blockedMap bool) bool {
|
|||||||
subSlice := domainSlice[:len(domainSlice)-1]
|
subSlice := domainSlice[:len(domainSlice)-1]
|
||||||
topDomain := strings.Join(domainSlice[len(domainSlice)-1:], ".")
|
topDomain := strings.Join(domainSlice[len(domainSlice)-1:], ".")
|
||||||
checkDomain := topDomain
|
checkDomain := topDomain
|
||||||
|
if !blockedMap && c.directMap.Has(checkDomain) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if blockedMap && c.blockedMap.Has(checkDomain) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
for i := len(subSlice) - 1; i >= 0; i-- {
|
for i := len(subSlice) - 1; i >= 0; i-- {
|
||||||
checkDomain = subSlice[i] + "." + checkDomain
|
checkDomain = subSlice[i] + "." + checkDomain
|
||||||
if !blockedMap && c.directMap.Has(checkDomain) {
|
if !blockedMap && c.directMap.Has(checkDomain) {
|
||||||
|
|||||||
Reference in New Issue
Block a user