Proxy-Go v8.4 发布,API认证新增基于用户和IP限速限连接数,构建强大代理池代理网关!

栏目: 软件资讯 · 发布时间: 5年前

内容简介:Proxy 是 golang 实现的高性能 http、https、websocket、tcp、udp、socks5 代理服务器,支持正向代理、反向代理、透明代理、内网穿透、TCP/UDP 端口映射、SSH 中转、TLS 加密传输、协议转换、DNS 防污染智能代理、...

Proxy 是 golang 实现的高性能 http、https、websocket、tcp、udp、socks5 代理服务器,支持正向代理、反向代理、透明代理、内网穿透、TCP/UDP 端口映射、SSH 中转、TLS 加密传输、协议转换、DNS 防污染智能代理、前置 CDN/Nginx 反代、代理连接重定向、API动态调用上级代理、限速限连接数。同时提供全平台的功能强大的命令行版本和友好易用的 web 控制面板版本。

更新内容

1.socks/http(s)/sps/tcp/udp/dns/内网穿透bridge/内网穿透tbridge增加了客户端IP黑白名单。 
用--ip-deny参数指定一个客户端IP黑名单列表文件,那么当用户的IP在这个文件里面的时候连接就会被断开。 
用--ip-allow参数指定一个客户端IP白名单列表文件,那么当用户的IP不在这个文件里面的时候连接就会被断开。
如果同时设置了--ip-deny和--ip-allow,那么只有--ip-allow会起作用。  2.socks/http(s)/sps增加了api获取用户连接数及速度限制和针对客户端IP的连接数及速度限制,获取上级。
假设--auth-url http://127.0.0.1:333/auth.php 指向了一个 php 接口地址.
auth.php内容如下:

<?php
$proxy_ip=$_GET['local_addr'];
$user_ip=$_GET['client_addr'];
$service=$_GET['service'];
$is_sps=$_GET['sps']=='1';
$user=$_GET['user'];
$pass=$_GET['pass'];
$target=$_GET['target'];
//业务逻辑判断
//....

//设置认证结果
header("userconns:1000");
header("ipconns:2000");
header("userrate:3000");
header("iprate:8000");
header("UPSTREAM:http://127.0.0.1:3500?parent-type=tcp");
header("HTTP/1.1 204 No Content");

解释:
所有的字段都是非必须的,最后的状态是必须的,默认返回204状态码是认证成功,其它状态码失败。
$proxy_ip是用户访问的代理IP。
$user_ip是访问代理的用户IP。
$user认证用户名
$pass认证密码
$target当是http(s)代理认证的时候,这里是用户访问的http(s)地址,socks5代理这个为空。

userconns:用户的最大连接数,不限制为0或者不设置这个头部。
ipconns:用户IP的最大连接数,不限制为0或者不设置这个头部。
userrate:用户的单个TCP连接速率限制,单位:字节/秒,不限制为0或者不设置这个头部。
iprate:用户IP的单个TCP连接速率限制,单位:字节/秒,不限制为0或者不设置这个头部。
upstream:使用的上级,没有为空,或者不设置这个头部。

提示:
1.如果不需要客户端用户名密码认证,可以加上--auth-nouser,每次访问仍然会访问认证地址--auth-url进行认证。只是php接口里面接收的$user认证用户名和$pass认证密码都为空。
2.连接数限制优先级:用户认证文件速率限制-》文件ip.limit速率限制-》API用户速率限制-》API的IP速率限制-》命令行全局连接数限制。
3.速率限制优先级:用户认证文件速率限制-》文件ip.limit速率限制-》API用户速率限制-》API的IP速率限制-》命令行全局速率限制。
3.上级获取优先级:用户认证文件的upstream-》文件ip.limit的upstream-》API的upstream-》命令行指定的上级。


http代理的upstream只支持http(s)代理,不支持认证,如需要认证可以用sps代替,格式:
  `http://127.0.0.1:3100?parent-type=tcp&timeout=5000`
