一篇文章讓你知道代理IP的原理和分類!在爬取一些網站時,我們經常會設置代理IP,以避免爬蟲被攔截。我們獲取代理IP地址的方法通常提取國內知名IP代理的免費代理和撥號VPS。這些代理通常提供透明代理、匿名代理和高低代理。那么這些代理之間有什么區別呢?我們應該如何選擇?本文的主要內容是解釋各種代理IP背后的原理。
1種代理類型
有四種類型的代理。除了前面提到的透明代理、匿名代理、高低代理和混淆代理。在安全性方面,這四類代理的排序為高低>混淆>匿名>透明。
2代理原則
代理類型主要取決于代理服務器的配置。不同的配置將導致不同的代理類型。在配置中,這三個變量,遠程ADDR、HTTP_VIA和HTTP_X_FORWARDED_FOR,是決定性因素。
1)遠程_ADDR
REMOTE_ADDR代表客戶端的IP,但它的值不是由客戶端提供的,而是由服務器根據客戶端的IP指定的。
如果使用瀏覽器直接訪問網站,則為網站的web服務器(Nginx、Apache等)。)會將REMOTE_ADDR設置為客戶端的IP地址。
如果我們為瀏覽器設置代理,我們訪問目標網站的請求將首先通過代理服務器,然后代理服務器將請求轉換為目標網站。然后網站的網絡服務器將遠程ADDR設置為代理服務器的IP。
2)X-轉發-針對(XFF)
x-forward-For是一個HTTP擴展頭,用來表示HTTP客戶端的真實IP。當客戶端使用代理時,網絡服務器不知道客戶端的真實IP地址。為了避免這種情況,代理服務器通常會添加一個X-forward-For報頭信息,并將客戶端的IP地址添加到報頭信息中。
轉發請求報頭的格式如下:
轉發給:客戶端,代理1,代理2
客戶端代表客戶端的IP地址;Proxy1是距離服務器最遠的設備的IP;Proxy2是輔助代理設備的IP;從格式中,我們可以看到從客戶端到服務器可以有多層代理。
如果一個HTTP請求通過三個代理,Proxy1、Proxy2和Proxy3,分別帶有IP1、IP2和IP3,而用戶的真實IP是IP0,那么根據XFF標準,服務器最終會收到以下信息:
x-轉發-適用于:IP0、IP1、IP2
代理3直接連接到服務器,它會將IP2添加到XFF,表示它正在轉發代理2的請求。列表中沒有IP3,可以通過遠程地址字段在服務器中獲取IP3。我們知道HTTP連接是基于TCP連接的,HTTP協議中沒有IP的概念。遠程地址來自TCP連接,這意味著與服務器建立TCP連接的設備的IP,在本例中是IP3。
3)HTTP_VIA
Via是HTTP協議中的一個頭,它記錄了HTTP請求通過的代理和網關。在一個代理服務器之后,添加一個代理服務器的信息,在兩個之后,添加兩個。
3代理類型差異
1)透明代理
代理的配置如下:
遠程ADDR =代理IP
HTTP_VIA =代理IP
HTTP_X_FORWARDED_FOR =您的IP
雖然透明代理可以直接“隱藏”客戶端的IP地址,但它仍然可以從HTTP_X_FORWARDED_FOR中找到客戶端的IP地址。
2)匿名代理
代理的配置如下:
遠程ADDR =代理IP
HTTP_VIA =代理IP
HTTP_X_FORWARDED_FOR =代理IP
匿名代理可以提供隱藏客戶端IP地址的功能。通過使用匿名代理,服務器可以知道客戶端使用了代理,但無法知道客戶端的真實IP地址。
3)扭曲代理
代理的配置如下:
遠程ADDR =代理IP
HTTP_VIA =代理IP
HTTP _ X _ FORWARDED _ FOR =隨機IP地址
原理類似匿名代理,但會更現實。如果客戶端使用混淆代理,服務器仍然可以知道客戶端正在使用代理,但它將獲得一個虛假的客戶端IP地址。
2)精英代理或高匿名代理。
代理的配置如下:
遠程ADDR =代理IP
HTTP_VIA =未確定
HTTP_X_FORWARDED_FOR =未確定
高隱藏代理不僅可以使服務器不清楚客戶端是否在使用代理,還可以保證服務器無法獲得客戶端的真實IP地址。
4.代理人的選擇
普通的匿名代理可以隱藏客戶端的真實IP,但是會改變我們的請求信息,服務器可能會認為我們使用了代理。但是在使用這個代理的時候,雖然被訪問的網站不能知道客戶端的IP地址,但是它還是可以知道你在使用代理。當然,一些可以檢測IP的網頁還是可以找到客戶端的IP的。
高度匿名的代理不會改變客戶端的請求,因此看起來像是一個真正的客戶端瀏覽器正在訪問服務器。這時客戶端的真實IP是隱藏的,服務器不會認為我們使用了代理。
因此,當爬蟲需要使用代理IP時,盡量選擇普通匿名代理和高匿名代理。此外,如果您想確保代理服務器不知道數據,建議使用HTTPS協議的代理。