講解各種代理IP背後的原理:知道代理IP的人越來越多了,不管是單純的換IP,還是進行大量的資料收集,或是遊走於灰色之中,都是離不開代理IP這個工具的
一、代理類型
代理IP共可以分成4種類型。常聽到的透明代理IP,匿名代理IP,高匿名代理IP,還有一種就是混淆代理IP。最基礎的安全程度來說呢,他們的排列順序應該是這個樣子的高匿>混淆>匿名>透明。
二、代理原理
代理類型主要取決於代理伺服器端的配置。不同配置會形成不同的代理類型。在配置中,這三個變數REMOTE_ADDR,HTTP_VIA,HTTP_X_FORWARDED_FOR是決定性因素。
1)REMOTE_ADDR
REMOTE_ADDR表示客戶端的IP,但它的值不是由客戶端提供的,而是伺服器根據客戶端的IP指定的。
如果使用瀏覽器直接造訪某個網站,那麼網站的web伺服器(Nginx、Apache等)就會把REMOTE_ADDR設為客戶端的IP位址。
如果我們為瀏覽器設定代理,我們造訪目標網站的請求會先經過代理伺服器,然後由代理伺服器將請求轉換到目標網站。那麼網站的web代理伺服器就會把REMOTE_ADDR設為代理伺服器的IP。
2)X-Forwarded-For(XFF)
X-Forwarded-For是一個HTTP擴充頭部,用來表示HTTP請求端真實IP。當客戶端使用了代理程式時,web代理伺服器就不知道客戶端的真實IP位址。為了避免這個狀況,代理伺服器通常會增加一個X-Forwarded-For的頭信息,把客戶端的IP加到頭資訊裡面。
X-Forwarded-For請求頭格式如下:
X-Forwarded-For:client,proxy1,proxy2
client表示客戶端的IP位址;proxy1是離服務端最遠的設備IP;proxy2是次級代理設備的IP;從格式中,可以看出從client到server是可以有多層代理的。
如果一個HTTP請求到達伺服器之前,經過了三個代理Proxy1、Proxy2、Proxy3,IP分別為IP1、IP2、IP3,用戶真實IP為IP0,那麼按照XFF標準,服務端最終會收到以下資訊:
X-Forwarded-For:IP0,IP1,IP2
Proxy3直連伺服器,它會給XFF追加IP2,表示它是在幫Proxy2轉送請求。清單中並沒有IP3,IP3可以在服務端透過RemoteAddress欄位取得。我們知道HTTP連接是基於TCP連接,HTTP協定中沒有IP的概念,RemoteAddress來自TCP連接,表示與服務端建立TCP連接的設備IP,在這個例子裡就是IP3。
3)HTTP_VIA
via是HTTP協定裡面的一個header,記錄了一次HTTP請求所經過的代理和網關,經過1個代理伺服器,就添加一個代理伺服器的信息,經過2個就添加2個。
三、代理的選擇
普通的匿名代理IP能隱藏客戶機的真是IP,但是也會改變我們的請求訊息,伺服器端有可能會認為我們使用了代理。不過使用此種代理時,雖然被造訪的網站不能知道客戶端的IP位址,但仍然可以知道你在使用代理,當然某些能夠偵測IP的網頁仍然可以查到客戶端的IP。
而高度匿名代理請添加連結描述不改變客戶機的請求,這樣在伺服器看來就像有個真正的客戶瀏覽器在訪問它,這時客戶的真實IP是隱藏的,伺服器端不會認為我們使用了代理。
因此,爬蟲程序需要使用到爬蟲代理ip時,盡量選擇普通匿名代理和高匿名代理。另外,如果要確保資料不被代理伺服器知道,建議使用HTTPS協定的代理。
使用以下代理就能安全高效代理ip
請通過郵件聯繫客服
我們將在24小時內通過電子郵件回复您
For your payment security, please verify