socks代理的upstream只支持socks5代理,格式:
  `socks://127.0.0.1:3100?parent-type=tcp&timeout=5000`
  解释:`http://`,`socks://` 是固定的,`127.0.0.1:3100`是上级的地址,`?`后面是参数:参数名称=参数值,多个参数用`&`连接。
  url里面支持的所有参数如下,和命令行同名参数意义一致。
  1. parent-type : 上级底层传输类型,支持 tcp,tls,ws,wss
  2. parent-ws-method : 上级底层ws传输类型的加密方法,支持的值和命令行支持的值范围一样
  3. parent-ws-password : 上级底层ws传输类型的加密密码,数字字母组成的密码
  4. parent-tls-single : 上级底层tls传输类型是否是单向tls,可以是:true | false
  5. timeout : 建立tcp连接的超时时间,数字,单位毫秒
  6. ca : 上级底层tls传输类型的ca证书文件经过base64编码后的字符串。
  7. cert : 上级底层tls传输类型的证书文件经过base64编码后的字符串。
  8. key : 上级底层tls传输类型的证书密钥文件经过base64编码后的字符串。

sps代理的upstream支持socks5、http(s)代理,支持认证,格式:

`protocol://a:b@2.2.2.2:33080?argk=argv`

说明: 
  1.protocol:// 是协议类型,可能的类型以及含有如下:
  http  等价于 -S http -T tcp  
  https  等价于 -S http -T tls --parent-tls-single , 也就是http(s)代理 over TLS  
  https2 等价于 -S http -T tls  
  socks5  等价于 -S socks -T tcp  
  socks5s 等价于 -S socks -T tls --parent-tls-single , 也就是socks over TLS  
  socks5s2 等价于 -S socks -T tls  
  ss     等价于 -S ss -T tcp  
  httpws    等价于  -S http -T ws
  httpwss   等价于  -S http -T wss
  socks5ws  等价于  -S socks -T ws
  socks5wss 等价于  -S socks -T wss

  2.`2.2.2.2:33080`
  2.a:b是认证信息(http(s)代理basic认证或者socks5认证)

  3.argk=argv是额外参数,支持的所有参数和http(s)代理支持的upstream的参数一致。

3.增加了认证缓存,对认证结果缓存一定时间,提升性能,降低认证接口压力,--auth-cache 单位秒,默认60, 设置0是关闭缓存。

4.增加了--ip-limit参数控制客户端IP的连接数和连接速率,该参数指定一个文件,一行一条规则,#开头的是注视。
示例文件ip.limit,规则格式如下:
`127.0.0.1????10240:http://192.168.1.1:3100`
规则解释:
`127.0.0.1`是要限制的IP
`100`是这个IP的最大连接数,不限制写0
`10240`是IP单个tcp连接的速率限制,单位是:字节/s,不限制写0
`http://192.168.1.1:3100`是这个IP使用的上级,没有就留空

5.socks/http(s)/sps用户认证文件增加了对控制用户对连接数和连接速率对支持。
认证文件以前是:
user:password
现在可以是:
user:pass????10240:http://192.168.1.1:3100
规则解释:
`user`是认证用户名
`pass`是认证用户密码(不能包含冒号:)
`100`是这个用户的最大连接数,不限制写0
`10240`是这个用户单个tcp连接的速率限制,单位是:字节/s,不限制写0
`http://192.168.1.1:3100`是这个用户使用的上级,没有就留空

6.socks/http(s)/sps用户认证-a参数支持如下写法:
user:pass????10240:http://192.168.1.1:3100
格式和上面一样。

7.修复了socks代理某些情况下是否使用上级判断不准确的问题。

8.修复了http(s)代理,代理http协议时,某些情况下HOST不规范的问题。

9.修复了sps代理上级是SS的时候,某些情况下不能正确处理加密参数的问题。

10.http(s)/socks/sps代理,增加了全局连接数限制参数--max-conns,默认0不限制。

11.为了提供更好的体验,默认情况不再加载当前目录的blocked,direct,stop文件,如需要加载可以用参数显示指定文件。

12.blocked,direct,stop,only,hosts,resolve.rules,rewriter.rules文件支持协议加载:base64://,str://,文件名。

13.修复dns代理,关闭不正确的问题。

