隧道代理開發(fā)手冊
總覽
新手開發(fā)者可通過如下2個步驟使用隧道代理:
一、購買成功后,先在會員中心查看隧道信息,進(jìn)行本地調(diào)試和驗(yàn)證。
二、 參考代碼樣例請求隧道代理訪問目標(biāo)網(wǎng)站。
API接口
隧道代理API接口一覽
接口名稱 | 接口功能 |
---|---|
TpsCurrentIp | 查詢隧道當(dāng)前IP |
ChangeTpsIp | 立即更換隧道IP |
GetTps | 獲取隧道代理IP |
GetIpWhitelist | 獲取隧道IP白名單 |
SetIpWhitelist | 設(shè)置隧道IP白名單 |
AddWhiteIP | 添加白名單IP |
DelWhiteIP | 刪除白名單IP |
GetProxyAuthorization | 獲取隧道鑒權(quán)信息 |
測試隧道可用性
隧道代理支持白名單和用戶名密碼兩種驗(yàn)證方式,建議您先在本機(jī)測試,測試OK后就可以正常使用了。
關(guān)于IP白名單數(shù)量
如果您選擇設(shè)置白名單訪問隧道,最多可設(shè)置50個白名單IP。
只要請求不超過購買時選擇的每秒并發(fā)數(shù),通過用戶名密碼訪問隧道的IP數(shù)量沒有限制。
鎖定IP
對于每次請求更換IP
的隧道代理,如果您需要多個請求使用一個IP(如:登錄時,獲取數(shù)據(jù)的多個請求需要使用同一IP),則可在password
后加上:${任意字符串}
,即可鎖定此IP30秒
。
帶上相同字符串的請求使用同一個IP,不帶字符串的請求隨機(jī)使用IP。示例如下:
通過password
后添加:${任意字符串}
鎖定IP
例如您的訂單用戶名為t18725652473456
,密碼為jkr369ry
普通模式(每次請求換ip):t18725652473456:jkr369ry
鎖定IP模式(同一字符串鎖定同一IP):t18725652473456:jkr369ry:abc
使用多通道
對于換IP周期15秒~1小時
的隧道代理,支持多通道使用,在同一換IP周期內(nèi)每個通道會轉(zhuǎn)發(fā)一個獨(dú)立的代理IP。
目前支持2種轉(zhuǎn)發(fā)模式:
轉(zhuǎn)發(fā)模式 | 說明 |
---|---|
按IP轉(zhuǎn)發(fā) | 來自同一客戶端IP的請求會轉(zhuǎn)發(fā)到固定的通道。 |
隨機(jī)轉(zhuǎn)發(fā) | 每次請求會隨機(jī)轉(zhuǎn)發(fā)到1個通道。 |
您可以在會員中心-隧道訂單管理里查看和修改轉(zhuǎn)發(fā)模式。
您發(fā)起的請求中沒有明確指定轉(zhuǎn)發(fā)哪個通道的情況下,系統(tǒng)會按上述配置進(jìn)行轉(zhuǎn)發(fā)。
編程使用多通道
以10通道的隧道訂單為例,可劃分通道編號為1~10。
您可以在程序中通過如下兩種方式指定轉(zhuǎn)發(fā)到哪個編號的通道:
方式一:通過用戶名密碼指定通道
用戶名
、密碼
和通道號
生成Proxy-Authorization。
例如用戶名為t18725652473456
,密碼為jkr369ry
,本次請求轉(zhuǎn)發(fā)第3號通道
。
t18725652473456:jkr369ry:3
方式二:通過Header指定通道(只支持http)
以本次請求轉(zhuǎn)發(fā)第3號通道
為例,在發(fā)起http請求時攜帶如下Header(Header不區(qū)分大小寫):
kdl-tps-channel: 3
開發(fā)提示
以10通道為例,通道號
的取值無需為1~10,您也可以用任意隨機(jī)數(shù)或字符串作為通道號,系統(tǒng)會自動轉(zhuǎn)換為最終的通道號,確保同一隨機(jī)數(shù)機(jī)或字符串轉(zhuǎn)發(fā)到同一通道,且不同隨機(jī)數(shù)或字符串盡可能均勻轉(zhuǎn)發(fā)到每個通道。
當(dāng)您通過程序指定通道時,系統(tǒng)會忽略您在會員中心-隧道訂單管理里的轉(zhuǎn)發(fā)模式配置。
手動更換IP
對于換IP周期>=1分鐘的隧道代理,隧道會根據(jù)您購買時選擇的周期自動切換IP,但使用途中如果您發(fā)現(xiàn)該IP不可用,可以調(diào)用更換隧道IP接口讓隧道立即更換一個新IP。
手動換IP的頻率限制
在隧道的1個換IP周期內(nèi),調(diào)用更換隧道IP接口換IP的次數(shù)不能超過2次。
舉例說明:您購買的是5分鐘換IP的隧道,那么5分鐘內(nèi)您最多可以調(diào)用此接口2次。
頻率限制
隧道代理的請求頻率在購買時選擇的并發(fā)數(shù)決定,默認(rèn)的并發(fā)數(shù)是1秒5次。
請求超過頻率可能收到441
錯誤。
建議經(jīng)常關(guān)注隧道使用統(tǒng)計(jì)的頻率提示,把握好請求頻率。
并發(fā)數(shù)不夠用可在隧道管理頁升級并發(fā)數(shù)。
頻率控制提示
隧道代理采用彈性頻率控制,允許短期超出并發(fā)規(guī)格,使更多使用場景得以順利運(yùn)行。
如果您持續(xù)請求超頻,超出部分的請求將被拒絕。
錯誤碼一覽
HTTP返回碼 | Response body 內(nèi)容 | 說明 |
---|---|---|
407 | 情況一:Proxy Authentication Failed:%auth 情況二:White IP Failed:$client_ip |
情況一:用戶名密碼驗(yàn)證失敗 情況二:白名單驗(yàn)證失敗 |
440 | Bandwidth Over Limit | 帶寬超限 |
441 | Request Rate Over Limit | HTTP請求/TCP連接超頻 |
442 | Authentication Type Error | 認(rèn)證方式檢測失敗 |
443 | Foreign Client Forbidden | 禁止海外客戶端 |
444 | Download Not Allowed | 禁止下載文件 |
445 | illegal Request Forbidden | 非法的請求 |
446 | Host DNS Failed | DNS解析錯誤 |
447 | Real-name Authentication Required | 需要實(shí)名認(rèn)證 |
448 | Target Port Forbidden | 禁止訪問目標(biāo)端口 |
449 | Foreign Host Forbidden | 禁止訪問境外網(wǎng)址 |
450 | IP As Host Forbidden | 禁止通過IP訪問 |
451 | Miss Host | 代理請求格式不正確 |
452 | Public Host Required | 目標(biāo)地址不是公網(wǎng)IP |
453 | Proxy Port Error | 使用了錯誤的端口號 |
454 | Proxy Authentication Expired | 代理驗(yàn)證過期 |
457 | Backend Proxy Bandwidth Over Limit | 上級代理帶寬超限 |
458 | Backend Proxy Refused | 上級代理拒絕連接 |
503 | Proxy Connect Error | 連接目標(biāo)網(wǎng)站失敗 |
隧道使用統(tǒng)計(jì)
隧道使用統(tǒng)計(jì)功能提供了對請求量和請求錯誤的統(tǒng)計(jì)分析。
您可以隨時關(guān)注采集程序的運(yùn)行走勢,了解發(fā)生的錯誤并及時修正。我們還為幾種常見的錯誤提供了分析和提示,幫助您提升采集程序運(yùn)行的成功率。
隧道帶寬監(jiān)控方便您跟蹤平均帶寬和峰值帶寬占用。 通過帶寬監(jiān)控折線圖,您可以更好地把控帶寬使用情況。
開發(fā)建議
參考如下開發(fā)建議,可以幫助您更加順利地完成開發(fā)和調(diào)試:
-
控制好請求頻率,用同一IP請求同一網(wǎng)站建議不超過1秒1次,避免IP被目標(biāo)網(wǎng)站屏蔽。
- 建議關(guān)閉HTTP協(xié)議的keep-alive功能,避免因連接復(fù)用導(dǎo)致隧道不能切換IP
- 盡可能采用gzip壓縮加速訪問,在header里添加:Accept-Encoding: gzip
- 關(guān)注隧道返回碼可協(xié)助您排查錯誤。
使用gzip詳解
使用gzip壓縮傳輸數(shù)據(jù)可顯著提升訪問速度,方法非常簡單:
只需在http請求的header里加上:
Accept-Encoding: gzip
收到HTTP Response后檢查header里是否包含:
Content-Encoding: gzip
如果包含,則對body進(jìn)行gzip解壓,就能得到原始內(nèi)容。