linux下的代理服務器軟件很多,我從www.freshmeat.com(一個著名的linux軟件站點)查看了一下,足有六十多個。但是被廣泛應用的只有Apache、socks、squid等幾個實踐證明是高性能的代理軟件。下面我們分別來比較一下這幾個軟件:
1 Apache
Apache是世界上用的最廣泛的HTTP服務器,之所以用的最廣泛,是因為它強大的功能、高效率、安全性和速度。從1.1.x版本開始,Apache開始包含了一個代理模塊。用Apache作代理服務器的性能優勢並不明顯,不建議使用。
2 Socks
Socks 是一種網絡代理協議,該協議可以讓客戶機通過Socks服務器獲得對Internet的完全訪問能力。Scoks在服務器和客戶端之間建立一個安全的代理數據通道,從客戶的角度看來,Scoks是透明的;從服務器的角度看來,Socks就是客戶端。客戶端不需要具有對Internet的直接訪問能力(也就是說,可以使用私有IP地址),因為Socks服務器能夠把來自於客戶端的連接請求重定向到Internet。此外,Socks服務器可以對用戶連接請求進行認證,允許合法用戶建立代理連接。同理,Socks也能防止非授權的Internet用戶訪問及的內部網絡。所以常常把Socks當作防火牆來使用。
常見的瀏覽器如netscape、IE等可以直接使用Socks, 並且我們也可以使用socsk5的所帶的client來使那些不直接支持socks的internet軟件使用Socks。
更多的資料可以參考Socks官方站點http://www.socks.nec.com。
3 Squid
對於web用戶來說,Squid是一個高性能的代理緩存服務器,Squid支持FTP、gopher和HTTP協議。和一般的代理緩存軟件不同,Squid用一個單獨的、非模塊化的、I/O驅動的進程來處理所有的客戶端請求。
Squid 將數據元緩存在內存中,同時也緩存DNS查詢的結果,除此之外,它還支持非模塊化的DNS查詢,對失敗的請求進行消極緩存。Squid支持SSL,支持訪問控制。由於使用了ICP(輕量Internet緩存協議),Squid能夠實現層疊的代理陣列,從而最大限度地節約帶寬。
Squid由一個主要的服務程序squid,一個DNS查詢程序dnsserver,幾個重寫請求和執行認證的程序,以及幾個管理工具組成。當Squid啟動以後,它可以派生出預先指定數目的dnsserver進程,而每一個dnsserver進程都可以執行單獨的DNS查詢,這樣一來就大大減少了服務器等待DNS查詢的時間。
4. TIS(Trusted Information System)發佈的防火牆工具箱fwtk(firewall tool kits)不是一個單獨
的集成軟件包,而是用來建造防火牆的一套工具。其包括:http代理,ftp代理,telnet代理,
及其它代理服務程序。該套軟件配置相對簡單,功能強大,而且是個免費軟件,因此在實際應用
中得到了廣泛的應用,其與NEC的免費代理服務器socks5是世界上應用最為廣泛的防火牆/代理服
務器軟件包。fwtk目前的最新版本為2.1版。
二、安装并配置squid代理服务器