常見爬蟲/BOT 對抗技術簡介(二)


 

上一篇文章分別從網絡協議,Robots文件,JS渲染,行為分析等多方面講了些“反爬蟲”,“反-反爬蟲”技術。

點擊查看《常見爬蟲/BOT 對抗技術簡介(一)》

 

本文將主要介紹各種IP地址的獲取及接入方式

2.2 VPN

VPN是一個大家耳熟能詳的技術。VPN最常用於連接辦公網,以及規避流量審計。在WIKI中, VPN的定義如下:

虛擬私人網絡(英語:Virtual Private Network,縮寫為VPN)是一種常用於連接中、大型企業或團體與團體間的私人網絡的通訊方法。它利用隧道協議(Tunneling Protocol)來達到保密、發送端認證、消息准確性等私人消息安全效果,這種技術可以用不安全的網絡(例如:互聯網)來發送可靠、安全的消息。需要注意的是,加密消息與否是可以控制的,如果是沒有加密的虛擬專用網消息依然有被竊取的危險。

我們都知道,我們的網絡模型用OSI來描述是7層,分別是應用層、表達層、會話層、傳輸層、網絡層、鏈路層、物理層。

正常的網絡連接, 是完整的7層網絡,VPN的原理是通過其中某一層,重新從鏈路層開始傳輸。

舉個例子,PPTP協議就是把第二層的PPP幀,用GRE協議包裝,在IP層上傳輸。所以PPTP是 PPP over IP . L2TP是把PPP幀封裝為UDP包,所以是 PPP over UDP。

用這種方式,也可以理解代理的工作方式,例如,Socks5代理就是 TCP over TCP, HTTP代理是 TCP over HTTP。

只要涉及到改變IP,必然涉及到網絡通信協議的重新組裝,並在一個層面上重新實現了這個層面或者比這個層面更底層的功能。

由於連接了VPN的用戶可以將本地的數據通過VPN路由,所以VPN也是一種“改變IP”的方式。

2.2.1 簡單 VPN

簡單的VPN組網非常直觀,即客戶計算機連接至遠程服務器,在本地產生一個虛擬網卡,並將本地的所有流量路由至該網卡。
遠程的服務器將用戶流量從其中一個網卡(可能是物理的、也有可能是PPP的)發出。

2.2.2 混合網絡VPN

有意思的是目前國內存在一種混合網絡VPN的產品, 本質上是各地的服務器加入到同一個VPN中,用戶的VPNClient連接至中心服務器后,

中心服務器在路由表中為此用戶隨機指定一個VPN網關,實現用戶連接同一個VPN服務器,但出口IP是全國隨機的

 

2.3 VPS

VPS 是目前非常常見的一種IT服務, 向用戶提供一個遠程的服務器,本質上是KVM虛擬機。

通常,在提供VPS服務時,還會向用戶提供一個外網IP地址,所以很多爬蟲就利用VPS提供的IP地址來解決IP問題。

目前國內有許多優秀的VPS提供商,比如我們已經很熟悉的阿里雲、騰訊雲,還有不太常見的青雲、華為雲等等。

2.3.1 混撥VPS

國內還有一個很有意思的VPS服務,叫做混撥VPS。 它的效果是, 你在它提供的VPS服務器上發起PPP連接(撥號), 每次可以通過這個PPP連接為你提供不同地區的IP地址。 它的實現方式是EtherIP。

何謂PPPOE?

2.4 PPPoE (家庭寬帶)

PPP協議也叫點對點協議(英語:Point-to-Point Protocol,PPP),是一個歷史悠久的協議,定義於1992年,備忘錄編號RFC 1331。

它的另外一個名字更為我們所熟知——寬帶撥號。 當前我們所用的寬帶連接技術,無論ADSL還是光纖接入,在數據鏈路層上,都使用PPP技術。我們在運營商辦理寬帶時,如果采用ADSL接入, 運營商會為我們提供一個ADSL Modem,如果使用光纖接入, 運營商為我們提供一個光貓,也叫ONU。 ONU 與 ADSL Modem 為我們建立了與ISP通信的物理層,我們會發現,直接將光貓或ADSL Modem上面的以太網口接入電腦是不行的, 這是因為由於運營商需要AAA,也就是 驗證、授權和記賬(Authentication、Authorization、Accounting )。 在我們看來,我們需要“撥號” 才能上網。 “撥號”,就是建立了一個PPP連接。 PPP協議提供了認證的能力, 這也就是為什么我們在“撥號”的時候,可以輸入 用戶名、密碼。 而運營商可以通過用戶名和密碼來對我們進行認證的原因。

在建立了PPP連接之后, 在操作系統看來, PPP連接表現為一個網卡,當然這個網卡並不是物理上的網卡,而是一個虛擬的邏輯網卡, 與這個邏輯的網卡進行通信,PPP協議的驅動程序會自動為我們完成PPP協議的封包和拆包工作, 在我們看來,除了由於PPP協議的8個字節開銷,導致MTU比正常的要小一些之外, 這個網卡和一般的物理網卡工作起來並沒有什么區別。

一般來說,在PPP連接建立之后, 遠端的ISP設備, 稱為BAS(接入服務器),會為PPP鏈接的客戶端賦予一個IP地址. 這個IP地址在幾年前一般都是公網IP地址, 現在有很多是NAT過的IP地址. 它們來源於BAS服務器上配置的地址池,通常IP地址池的划分是於區縣級的,也有部分城市經過改造,可能是市級,甚至是省級的。

PPP撥號在爬蟲對抗中是很可靠的IP來源,因為它與用戶的IP段重合,如果服務提供商貿然封殺IP,會導致嚴重的誤殺, 當然局限性也很大,如果想獲取一個地區IP地址,就需要在這個地區架設機房。所需要的時間精力比較大。

2.5 4G

4G網是近幾年已經迅速成熟的移動通信技術。按照ITU的定義,靜態傳輸速率達到1Gbps,用戶在高速移動狀態下可以達到100Mbps,就可以作為4G的技術之一。據2018年上半年的統計數據,4G用戶總數達到11.1億戶。 比傳統的寬帶接入方式用戶數要大得多, 4G接入方式的IP段與家庭寬帶的IP段互不重合,是獨立的IP段。與家庭寬帶來源相比,4GIP段NAT的情況要更加嚴重, 與用戶的重合度更好。 在爬蟲對抗的過程中,誤殺率會更高。 是更有效的代理IP來源。

 

接下來我會介紹其他的的IP層反-反爬蟲方案。

目錄如下

2.2 VPN
2.3.1 簡單 VPN
2.3.2 混合網絡VPN

2.3 VPS
2.4 單機PPP撥號
2.5 並發PPP撥號

三、並發PPP連接技術簡介
3.1 PPP協議棧簡單介紹
3.2 PPP連接和ADSL的關系
3.3 城域網技術簡介
3.4 並發PPP連接方案的適用范圍
3.5 國內並發PPP連接服務提供商

四、Linux路由
4.1 Linux基礎路由簡介
4.2 Linux高級路由簡介

三、並發PPP連接技術簡介
3.1 PPP協議棧簡單介紹
3.2 PPP連接和ADSL的關系
3.3 城域網技術簡介
3.4 並發PPP連接方案的適用范圍
3.5 國內並發PPP連接服務提供商

四、Linux路由
4.1 Linux基礎路由簡介
4.2 Linux高級路由簡介

 

綜上所述,使用代理IP是解決反扒機制的最佳解決方案,也是最簡單有效的。

為此,我個人研發了一款代理IP池項目,現歡迎大家內測體驗~

傳送門:www.2808proxy.com

解決爬蟲的IP源問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM