咨詢電(diàn)話(huà):023-88959644    24小(xiǎo)時(shí)服務熱線:400-023-8809
NEWS CENTER ·
新聞動态
關注中技(jì)互聯 關注前沿

Linux如何架設代理(lǐ)服務器(qì)

發表日期:2014-11-05    文章編輯:    浏覽次數(shù):40    标簽:

一、代理(lǐ)服務器(qì)概述

1.1什麽是代理(lǐ)服務器(qì)

在TCP/IP網絡中,傳統的通(tōng)信過程是這樣的:客戶端向服務器(qì)請(qǐng)求數(shù)據,服務器(qì)響應該請(qǐng)求,将數(shù)據傳送給客戶端。在引入了代理(lǐ)服務器(qì)以後,這一過程變成了這樣:客戶端向服務器(qì)發起請(qǐng)求,該請(qǐng)求被送到代理(lǐ)服務器(qì);代理(lǐ)服務器(qì)分析該請(qǐng)求,先查看自己緩存中是否有(yǒu)請(qǐng)求數(shù)據,如果有(yǒu)就直接傳送給客戶端,如果沒有(yǒu)就代替客戶端向該服務器(qì)發出請(qǐng)求。服務器(qì)響應以後,代理(lǐ)服務器(qì)将響應的數(shù)據傳送給客戶端,同時(shí)在自己的緩存中保留一份該數(shù)據的拷貝。這樣,再有(yǒu)客戶端請(qǐng)求相同的數(shù)據時(shí),代理(lǐ)服務器(qì)就可(kě)以直接将數(shù)據傳送給客戶端,而不需要再向該服務器(qì)發起請(qǐng)求。

1.2代理(lǐ)服務器(qì)的功能

一般說來(lái),代理(lǐ)服務器(qì)具有(yǒu)以下的功能:

1.通(tōng)過緩存增加訪問速度

随着Internet的迅猛發展,網絡帶寬變得(de)越來(lái)越珍貴。所以為(wèi)了提高(gāo)訪問速度,好多(duō)ISP都提供代理(lǐ)服務器(qì),通(tōng)過代理(lǐ)服務器(qì)的緩存功能來(lái)加快網絡的訪問速度。一般說來(lái),大(dà)多(duō)數(shù)的代理(lǐ)服務器(qì)都支持HTTP緩存,但(dàn)是,有(yǒu)的代理(lǐ)服務器(qì)也支持FTP緩存。在選擇代理(lǐ)服務器(qì)時(shí),對于大(dà)多(duō)數(shù)的組織,隻需要HTTP緩存功能就足夠了。
通(tōng)常,緩存有(yǒu)主動緩存被動緩存之分。所謂被動緩存,指的是代理(lǐ)服務器(qì)隻在客戶端請(qǐng)求數(shù)據時(shí)才将服務器(qì)返回的數(shù)據進行(xíng)緩存,如果數(shù)據過期了,又有(yǒu)客戶端請(qǐng)求相同數(shù)據時(shí),代理(lǐ)服務器(qì)又必須重新發起新的數(shù)據請(qǐng)求,在将響應數(shù)據傳送給客戶端時(shí)又進行(xíng)新的緩存。所謂主動緩存,就是代理(lǐ)服務器(qì)不斷地檢查緩存中的數(shù)據,一旦有(yǒu)數(shù)據過期,則代理(lǐ)服務器(qì)主動發起新的數(shù)據請(qǐng)求來(lái)更新數(shù)據。這樣,當有(yǒu)客戶端請(qǐng)求該數(shù)據時(shí)就會(huì)大(dà)大(dà)縮短(duǎn)響應時(shí)間(jiān)。還(hái)需要說明(míng)的是,對于數(shù)據中的認證信息,大(dà)多(duō)數(shù)的代理(lǐ)服務器(qì)都不會(huì)進行(xíng)緩存的。

2.提供用私有(yǒu)IP訪問Internet的方法

IP地址是不可(kě)再生(shēng)的寶貴資源,假如你(nǐ)隻有(yǒu)有(yǒu)限的IP地址,但(dàn)是需要提供整個(gè)組織的Internet訪問能力,那(nà)麽,你(nǐ)可(kě)以通(tōng)過使用代理(lǐ)服務器(qì)來(lái)實現這一點。