特色功能

  • 链式代理,程序本身可以作为一级代理,如果设置了上级代理那么可以作为二级代理,乃至N级代理。
  • 通讯加密,如果程序不是一级代理,而且上级代理也是本程序,那么可以加密和上级代理之间的通讯,采用底层tls高强度加密,安全无特征。
  • 智能HTTP,SOCKS5代理,会自动判断访问的网站是否屏蔽,如果被屏蔽那么就会使用上级代理(前提是配置了上级代理)访问网站;如果访问的网站没有被屏蔽,为了加速访问,代理会直接访问网站,不使用上级代理。
  • 域名黑白名单,更加自由的控制网站的访问方式。
  • 跨平台性,无论你是widows,linux,还是mac,甚至是树莓派,都可以很好的运行proxy。
  • 多协议支持,支持HTTP(S),TCP,UDP,Websocket,SOCKS5代理。
  • TCP/UDP端口转发。
  • 支持内网穿透,P2P传输,协议支持TCP和UDP,针对HTTP的优化穿透。
  • SSH中转,HTTP(S),SOCKS5代理支持SSH中转,上级 Linux 服务器不需要任何服务端,本地一个proxy即可开心上网。
  • KCP协议支持,HTTP(S),SOCKS5代理支持KCP协议传输数据,降低延迟,提升浏览体验.
  • 动态选择上级代理,通过外部API,HTTP(S),SOCKS5,SPS代理可以实现基于用户或者IP的限速,连接数限制,动态获取上级。

  • 灵活的上级分配,HTTP(S),SOCKS5,SPS代理可以通过配置文件实现基于用户或者IP的限速,连接数限制,指定上级。

  • 反向代理,支持直接把域名解析到proxy监听的ip,然后proxy就会帮你代理访问需要访问的HTTP(S)网站。
  • 透明HTTP(S)代理,配合iptables,在网关直接把出去的80,443方向的流量转发到proxy,就能实现无感知的智能路由器代理。
  • 协议转换,可以把已经存在的HTTP(S)或SOCKS5代理转换为一个端口同时支持HTTP(S)和SOCKS5代理,转换后的SOCKS5代理不支持UDP功能,同时支持强大的级联认证功能。
  • 自定义底层加密传输,http(s)\sps\socks代理在tcp之上可以通过tls标准加密以及kcp协议加密tcp数据,除此之外还支持在tls和kcp之后进行自定义加密,也就是说自定义加密和tls|kcp是可以联合使用的,内部采用AES256加密,使用的时候只需要自己定义一个密码即可。
  • 底层压缩高效传输,http(s)\sps\socks代理在tcp之上可以通过自定义加密和tls标准加密以及kcp协议加密tcp数据,在加密之后还可以对数据进行压缩,也就是说压缩功能和自定义加密和tls|kcp是可以联合使用的。
  • 安全的DNS代理,可以通过本地的proxy提供的DNS代理服务器与上级代理加密通讯实现安全防污染的DNS查询。
  • 负载均衡,高可用,HTTP(S)\SOCKS5\SPS代理支持上级负载均衡和高可用,多个上级重复-P参数即可。  

  • 指定出口IP,HTTP(S)\SOCKS5\SPS代理支持客户端用入口IP连接过来的,就用入口IP作为出口IP访问目标网站的功能。如果入口IP是内网IP,出口IP不会使用入口IP

  • 支持限速,HTTP(S)\SOCKS5\SPS代理支持限速。  

  • 支持级联认证。   

  • 支持客户端IP黑白名单,更加安全的控制客户端对代理服务的访问,如果黑白名单同时设置,那么只有白名单生效。socks/http(s)/sps/tcp/udp/dns/内网穿透bridge/内网穿透tbridge,都支持客户端IP黑白名单。

下载地址:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beginning Google Maps API 3

Beginning Google Maps API 3

Gabriel Svennerberg / Apress / 2010-07-27 / $39.99

This book is about the next generation of the Google Maps API. It will provide the reader with the skills and knowledge necessary to incorporate Google Maps v3 on web pages in both desktop and mobile ......一起来看看 《Beginning Google Maps API 3》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具