鳥哥的 Linux ADSL 私房菜


設定代理伺服器(Proxy Server
(本文已不再維護,請前往新文章)
最近更新日期:2001/11/09
什麼是代理伺服器
代理伺服器的優缺點
哪裡有代理伺服器
下載安裝 squid
設定代理伺服器
Windows 內的設定
squid 的注意事項增進 proxy 效能的方法(update 2001/11/09)

什麼是代理伺服器
從字面上的意義來看,代理伺服器(proxy)就是幫用戶端(就是你啦)去向目的地的機器要求用戶需求的主機,因為他是你的代理人嘛!所以,當你設定代理伺服器之後,你的所有相關的要求均會經過代理伺服器去搜尋!例如,當你設定你在 windows 的 IE 下的代理伺服器是 seednet 在南部的代理伺服器(ksproxy.seed.net.tw、port: 8080),則當你要去奇摩的網站時,奇摩的網頁資料將會先經過 ksproxy.seed.net.tw 這一部主機的存取之後,再傳送到你的 windows 中!有點像下面這個流程:
你的 Windows ---> ksproxy.seed.net.tw ---> www.kimo.com.tw
你的 Windows <--- ksproxy.seed.net.tw <-----------」
這裡請注意,通常 proxy 都會將用戶端要求的資料作一個備份在硬碟中!所以,當你要求過一次 www.kimo.com.tw 的資料後,這份網頁資料就會暫存在 ksproxy.seed.net.tw 這架 proxy 中,而暫存的時間長短是依主機的設定而定的!

多層次的代理伺服器
好了,那如果你設定了一個代理伺服器在你的 Linux 中,但是這個代理伺服器的設定中,又會設定你的代理伺服器的上層代理伺服器??此話何解?也就是說,當你的代理伺服器被要求去作某些工作的時候,他將會再透過向其他地方的代理伺服器要求,來達到你的需求,例如你的代理伺服器的上層代理伺服器是 ksproxy 這一部,則用戶端對你的 Linux 代理伺服器的要求就會變成這樣:

你的 Windows --> 你的 proxy --> ksproxy.seed.net.tw ---> www.kimo.com.tw
你的 Windows <-- 你的 proxy <-- ksproxy.seed.net.tw <-----------」
也就是說,從用戶端對你的要求到 www.kimo.com.tw 的東西,必須經過兩個 proxy 主機的存取之後,才能到你的 windows 當中!

更詳細的說明你可以看一下這裡


代理伺服器的優缺點
那代理伺服器有何優點呢?當然囉,沒有優點幹嘛架設代理伺服器?呵呵!底下說說他的優點吧: 但是有利就有弊,代理伺服器有何缺點呢?由於代理伺服器的設定中,通常會設定其上層代理伺服器,如果你沒有設定好,則如果你要讀取近端的網頁資料,可能會造成繞了一圈才又回到你的伺服器的情況!因此設定上需要比較小心。

哪裡有上層代理伺服器
如果你需要設定代理伺服器的話,底下有一些在網路上公開的代理伺服器可供參考喔! 同時這裡要補充的是,在一些私人單位的 Proxy (如 SeedNet 與 Hinet)設定中,他們僅提供給使用自家 ISP 的用戶,因此不同的 ISP 之 Proxy 設定是會不同的!

下載安裝 squid
安裝各種套件的方法主要可以分成 rpm 升級以及用來源檔(binary檔案)升級,以 rpm 方法升級是比較簡單的方法,而且以 rpm -q 的指令可以來查詢目前你的系統中的套件版本!不過由於 rpm 出來的時間會比較慢,並且不同 Linux 版本之間可能會有版本相容性的問題,所以你也可以直接以 binary 升級(就是使用 *.tar.gz 的檔案升級的方法)。要注意的是,你只要以其中一種方法升級就好了,不用重複升級喔!
下載:
目前使用最多的代理伺服器程式,大概是 squid 這一套程式了!在 Redhat 6.1 中就已經有這套軟體,只是版本比較舊(2.2.stable-4),通常我會喜歡把這一套軟體升級後才予以設定!升級的方式有兩種,一個是使用 rpm 升級,另一個則是直接使用 source code 升級,以下提供的是 squid-2.4.STABLE1-5.src.rpm 的升級方式。不過,由於 squid 在安裝的時候需要其他的附屬套件的安裝,所以還需要一些套件,這裡提供了使用 rpm 升級的所有需要的套件,你可以下載回去用用看!另外,如果你需要使用到原始碼來安裝的話,這個網站你也可以去看看!

rpm 安裝方法
我是以 RPM 程式來安裝的,安裝的附屬套件要先安裝才行,過程如下:
 
[root@tsai /root]# tar -zxvf squid-2.4.STABLE1-5.tar.gz
先解壓縮吧,這時會有一些檔案會產生出來,然後請接著執行下面的動作!

[root@tsai /root]# /bin/rpm --rebuild pam-0.74-22.src.rpm
[root@tsai /root]# /bin/rpm -ivh /usr/src/redhat/RPMS/i386/pam-0.74-22.i386.rpm
[root@tsai /root]# /bin/rpm -ivh /usr/src/redhat/RPMS/i386/pam-devel-0.74-22.i386.rpm
[root@tsai /root]# /bin/rpm --rebuild sgml-common-0.5-7.src.rpm
[root@tsai /root]# /bin/rpm --rebuild sgml-tools-1.0.9-12.src.rpm
[root@tsai /root]# /bin/rpm -ivh /usr/src/redhat/RPMS/noarch/sqml-common-0.5-7.noarch.rpm
[root@tsai /root]# /bin/rpm -Uvh --nodeps /usr/src/redhat/RPMS/i386/sqml-tools-1.0.9-12.i386.rpm
[root@tsai /root]# /bin/rpm --rebuild openjade-1.3-13.src.rpm
[root@tsai /root]# /bin/rpm -ivh /usr/src/redhat/RPMS/i386/openjade-1.3-13.i386.rpm
[root@tsai /root]# /bin/rpm --rebuild bash-2.05-8.src.rpm
[root@tsai /root]# /bin/rpm -Uvh /usr/src/redhat/RPMS/i386/bash-2.05-8.i386.rpm
[root@tsai /root]# /bin/rpm --rebuild squid.2.4.STABLE1-5.src.rpm
[root@tsai /root]# /bin/rpm -Uvh --nodeps /usr/src/redhat/RPMS/i386/squid.2.4.STABLE1-5.i386.rpm

請注意,由於有些套件有點小錯誤,所以需要強制安裝,因此有些安裝過程需要加上 --nodeps 這個參數才能安裝!!至於 --rebuild 是重新編譯的意思,若對於 rpm 不明瞭,請在往前看看以 rpm 升級的辦法一文吧!

基本上,經過上面的安裝之後,應該就可以把 squid 升級了,你可以察看一下:
 
[root@tsai /root]# rpm -q squid
squid-2.4.STABLE1-5
這樣就安裝好囉!

來源檔升級:(update 2001/11/09)
那如果你想要以最新版的 squid 來升級的話呢,要如何是好?這裡提供了目前(2001/09/xx)最新的 squid 版本 squid-2.4.STABLE2-src.tar.gz ,新版的功能是比較多的。
安裝的方法很簡單,只是你要先將 RedHat 6.1 原先的 squid 移除,然後將剛剛捉下去的檔案。整個安裝的方法,簡單的來說,有下列幾個步驟:
 
[root@tsai /root]# cp squid-2.4.STABLE2-src.tar.gz /usr/local
將檔案拷貝到 Linux 預設的本機安裝套件的目錄 /usr/local 中!

[root@tsai /root]# cd /usr/local
[root@tsai local]# tar -zxvf squid-2.4.STABLE2-src.tar.gz
這時會產生一個名為 squid-2.4.STABLE2 的目錄!
在這個目錄中有一個 INSTALL 的檔案,你可以看一下裡面的流程!

[root@tsai local]# cd squid-2.4.STABLE2
[root@tsai squid-2.4.STABL2]# ./configure --prefix=/usr/local/squid  \
--enable-icmp  --enable-async-io=40  \
--enable-err-language="Traditional_Chinese"  \
--enable-cache-digests
上面 --prefix 後面接的是 squid 即將安裝的目的目錄,
也就是說,你的這一版 squid 會安裝在 /usr/local/squid 中!
另外, --enable-async-io=40 這一個咚咚最好加上去!
會增加很多的總體效能喔!(快得不得了!)
至於 --enable-err-language-"Traditional_Chinese" 是指將錯誤訊息
以中文輸出!

[root@tsai squid-2.4.STABL2]# make 
[root@tsai squid-2.4.STABL2]# make install
上面就是在編譯及安裝啦!

這樣就安裝完畢囉!

設定代理伺服器
這裡僅提供簡單的代理伺服器的設定,如果你需要更詳細的設定的話,請到 squid 的網頁去看看吧!

需要給予設定的檔案

確定 squid 可以正常執行 進階的 squid.conf 設定
在完成了上述的設定之後,你的 Proxy Server 就可以啟動了,不過,如果你想要再進一步進行設定的話,例如剛剛提過的,你想要讓 squid 的上層代理伺服器具有選擇性,以及想讓 squid 的暫存空間更大,那你就必須要再設定了,以下提供幾個不錯的網頁提供給你做為參考! 基本上,需要注意的地方主要可以分為底下幾個:
設定的幾個範例
這裡有幾個設定的範例可以參考一下:


Windows 內的設定
以下使用 IE 作為說明,如果是 Netcape 的話,基本上的設定是相同的:
如此一來則設定好了 Proxy Server 囉!


squid 的注意事項
使用代理伺服器後,瀏覽國外的網頁應該是可以變快的!但是,你要小心幾件事:
  1. 若 squid 內設定的使用空間滿了,則 squid 將不會運作!
  2. 若 squid 的紀錄檔太大了,則工作效率會變慢!
如上所述,由於 squid 可能會讓你的硬碟空間飽和(尤其我們都是使用舊電腦,硬碟容量本來就不是很足夠),如果每隔幾個月就要去清理硬碟一次,那可能會造成人力的浪費,這個時候,使用例行性的工作就是個好方法啦!
2002/ 01/01以來統計人數