3.提高(gāo)網絡的安全性

這一點是很(hěn)明(míng)顯的,如果內(nèi)部用戶訪問Internet都是通(tōng)過代理(lǐ)服務器(qì),那(nà)麽,代理(lǐ)服務器(qì)就成為(wèi)進入Internet的唯一通(tōng)道(dào);反過來(lái)說,代理(lǐ)服務器(qì)也是Internet訪問內(nèi)部網的唯一通(tōng)道(dào),如果你(nǐ)沒有(yǒu)做(zuò)反向代理(lǐ),則對于Internet上(shàng)的主機來(lái)說,你(nǐ)的整個(gè)內(nèi)部網隻有(yǒu)代理(lǐ)服務器(qì)是可(kě)見的,從而大(dà)大(dà)增強了網絡的安全性。

1.3代理(lǐ)服務器(qì)的分類及特點

通(tōng)常的代理(lǐ)服務器(qì)分類方法,是從實現的機理(lǐ)分為(wèi)線路層代理(lǐ)、應用層代理(lǐ)、智能線路層代理(lǐ)等等。在這裏,我想從另外一個(gè)角度出發,把代理(lǐ)服務器(qì)分為(wèi)傳統代理(lǐ)服務器(qì)和(hé)透明(míng)代理(lǐ)服務器(qì)。
我認為(wèi)有(yǒu)必要好好搞清楚兩者的區(qū)别,隻有(yǒu)真正明(míng)白了內(nèi)在地機理(lǐ),才能在遇到問題時(shí),有(yǒu)章可(kě)循,才不會(huì)一頭霧水(shuǐ),不知從何解決問題。因此,下面我們就通(tōng)過具體(tǐ)的實例來(lái)說明(míng)。本章的寫作(zuò)思路來(lái)源于PaulRussell所寫的IPCHAINS-HOWTO。下面所舉的例子也來(lái)源于該文章,我覺得(de)我讀該文的最大(dà)收獲在于對內(nèi)部網訪問外部網以及外部網訪問內(nèi)部網的實現手段有(yǒu)了一個(gè)清晰的認識。當然,這裏所謂的內(nèi)部網是指使用私有(yǒu)IP的內(nèi)部網絡。
我們的例子都基于以下假設:
你(nǐ)的域名為(wèi)sample.com,你(nǐ)的內(nèi)部網(192.168.1.*)用戶通(tōng)過proxy.sample.com(外部接口eth0:1.2.3.4;內(nèi)部接口eth1:192.168.1.1)的代理(lǐ)服務器(qì)訪問Internet,換句話(huà)說,該代理(lǐ)服務器(qì)是唯一一台直接與Internet和(hé)內(nèi)部網相連的機器(qì)。并假該設代理(lǐ)服務器(qì)上(shàng)運行(xíng)着某種代理(lǐ)服務器(qì)軟件(如squid)。假設內(nèi)部網中某一客戶機為(wèi)client.sample.com(192.168.1.100)。

+-------------------+
|內(nèi)部網(192.168.1.*)|eth1+--------+eth0DDN
|+------------|proxy|<===============>Internet
|client198.168.1.100|+--------+
+-------------------+

eth0:1.2.3.4
eth1:198.168.1.1


1.3.1傳統代理(lǐ)

在以上(shàng)基礎上(shàng)我們做(zuò)以下工作(zuò):
1.代理(lǐ)服務軟件被綁定到代理(lǐ)服務器(qì)的8080端口。
2.客戶端浏覽器(qì)被配置使用代理(lǐ)服務器(qì)的8080端口。
3.客戶端不需要配置DNS。
4.代理(lǐ)服務器(qì)上(shàng)需要配置代理(lǐ)服務器(qì)。
5.客戶端不需要配置缺省路由。

