隧道代理开发手册
总览
新手开发者可通过如下2个步骤使用隧道代理:
一、购买成功后,先在会员中心查看隧道信息,进行本地调试和验证。
二、 参考代码样例请求隧道代理访问目标网站。
API接口
隧道代理API接口一览
接口名称 | 接口功能 |
---|---|
TpsCurrentIp | 查询隧道当前IP |
ChangeTpsIp | 立即更换隧道IP |
GetTps | 获取隧道代理IP |
GetIpWhitelist | 获取隧道IP白名单 |
SetIpWhitelist | 设置隧道IP白名单 |
AddWhiteIP | 添加白名单IP |
DelWhiteIP | 删除白名单IP |
GetProxyAuthorization | 获取隧道鉴权信息 |
测试隧道可用性
隧道代理支持白名单和用户名密码两种验证方式,建议您先在本机测试,测试OK后就可以正常使用了。
关于IP白名单数量
如果您选择设置白名单访问隧道,最多可设置50个白名单IP。
只要请求不超过购买时选择的每秒并发数,通过用户名密码访问隧道的IP数量没有限制。
手动更换IP
对于换IP周期>=1分钟的隧道代理,隧道会根据您购买时选择的周期自动切换IP,但使用途中如果您发现该IP不可用,可以调用更换隧道IP接口让隧道立即更换一个新IP。
手动换IP的频率限制
在隧道的1个换IP周期内,调用更换隧道IP接口换IP的次数不能超过2次。
举例说明:您购买的是5分钟换IP的隧道,那么5分钟内您最多可以调用此接口2次。
频率限制
隧道代理的请求频率在购买时选择的并发数决定,默认的并发数是1秒5次。
请求超过频率可能收到429
错误。
建议经常关注隧道使用统计的频率提示,把握好请求频率。
并发数不够用可在隧道管理页升级并发数。
频率控制提示
隧道代理采用弹性频率控制,限制长期平均频率,允许短期高并发。
以并发数5次/s为例,快代理隧道允许客户在1秒内请求达到100次,1分钟不超过300次即可。
注意控制好平均频率不要超,如果您持续过快请求,比如10秒就请求了300次,后续的50秒的请求将全部因超频而被拒绝,直到下一分钟恢复额度。
错误码一览
HTTP返回码 | Response body内容 | 说明 |
---|---|---|
407 | 情况一:White IP Failed: $client_ip 情况二:Proxy Authentication Failed: $auth 情况三:Proxy Auth Method Failed |
情况一:没有通过IP白名单验证 情况二:用户名密码错误,验证失败 情况三:设置的验证方式和使用的验证方式不符 |
413 | Bandwidth Over Limit | 带宽超过限制 |
429 | Frequency Over Limit | 请求频率超过限制 |
443 | IP Forbidden | 客户端IP被临时屏蔽 |
444 | Download Forbidden | 禁止下载此文件 |
445 | Access Forbidden | 禁止访问该网站 |
446 | Over Max Connection | 超过最大并发连接数 |
447 | Real Name Verify Required | 账户需要实名认证 |
448 | Please use HTTP Port | 使用错误的HTTP端口 |
449 | Foreign Access Forbidden | 禁止访问境外域名 |
502 | 情况一:Proxy Unexpect Error 情况二:DNS Resolve Error 情况三:Proxy Bad Server |
情况一:客户端请求报文异常,解析失败 情况二:DNS解析错误 情况三:连接目标服务器异常 |
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解压,就能得到原始内容。