产品说明

隧道代理提供统一的入口地址,用户成功接入后,每一个请求都是一个随机 IP。

隧道验证方式

目前隧道支持两种授权验证模式:

请求头验证

通过用户名/密码的形式进行身份认证,该认证信息最终会转换为『Proxy-Authorization』协议头跟随请求一起发送给隧道代理服务器(注:该请求头不会发送给目标服务器)。

每一条HTTP隧道都拥有独立的应用账号,即 “应用id:应用密码”,可在产品管理页面查看,
通过浏览器使用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秒内的多次更换指令将会被忽略)

软件接入指南

语言接入指南

注意

  1. Java8以上版本,请在运行的时候,加上 -Djdk.http.auth.tunneling.disabledSchemes=""。 具体原因请参考: Unable to tunnel through proxy since Java 8 Update 111
  2. 使用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 未知异常