環境:
Debian Linux
squid版本 2.6 STABLE5

安裝:
apt-get install squid

設定:
squid在2.6以後Transparent的設定就簡單很多,只將squid.conf裡面的
http_port 3128 
改為
http_port 3128 transparent
重新啟動squid即可

另外在proxy server上面的iptables裡面要設定把port 80的流量轉給squid處理
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
最後只要把port 80的流量導過來給Proxy Server就大功告成,像我的環境就是用L4的Switch把destination port為80的流量導到proxy server,不過如果L4 switch上面的health check是定80 port的話,那proxy server的listen port也要訂為80,因此,在iptables的部分要改一下,不然在proxy server上的流量會出不去。

假設我proxy server的ip為192.168.1.1,則在導向時,要記得把自己的ip給排除掉,不然http request就會一直loop回自己的80 port。
iptables -t nat -A PREROUTING -i eth0 -s !192.168.1.1 -p tcp --dport 80 -j REDIRECT --to-port 80

什麼是Transparent Proxy?
一般來說,我們為了節省網路頻寬、加快網路瀏覽速度更甚者為了達到控制公司內部的網頁瀏覽情況(邪惡)等等時會使用proxy server,但是假設公司內部有一千台電腦,使用電腦的人又是電腦白痴的時候,為了不要浪費時間教會使用者如何設定瀏覽器Proxy或者是要節省這些功夫,最快的方法就是在網路出口的地方像是NAT伺服器或者L4 switch上面,將這些流量自動的導到proxy server上面。

這樣一來,使用者完全不需要做任何設定,瀏覽網頁時自動就會透過Proxy Server連線出去,對使用者來說,這個proxy就像是透明的一樣,完全感覺不到它的存在。

參考來源:

http://nsysumis94.pixnet.net/blog/post/18180600-transparent-proxy%E6%9E%B6%E8%A8%AD%E5%82%99%E5%BF%98%E9%8C%84

By tony

自由軟體愛好者~喜歡不斷的思考各種問題,有新的事物都會想去學習嘗試 做實驗並熱衷研究 沒有所謂頂天的技術 只有謙虛及不斷的學習 精進專業,本站主要以分享系統及網路相關知識、資源而建立。 Github http://stnet253.github.io

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料