隧道代理Pro开发手册
总览
新手开发者可通过如下2个步骤使用隧道代理Pro:
一、购买成功后,先在会员中心查看隧道信息,进行本地调试和验证。
二、参考代码样例请求隧道代理访问目标网站。
三、隧道代理Pro使用非常灵活,可以设置ip地区、换ip周期、质量优先、速度优先等,设置方式点击查看。
API接口
隧道代理ProAPI接口一览
接口名称 | 接口功能 |
---|---|
TpsProCurrentIp | 查询隧道当前IP |
GetTpsPro | 获取隧道代理Pro IP |
GetIpWhitelist | 获取隧道IP白名单 |
SetIpWhitelist | 设置隧道IP白名单 |
AddWhiteIP | 添加白名单IP |
DelWhiteIP | 删除白名单IP |
GetProxyAuthorization | 获取隧道鉴权信息 |
GetTpsProvCode | 获取隧道代理Pro省份编码 |
GetTpsCityCode | 获取隧道代理Pro城市编码 |
测试隧道可用性
隧道代理支持白名单和用户名密码两种验证方式,建议您先在本机测试,测试OK后就可以正常使用了。
关于IP白名单数量
如果您选择设置白名单访问隧道,最多可设置50个白名单IP。
只要请求不超过购买时选择的每秒并发数,通过用户名密码访问隧道的IP数量没有限制。
ip地区、换ip周期、自定义资源调度策略
管理台设置
您可以在会员中心-隧道代理订单管理里查看和修改当前的地区、周期配置、自定义资源调度策略,修改成功后一分钟内生效。
编码设置
您可以在用户名后面添加不同参数来控制隧道的转发,例如您的用户名为t2964279696
,密码为jkr369ry
,参数说明如下:
period 指定换ip周期
以这样的格式{username}-period-{1}:{password}
传入period参数(单位:分钟),取值范围0.25、0.5、1-30之间的整数,没有传入period
参数即每次请求更换ip。
t2964279696-period-0.25:jkr369ry # 每15s更换ip
t2964279696-period-0.5:jkr369ry # 每30s更换ip
t2964279696-period-1:jkr369ry # 每1min更换ip
t2964279696-period-2:jkr369ry # 每2min更换ip
对于换ip周期,可以配合参数
sid
使用,即传入不同的period
+sid
能指定多条通道,例如您的使用场景,需要30s换ip、1min换ip等多种不同周期的ip。sid为长度不超过6的任意字符。
t2964279696-period-0.5-sid-s01:jkr369ry # 每30s更换ip通道
t2964279696-period-1-sid-s02:jkr369ry # 每1min更换ip通道
... # Pro可以设置多条通道
area、prov、city 指定出口ip地区
area
七大自然地理分区:
华北地区 NC(North China 包含:北京,天津,河北,山西,内蒙古)
华东地区 EC(East China 包含:上海,江苏,浙江,山东,安徽)
东北地区 NEC(Northeast China 包含:辽宁,吉林,黑龙江)
华中地区 CC(Central China 包含:湖北,湖南,河南,江西)
华南地区 SC(South China 包含:广东,广西,海南,福建)
西南地区 SWC(Southwest China 包含:四川,重庆,贵州,云南,西藏)
西北地区 NWC(Northwest China 包含:陕西,甘肃,新疆,青海,宁夏)
t2964279696-area-NC:jkr369ry # 指定华北地区
t2964279696-area-CC:jkr369ry # 指定华中地区
prov
省份编码, city
城市编码,可以通过快代理提供的api获取,GetTpsProvCode 获取省份编码、GetTpsCityCode 获取城市编码。t2964279696-prov-44:jkr369ry # 指定广东省
t2964279696-city-420100:jkr369ry # 指定湖北省武汉市
当同时设置多个地区参数时,以精度最高的地区参数为准,即设置
area-CC-prov-41-city-130900
时,只有city参数生效
pool 自定义资源调度策略
pool
取值范围:1. ip资源调度以速度优先(s1-10),其中s10>s1 2. ip资源调度以质量优先(q1-10),其中q10>q1。不传入pool参数则使用系统的智能转发策略。
t2964279696-pool-s2:jkr369ry
t2964279696-pool-s8:jkr369ry
t2964279696-pool-q2:jkr369ry
t2964279696-pool-q10:jkr369ry
您可以根据使用场景,灵活组合参数period、sid、area、prov、city、pool
,例如
t2964279696-period-1-sid-s01-city-420100:jkr369ry # 武汉市每分钟换ip
t2964279696-period-1-sid-s01-city-420100-pool-s10:jkr369ry # 武汉市每分钟换ip,且速度优先调度
t2964279696-period-3-area-CC:jkr369ry # 华中地区每3分钟换ip
...
当您通过编码方式设置地区、周期,资源调度策略时,系统会忽略您在会员中心-隧道代理订单管理里的地区、周期,资源调度策略。
频率限制
隧道代理的请求频率在购买时选择的并发数决定,默认的并发数是1秒5次。
请求超过频率可能收到441
错误。
建议经常关注隧道使用统计的频率提示,把握好请求频率。
并发数不够用可在隧道管理页升级并发数。
频率控制提示
隧道代理采用弹性频率控制,允许短期超出并发规格,使更多使用场景得以顺利运行。
如果您持续请求超频,超出部分的请求将被拒绝。
错误码一览
HTTP返回码 | Response body 内容 | 说明 |
---|---|---|
407 | 情况一:Proxy Authentication Failed:%auth 情况二:White IP Failed:$client_ip |
情况一:用户名密码验证失败 情况二:白名单验证失败 |
440 | Bandwidth Over Limit | 带宽超限 |
441 | Request Rate Over Limit | HTTP请求/TCP连接超频 |
442 | Authentication Type Error | 认证方式检测失败 |
443 | Foreign Client Forbidden | 禁止海外客户端 |
444 | Download Not Allowed | 禁止下载文件 |
445 | illegal Request Forbidden | 非法的请求 |
446 | Host DNS Failed | DNS解析错误 |
447 | Real-name Authentication Required | 需要实名认证 |
448 | Target Port Forbidden | 禁止访问目标端口 |
449 | Foreign Host Forbidden | 禁止访问境外网址 |
450 | IP As Host Forbidden | 禁止通过IP访问 |
451 | Miss Host | 代理请求格式不正确 |
452 | Public Host Required | 目标地址不是公网IP |
453 | Proxy Port Error | 使用了错误的端口号 |
454 | Proxy Authentication Expired | 代理验证过期 |
457 | Backend Proxy Bandwidth Over Limit | 上级代理带宽超限 |
458 | Backend Proxy Refused | 上级代理拒绝连接 |
464 | Invalid Param | username中携带的参数不合法 |
458 | Null Proxy | 所选地区没有ip资源 |
462 | Target Domain WhiteList Not Match | 目标域名白名单不匹配 |
463 | Target Domain BlackList Forbidden | 目标域名黑名单禁止访问 |
503 | Proxy Connect Error | 连接目标网站失败 |
隧道使用统计
隧道使用统计功能提供了对请求量和请求错误的统计分析。
您可以随时关注采集程序的运行走势,了解发生的错误并及时修正。我们还为几种常见的错误提供了分析和提示,帮助您提升采集程序运行的成功率。
隧道带宽监控方便您跟踪平均带宽和峰值带宽占用。 通过带宽监控折线图,您可以更好地把控带宽使用情况。
开发建议
参考如下开发建议,可以帮助您更加顺利地完成开发和调试:
- 控制好请求频率,用同一IP请求同一网站建议不超过1秒1次,避免IP被目标网站屏蔽。
- 建议关闭HTTP协议的keep-alive功能,避免因连接复用导致隧道不能切换IP
- 尽可能采用gzip压缩加速访问,在header里添加:Accept-Encoding: gzip
- 关注隧道返回码可协助您排查错误。
使用gzip详解
使用gzip压缩传输数据可显著提升访问速度,方法非常简单:
只需在http请求的header里加上:
Accept-Encoding: gzip
收到HTTP Response后检查header里是否包含:
Content-Encoding: gzip
如果包含,则对body进行gzip解压,就能得到原始内容。