當我們在客戶端浏覽器(qì)中打開(kāi)一個(gè)web請(qǐng)求,比如“http://www.linuxaid.com.cn”,這時(shí)将陸續發生(shēng)以下事件:
1.客戶端使用某一端口(比如1025)連接代理(lǐ)服務器(qì)8080端口,請(qǐng)求web頁面“http://www.linuxaid.com.cn”
2.代理(lǐ)服務器(qì)向DNS請(qǐng)求“www.linuxaid.com.cn”,得(de)到相應的IP地址202.99.11.120。然後,代理(lǐ)服務器(qì)使用某一端口(比如1037)向該IP地址的80端口發起web連接請(qǐng)求,請(qǐng)求web頁面。
3.收到響應的web頁面後,代理(lǐ)服務器(qì)把該數(shù)據傳送給客戶端。
4.客戶端浏覽器(qì)顯示該頁面。

www.linuxaid.com.cn的角度看來(lái),連接是在1.2.3.4地1037端口和(hé)202.99.11.120的80端口之間(jiān)建立的。從client的角度看來(lái),連接是在192.168.1.100的1025端口和(hé)1.2.3.4的8080端口之間(jiān)建立的。

1.3.2透明(míng)代理(lǐ)

透明(míng)代理(lǐ)的意思是客戶端根本不需要知道(dào)有(yǒu)代理(lǐ)服務器(qì)的存在。
在以上(shàng)基礎上(shàng)我們做(zuò)以下工作(zuò):
1.配置透明(míng)代理(lǐ)服務器(qì)軟件運行(xíng)在代理(lǐ)服務器(qì)的8080端口。
2.配置代理(lǐ)服務器(qì)将所有(yǒu)對80端口的連接重定向到8080端口。
3.配置客戶端浏覽器(qì)直接連解到Internet。
4.在客戶端配置好DNS.
5.配置客戶端的缺省網關為(wèi)192.168.1.1.

當我們在客戶端浏覽器(qì)中打開(kāi)一個(gè)web請(qǐng)求,比如“http://www.linuxaid.com.cn”,這時(shí)将陸續發生(shēng)以下事件:
1.客戶端向DNS請(qǐng)求“www.linuxaid.com.cn”,得(de)到相應的IP地址202.99.11.120。然後,客戶端使用某一端口(比如1066)向該IP地址的80端口發起web連接請(qǐng)求,請(qǐng)求web頁面。
2.當該請(qǐng)求包通(tōng)過透明(míng)代理(lǐ)服務器(qì)時(shí),被重定向到代理(lǐ)服務器(qì)的綁定端口8080。于是,透明(míng)代理(lǐ)服務器(qì)用某一端口(比如1088)向202.99.11.120的80端口發起web連接請(qǐng)求,請(qǐng)求web頁面。
3.收到響應的web頁面後,代理(lǐ)服務器(qì)把該數(shù)據傳送給客戶端。
4.客戶端浏覽器(qì)顯示該頁面。

www.linuxaid.com.cn的角度看來(lái),連接是在1.2.3.4地1088端口和(hé)202.99.11.120的80端口之間(jiān)建立的。從client的角度看來(lái),連接是在192.168.1.100的1066端口和(hé)202.99.11.120的80端口之間(jiān)建立的。

以上(shàng)就是傳統代理(lǐ)服務器(qì)和(hé)透明(míng)代理(lǐ)服務器(qì)的區(qū)别所在。

二、各種代理(lǐ)服務器(qì)的比較

linux下的代理(lǐ)服務器(qì)軟件很(hěn)多(duō),我從www.freshmeat.com(一個(gè)著名的linux軟件站(zhàn)點)查看了一下,足有(yǒu)六十多(duō)個(gè)。但(dàn)是被廣泛應用的隻有(yǒu)Apache、socks、squid等幾個(gè)實踐證明(míng)是高(gāo)性能的代理(lǐ)軟件。下面我們分别來(lái)比較一下這幾個(gè)軟件:

2.1Apache

Apache是世界上(shàng)用的最廣泛的HTTP服務器(qì),之所以用的最廣泛,是因為(wèi)它強大(dà)的功能、高(gāo)效率、安全性和(hé)速度。從1.1.x版本開(kāi)始,Apache開(kāi)始包含了一個(gè)代理(lǐ)模塊。用Apache作(zuò)代理(lǐ)服務器(qì)的性能優勢并不明(míng)顯,不建議使用。


