久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何理解Suse內核透明代理

173次閱讀
沒有評論

共計 2917 個字符,預計需要花費 8 分鐘才能閱讀完成。

如何理解 Suse 內核透明代理,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

隨著 Suse 受到廣大用戶更多的靑瞇,它的問題也隨之增多,怎樣才能更好的應用 Suse 呢?以后我們會逐一闡述,今天我們要講的配置透明代理的問題。是先解釋為什么要配置透明代理。

其實只配置 squid 就可以實現代理功能,但是對于客戶端,就必須在瀏覽器中設置 proxy server,對于其他的工具,比如 FlashGet, CuteFTP 等等,也必須一一設置,這一點非常麻煩。但是如果設置了透明代理,那么在客戶端只需要在網絡配置中設置一個網關就可以了,其他的任何程序都不用另行設置。這是設置透明代理 *** 的誘惑,當然這只是對我而言,其實 iptables 有更強大的防火墻功能,這才是它 *** 的用處。但是,此次配置不涉及防火墻,如果有興趣的請看上貼的 iptables howto。

1。假設我們的 linux 內已經將防火墻支持選項編譯進去,這一點可以進入 kernel source 目錄,用 make menuconfig 確認。

2。安裝 squid,一般對于各個 Linux 發行版,完全安裝的話應該已經安裝過了,當然也可以從以下網址下載安裝:
http://www.squid-cache.org/

3。無論是重新安裝的還是系統中原來就有的,因為對于各個發行版可能 squid 的配置文件所在的位置各不相同,用 find 命令確認 squid.conf 文件的確切位置。如果是 rpm 安裝,也可以用 rpm 命令來確認:rpm -ql [squidrpmname.rpm] | grep squid.conf

4。編輯 squid.conf 文件,確保以下內容存在:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
cache_effective_user nobody
cache_effective_group nobody
http_access allow all
cache_dir ufs /usr/local/squid/cache 100 16 256
注:*** 一句為 cache 目錄,需要在下面創建,可以改為你本機 squid 的所在目錄。倒數第二句,表示我們允許所有的請求,這是很不安全的,可以自己創建一個組,然后 allow 這個組,并且 deny all,具體的設置仔細看一下 squid.conf 就可以了,有很詳細的解釋和例子

5。創建 cache 目錄(如果沒有的話),修改該目錄所有者為 nobody
chown nobody:nobody /pathname/cache

6。查看配置文件中默認的 log 目錄,將那個目錄的所有者修改為 nobody,以確保 log 可以寫入

7。創建 cache:squid -z

8。啟動 squid:squid -D
squid 的站點維護了一份很詳細的 FAQ,基本上你需要問的問題都有答案,比如你可以先用 squid -NCd1 來以 debug 模式啟動,這樣如果有錯誤會報出來,一般如果是 ADSL 撥號的,那么在沒有撥號之前就啟動 squid 的話是會出錯的 (FATAL: ipcache_init: DNS name lookup tests failed),因為 squid 啟動時會去檢查一些常用的 DNS,但是這時候你并沒有接入 internet,自然就出錯了,所以我們需要在啟動的時候不檢查 DNS,這就需要用加上 - D 選項來啟動 squid

9。啟動成功之后,我們就可以去客戶端的瀏覽器里面設置 proxy 來測試一下了,如果可以接入 internet,那么 squid 就算設置成功了

10。還有一個后續工作,就是確認 squid 是不是開機就自動啟動了,一般在 /etc/init.d 中已經有了 squid 腳本,我們需要做的就是將它 ln 到適當的 rc.d 目錄中,比如我默認是 runlevel5 啟動的,那么我執行:
ln -s /etc/init.d/squid /etc/init.d/rc5.d/S99squid
ln -s /etc/init.d/squid /etc/init.d/rc5.d/K01squid
這是在 SuSE 下面,如果是 RedHat,那么 rc.d 目錄是在 /etc 下面,而不是在 /etc/init.d 下面。

OK,squid 設置結束了,下面我們開始配置 iptables
配置 iptables
可以用前面所提到的配置工具,但是我沒有試過,所以是直接用 iptables 命令來做的。
可以 man iptables 來查看幫助

我們把 iptables 的設置命令存在一個腳本文件中,假設腳本文件名為 firewall,然后將此文件存放在 /etc/init.d 中,并且在啟動文件中運行此腳本。以下為操作步驟

1。touch /etc/init.d/firewall

2。vi /etc/init.d/firewall
加入以下內容:

#!/bin/sh
echo Enabling IP Forwarding…
echo 1 /proc/sys/net/ipv4/ip_forward
echo Starting iptables rules…
#Refresh all chains
/sbin/iptables -F -t nat
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp
–dport 80 -j REDIRECT –to-ports 3128
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o
ppp0 -j MASQUERADE
對于以上命令的解釋如下:
/proc/sys/net/ipv4/ip_forward 必須設置為 1(默認是 0)才可以使用路由功能。
/sbin/iptables -F -t nat 將 nat table 中的所有現存規則清空。
eth0:為 Linux 機器中的網卡。
3128:為 squid 中默認的監聽端口。
ppp0:為 linux 中的 ADSL 設備(在 SuSE 中為 ppp0,在 redhat 中可能是 dsl0)。
MASQUERADE:適用于撥號上網的服務器,因為沒有靜態 IP 地址,對于有靜態 IP 的服務器,可以用 SNAT –to-source ipadress 來替代。

注:以上的命令沒有涉及防火墻,請自行參考配置,以上命令也沒有刪除 filter table 中的規則,也就是如果以前設置過防火墻,那么不會受到影響。

3。chmod u+x firewall,更改文件屬性,使其可以被執行

4。編輯 /etc/init.d/boot.local 文件,在 *** 加上 /etc/init.d/firewall 這一句,確保開機就執行此腳本。
注:SuSE 中是 boot.local,對于 redhat,則需要編輯 /etc/rc.d/rc.local 文件。

5。運行 firewall,規則立刻生效。

到此為止,所有配置結束。Suse 配置透明代理還是比較常用的。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計2917字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 陇西县| 福州市| 广西| 东阳市| 广宁县| 治多县| 格尔木市| 常州市| 仙游县| 固镇县| 东明县| 泰和县| 崇文区| 汽车| 屯昌县| 丰顺县| 时尚| 应城市| 竹溪县| 吉林市| 黄石市| 耒阳市| 齐齐哈尔市| 松潘县| 南平市| 徐闻县| 竹山县| 贵阳市| 阿勒泰市| 本溪市| 涟水县| 衡东县| 旬阳县| 寿宁县| 泾阳县| 鹤山市| 西吉县| 遂溪县| 宁强县| 百色市| 滁州市|