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