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黑白名单。

下载地址:


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

查看所有标签

猜你喜欢:

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

共享经济

共享经济

[美] 罗宾•蔡斯 / 王芮 / 浙江人民出版社 / 2015-9-25 / 59.90元

[内容简介]  在当今这个稀缺的世界里,人人共享组织可以创造出富足。通过利用已有的资源,如有形资产、技术、网络、设备、数据、经验和流程等,这些组织可以以指数级成长。人人共享重新定义了我们对于资产的理解:它是专属于个人的还是大众的;是私有的还是公有的;是商业的还是个人的,并且也让我们对监管、保险以及管理有了重新的思索。  在这本书中,罗宾与大家分享了以下观点:  如何利用过剩......一起来看看 《共享经济》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

在线进制转换器
在线进制转换器

各进制数互转换器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具