产品说明
隧道代理提供统一的入口地址,用户成功接入后,每一个请求都是一个随机 IP。
隧道验证方式
目前隧道支持两种授权验证模式:
请求头验证
通过用户名/密码的形式进行身份认证,该认证信息最终会转换为『Proxy-Authorization』协议头跟随请求一起发送给隧道代理服务器(注:该请求头不会发送给目标服务器)。
通过浏览器使用HTTP隧道,请设置浏览器代理的服务器地址及端口。设置并保存配置后,在浏览器中打开任意网址,会弹出一个授权验证窗口,输入隧道的“应用id” 及 “应用密码” 后,确认即可。
在代码中使用HTTP隧道时,如果代码的HTTP请求方法不支持以用户名/密码的形式设置身份认证信息,则需要手动为每个 HTTP 请求增加『Proxy-Authorization』协议头,其值为 『Basic <base64>』。其中『<base64>』为 “应用id” 和 “应用密码” 通过 『:』 拼接后,再经由 BASE64 编码得到的字符串。 正确设置后,发出的请求都将包含如下格式的 HTTP协议头信息:
Proxy-Authorization:Basic MTIzNDU2Nzg5MDEyMzQ1Njc4OmFiY2RlZmdo
绑定IP验证
只须绑定用户发起请求的服务器IP即可。
一条隧道最多绑定5个IP,同一IP可以分别绑定到短效版、动态转发版隧道各一条。
https://api.xiaoxiangdaili.com/app/bindIp?appKey=应用id&appSecret=应用密码&i=序号(1-5,默认1)
说明:如果白名单不是固定IP,并且采用绑定IP验证模式的话,建议定时调用该接口,一旦终端IP发生变化,隧道会自动绑定新的终端IP。
隧道代理服务器地址
隧道代理(短效版)代理服务器地址为:http-short.xiaoxiangdaili.com
, 端口:10010
隧道代理(动态转发)代理服务器地址为:
服务器地址 | 端口 | 并发抵扣比例 |
---|---|---|
http-dynamic.xiaoxiangdaili.com | 10030 | 1 |
http-dynamic-S02.xiaoxiangdaili.com | 10030 | 0.8 |
http-dynamic-S03.xiaoxiangdaili.com | 10030 | 1 |
http-dynamic-S04.xiaoxiangdaili.com | 10030 | 1 |
隧道代理(动态转发)代理服务器说明
1. 您可自由选择将要接入的服务器地址,每个隧道服务器后端的代理池是一样的,仅仅是供应商、所在地区、和负载不一样,所以设置了不同的并发抵扣比例。
2. 已支持同一个应用账号同时接入多个隧道服务器。
3. 关于并发的计算与限速逻辑:
- (1) 为了支持瞬时高并发,我们已将并发限速逻辑改为以分钟为单位,即平台购买的5并发/秒的应用,实际是以300并发/分钟进行的限速,只有1分钟超过300的请求才会被拒绝。
-
(2) 根据服务器不同,系统定义的并发抵扣比例也不同。
(a) 假设服务器A与服务器B的并发抵扣比例分别为1和0.8,某应用在一分钟之内实际请求数为1000,那么如果使用的是服务器A,则并发数记为1000 * 1 = 1000;如果是服务器B,则并发数记为:1000 * 0.8 = 800。(b) 如果该应用购买的是15并发/秒(即900并发/分钟)套餐,那么使用服务器A的话,会有100个请求被服务器拒绝,而服务器B则可以全部正常转发处理。 -
(3) 应用的计算并发数 = 该应用在所有隧道服务器上的并发之和。
(a) 仍以上述服务器A、B为例,某应用同时使用两个服务器,在一分钟之内分别请求1000次,那么该应用在这一分钟的实际并发为 1000 * 1 + 1000 * 0.8 = 1800。
代理IP手动更换方式(仅限短效版)
在 HTTP 请求中增加键为『Proxy-Switch-Ip』, 值为『true』的协议头信息,应用程序将请求通过隧道发出后,HTTP隧道会立刻提取一个新的IP,当前请求和随后发起的请求都会通过新的 IP地址 进行转发。(每次更换的IP最低使用时长为10秒,低于10秒内的多次更换指令将会被忽略)
软件接入指南
语言接入指南
注意
- Java8以上版本,请在运行的时候,加上
-Djdk.http.auth.tunneling.disabledSchemes=""
。 具体原因请参考: Unable to tunnel through proxy since Java 8 Update 111 - 使用Python2 的示例代码访问 HTTPS 协议的 URL 会有问题,建议使用 Python3。
常见错误码
错误码 | 提示信息 | 说明 |
---|---|---|
407 | No Proxy-Authorization or Authorization can be found | 请设置请求头Proxy-Authorization或者Authorization |
407 | Appkey is not a number | appkey必须是数字 |
407 | Not found | 应用不存在 |
407 | Disabled | 应用已被禁用 |
407 | Expired | 应用已过期 |
407 | Not found or expired | 应用不存在或已过期 |
407 | Wrong password | 密码错误 |
407 | Proxy type mismatch | 产品类型不匹配 |
429 | Too Many Requests | 超过并发限制,请降低频率或者使用调整隧道代理套餐 |
500 | Unknown exception | 未知异常 |