2.2Socks

Socks是一種網絡代理(lǐ)協議,該協議可(kě)以讓客戶機通(tōng)過Socks服務器(qì)獲得(de)對Internet的完全訪問能力。Scoks在服務器(qì)和(hé)客戶端之間(jiān)建立一個(gè)安全的代理(lǐ)數(shù)據通(tōng)道(dào),從客戶的角度看來(lái),Scoks是透明(míng)的;從服務器(qì)的角度看來(lái),Socks就是客戶端。客戶端不需要具有(yǒu)對Internet的直接訪問能力(也就是說,可(kě)以使用私有(yǒu)IP地址),因為(wèi)Socks服務器(qì)能夠把來(lái)自于客戶端的連接請(qǐng)求重定向到Internet。此外,Socks服務器(qì)可(kě)以對用戶連接請(qǐng)求進行(xíng)認證,允許合法用戶建立代理(lǐ)連接。同理(lǐ),Socks也能防止非授權的Internet用戶訪問及的內(nèi)部網絡。所以常常把Socks當作(zuò)防火(huǒ)牆來(lái)使用。
常見的浏覽器(qì)如netscape、IE等可(kě)以直接使用Socks,并且我們也可(kě)以使用socsk5的所帶的client來(lái)使那(nà)些(xiē)不直接支持socks的internet軟件使用Socks。
更多(duō)的資料可(kě)以參考Socks官方站(zhàn)點http://www.socks.nec.com

2.3Squid

對于web用戶來(lái)說,Squid是一個(gè)高(gāo)性能的代理(lǐ)緩存服務器(qì),Squid支持FTP、gopher和(hé)HTTP協議。和(hé)一般的代理(lǐ)緩存軟件不同,Squid用一個(gè)單獨的、非模塊化的、I/O驅動的進程來(lái)處理(lǐ)所有(yǒu)的客戶端請(qǐng)求。
Squid将數(shù)據元緩存在內(nèi)存中,同時(shí)也緩存DNS查詢的結果,除此之外,它還(hái)支持非模塊化的DNS查詢,對失敗的請(qǐng)求進行(xíng)消極緩存。Squid支持SSL,支持訪問控制(zhì)。由于使用了ICP(輕量Internet緩存協議),Squid能夠實現層疊的代理(lǐ)陣列,從而最大(dà)限度地節約帶寬。
Squid由一個(gè)主要的服務程序squid,一個(gè)DNS查詢程序dnsserver,幾個(gè)重寫請(qǐng)求和(hé)執行(xíng)認證的程序,以及幾個(gè)管理(lǐ)工具組成。當Squid啓動以後,它可(kě)以派生(shēng)出預先指定數(shù)目的dnsserver進程,而每一個(gè)dnsserver進程都可(kě)以執行(xíng)單獨的DNS查詢,這樣一來(lái)就大(dà)大(dà)減少(shǎo)了服務器(qì)等待DNS查詢的時(shí)間(jiān)。

2.4選擇

從上(shàng)面的比較可(kě)以看出,Apache主要功能是web服務器(qì),代理(lǐ)功能隻不過是其一個(gè)模塊而已,Socks雖然強大(dà),但(dàn)有(yǒu)欠靈活,因此我們着重推薦你(nǐ)使用Squid。下面的章節我們就一起來(lái)學習Squid激動人(rén)心的特性及相關的安裝與配置。

三、安裝SquidProxyServer

3.1獲取軟件

你(nǐ)可(kě)以通(tōng)過以下途徑獲取該軟件:
1.從Squid的官方站(zhàn)點http://www.squid-cache.org下載該軟件;
2.從你(nǐ)的linux發行(xíng)版本中獲取該軟件;

如沒特殊注明(míng),文章均為(wèi)中技(jì)互聯原創,轉載請(qǐng)注明(míng)來(lái)自www.zjcoo.com
相關新聞

CopyrightZJCOO technology Co., LTD. All Rights Reserved.    

渝ICP 備11003429号

  • qq客服
  • 公衆号
  • 手機版
  • 新浪微博