歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 高性能、多線程的高速Web代理服務器--OOPS!

高性能、多線程的高速Web代理服務器--OOPS!

日期:2017/2/27 9:22:23   编辑:更多Linux
  “代理”是指作為替代者代表別人執行任務的人。正如您可能猜到的一樣,代理服務器是代表其客戶機執行特定任務的程序,如果有必要,這種任務通常可以由代理本身完成。在 Web 世界中,Web 代理服務器是充當信使的程序,它從諸如 Netscape、Mozilla、Internet EXPlorer 或 Konqueror 等的 Web 浏覽器接收 HTTP 請求。然後,Web 代理從 Web 獲取適當的數據,並將其傳遞給客戶機。通過使用 Web 代理,Web 客戶機可以不必建立與本地網之外任何機器的實際連接而訪問因特網;Web 代理處理所有外部的 Web 通信。Web 代理有很多用途。最常用的一個是為處於防火牆之後的局域網提供因特網訪問。代理可以繞過防火牆,代表局域網內部的 Web 客戶機建立因特網裡連接。因此,可以將局域網與因特網完全隔斷,而代理則充當“橋梁”並允許 Web 浏覽繼續進行。另外,Web 代理還可以在同意提供服務之前自己驗證局域網用戶(通常用用戶名和密碼認證)。幾乎可以將每一種現代浏覽器配置成使用 Web 代理,而不是直接連接到因特網。通常,配置需要指定代理服務器的 IP 地址和端口。然後,Web 浏覽器將其請求轉發到這個特定的主機,而不是試圖自己與遠程站點聯系。 除了提供基本的 HTTP 代理功能之外,很多 Web 代理還維護一個最近訪問過的 Web 頁面和圖像的本地高速緩存。當請求的頁面或圖像已經在代理的高速緩存中時,代理將高速緩存的副本傳遞給客戶機,而不再次從網站直接下載。這樣做有兩方面好處:首先,它通常會提高局域網裝入 Web 頁面的速度。其次,通過減少冗余頁面和圖像下載,可以減少 Web 浏覽的帶寬使用率。雖然大多數 Web 浏覽器自己都有內置的高速緩存,但一般都很小 -- 通常不超過 10 MB。相比之下,高速緩存 Web 代理允許更大的基於磁盤的高速緩存 -- 通常有幾百 MB,並且常常可達到幾 GB。並且與簡單的浏覽器代理不同的是,高速緩存 Web 代理將為整個用戶組提高訪問 Web 的性能並減少網絡帶寬需求;這是相對弱小的浏覽器高速緩存無法辦到的。 好了,我們已經討論了 Web 代理和高速緩存 Web 代理,但什麼是透明 Web 代理呢?很簡單,它是以特殊方式配置的 Web 代理,在這種方式中,Web 客戶機(浏覽器)甚至不知道它們的 HTTP 請求是通過代理進行的。在它們看來,它們正在直接與實際的遠程站點通信。透明代理特別有用,因為一經正確配置,代理將“立即工作”,並且無需配置 Web 浏覽器。不僅如此,如果正確配置了透明 Web 代理,想繞過它要困難得多。 ---------------------------------------------------- 目前,最流行的開放源碼、高性能 Web 代理高速緩存是 Squid,可從http://www.squid-cache.org ] [url=www.squid-cache.org]http://www.squid-cache.org[/url] [/url] 獲得。Squid 是一個不錯的 Web 高速緩存,但我個人更喜歡不太出名的 oops。 oops 是質量極高、快速並且開放源碼的高速緩存代理服務器,可從http://zipper.paco.net/~igor/oops.eng/ ] [url=zipper.paco.net/~igor/oops.eng/]http://zipper.paco.net/~igor/oops.eng/[/url] [/url] 獲得。 我喜歡 oops 是因為它的源碼是開放的,並且設計得很好。oops 是多線程的,這可以改進單處理器機器的性能,並且可以極大地提高多處理器系統的性能。另外,oops 可以在後台執行耗時的任務(例如進行檢查高速緩存完整性的檢查),以便不影響其 Web 代理功能,這是 Squid 無法做到的。 oops 還支持一些高級特性,包括帶寬控制、連接限制、基於規則表達式的重定向以及其它一些吸引人的功能。我們來討論一個Linux下基於oops和iptables的透明代理的案例。 如果您的 Linux 機器為局域網提供因特網訪問(作為網關),則透明配置特別有用,因為那時,局域網上的所有 Web 浏覽器將自動使用 oops 作為代理。所要做的全部工作就是把所有的局域網機器配置成將那台 Linux 機器作為缺省網關。如果您的局域網不是這樣配置的,您仍可以使局域網客戶機使用 oops,但是可能需要配置每一個 Web 浏覽器,使其使用在 Linux 機器端口 3128 上運行的代理服務器。您可以使用這種方法,也可以使用我稍後將提到的另一種方法。 要安裝 oops,請直接到 http://zipper.paco.net/~igor/oops.eng/,單擊下載鏈接,然後下載最新的穩定版(當前是oops-1.5.22.tar.gz 文件)。下載之後,輸入以下命令將 tar 文件從打包文件中解開:


# tar xzvf oops-1.5.22.tar.gz 無論何時運行網絡服務,最好盡可能將該服務配置成以非“root”身份運行。當網絡服務以非 root 用戶運行並發現一處安全性漏洞時,可能會因為非 root 帳戶的特權較低而防止安全性漏洞成為主要威脅。 當然,oops 是一個設計出色、考慮到安全性問題的程序;然而,oops 的創建者還是決定添加此特性作為額外的安全性措施。它的工作原理是:oops 以 root 權限啟動,但它機會立即“降低”到非特權帳戶。 在我的系統上,有一個 oops 所使用的特殊 "squid"(非登錄)用戶和組。Oops 在這個 UID 下運行,從而提供一個額外的安全層。另外,我還用特殊許可權設置了 oops /var/log 和 /var/run 目錄,以便只有 root 和 "squid" 組成員可以讀取其中的文件。我們將大致看一下如何這樣做,但目前,您需要確定 oops 將使用哪個 UID。 oops 應該使用非登錄帳戶的 UID;幾個不錯的選擇是 "daemon"、"squid" 或 "oops"。如果有必要,用同一名稱創建一個組(確保 UDI 的缺省組就是該組),然後,您就可以開始了。從現在起,每當我提到 "squid" 用戶或組時,您都應該用自己選擇使用的組名來替換它。我將用紅色突出顯示 squid,以便給您以提示。 好了;現在該編譯了。首先,進入 oops 源目錄: # cd oops-1.5.22 然後,輸入帶以下選項的配置腳本: # ./configure --prefix=/usr --libdir=/usr/lib/oops --enable-oops-user=squid --sysconfdir=/etc/oops --sbindir=/usr/sbin --localstatedir=/var/run/oops 配置完成之後,輸入: # make 源代碼將開始編譯。 現在,可以安裝 oops 了。因為 make 文件是對 Solaris 而不是 Linux 系統准備的,所以這部分有一點棘手。繼續進行並輸入: # make install "make install" 進程將正確設置大多數事物,但現在,還需要進行一些其它調整。下面是您需要作的: # rm -rf /usr/oops # rm -rf /usr/lib/oops/modules 這將除去 "make install" 所創建的兩個無關目錄。 現在,我們需要正確配置 /etc/oops、/var/log/oops、/var/lib/oops 和 /var/run/oops 目錄。只有 root、squid 和 squid 組成員能夠讀取 /etc/oops、/var/log/oops 和 /var/lib/oops 的內容;並且只有 root 和 squid 用戶能夠寫入這些目錄: # chmod o-rwx g=wxs /etc/oops # chown -R squid.squid /etc/oops # install -d -o squid -g squid -m0750 /var/log/oops # chmod g+s /var/log/oops # install -d -o squid -g squid -m0750 /var/lib/oops/storage # install -d -o squid -g squid -m0750 /var/lib/oops/db # install -d -o squid -g squid -m0755 /var/run/oops # chmod g+s /var/run/oops 現在,所有文件和目錄都已就位,但在可以啟動 oops 之前還有一步要完成:需要為您的站點定制 oops.cfg 配置文件。oops.cfg 可能會令新用戶困惑,因此,我創建了一個最小的 oops.cfg 文件,您應該將它復制到 /etc/oops 中。但首先,將原始 oops.cfg 備份成 oops.cfg.eg。原始文件包含很多有關 oops 更高級特性的有用注釋,因此應該將其保留,供以後參考。 現在,我將引導您浏覽 oops.cfg 文件,並解釋該文件的各部分如何工作,以及為使 oops 在您的環境中工作需要作哪些更改。我們首先看一下 oops.cfg 的前三行: nameserver 192.168.1.1 http_port 3128 userid squid 在第一行,我們指定了 oops 將用來執行 DNS 查詢的名稱服務器。如果需要的話,也可以添加多個名稱服務器行;oops 將循環查詢每個名稱服務器。在您的 oops.cfg 中指定名稱服務器很重要,因為這樣做將允許 oops 執行它自己的多線程直接 DNS 查詢。如果省略nameserver 參數,則 oops 將不得不使用 gethostbyname_r() 函數來執行 DNS 查詢。這不是理想的解決方案,因為 gethostbyname_r() 一次只會處理一個 DNS 查詢,這就在象 oops 這樣高度多線程化的程序中形成一個瓶頸。在 oops.cfg 中指定名稱服務器的唯一缺點是:oops 在名稱解析過程中不會參考您的 /etc/hosts 文件,而是執行一個簡單的 DNS 查詢。大多數情況下,這種解決方案都會很好地工作。在第二行,我們設置了 oops 將要偵聽的端口:3128 是 Web 代理的標准端口。並且,我們在第三行指定了 oops 將要使用的用戶標識。請根據需要修改這行。 接下來,我們到達日志行: logfile /var/log/oops/oops.log { 3 1m }

Accesslog /var/log/oops/oops.access { 3 1m } statistics /var/log/oops/oops.stats pidfile /var/run/oops/oops.pid 這幾行無需更改,但有必要理解其工作原理。第一行配置 oops,使其將常規日志存儲在 /var/log/oops/oops.log,並且當該文件超過一兆 ("1m") 時自動翻轉 (rotate) 日志。oops 使用 3 個日志進行翻轉的機制。下一行指定訪問日志的位置,該日志將記錄所有 HTTP 請求;這個文件被配置成以與 oops.log 同樣的方式自動翻轉。接下來,我們指定 oops.stats 的位置。與其它日志文件不同,oops.stats 不會被 oops 定期覆蓋(而是象普通日志那樣在日志尾部附加內容),因此無需自動翻轉。oops.stats 包含一些有用的統計信息,例如運行時間、自 oops 其啟動以來的 HTTP 請求數量等。最後,我們指定 pidfile 的位置,該文件將包含 oops 主進程的數字進程標識。為保持與 FHS 2.1 (http://www.pathname.com/fhs/) 一致,將該文件放在 /var/run/oops 中。 接下來,我們設置幾個高速緩存調整參數: mem_max 128m lo_mark 80m 前兩個參數是 mem_mark 和 lo_mark,它們調整 oops 的內存高速緩存行為。mem-mark 設置內存高速緩存大小的硬性最大限制;如果 oops 的內存高速緩存大小超過 128 MB,則 oops 將開始丟棄對象。顯然,用戶應該努力避免這種行為的發生,而這正是 lo_mark 的用處所在。當 oops 的內存高速緩存達到 lo_mark 時(本例為 80MB),oops 將開始把內存中的對象移至磁盤高速緩存。 接下來,我們設置兩個磁盤高速緩存調整參數:\ disk-low-free 3 disk-ok-free 5 disk-low-free 告訴 oops:當使用了 97% 的磁盤高速緩存時,開始清理它,disk-ok-free 告訴 oops:繼續清理磁盤高速緩存,直到至少有總緩存的 5% 可用於新對象為止。我們還沒有實際配置 oops 磁盤高速緩存的大小和位置,但將在此文件的稍後部分配置。 接下來,我們設置一些雜項設置: force_http11 force_completion 85 maxresident 1m insert_x_forwarded_for no insert_via no always_check_freshness "force_http11" 告訴 oops:即使 Web 客戶機使用 HTTP/1.0,在連接到因特網站點時也使用 HTTP/1.1。"force_completion" 告訴 oops:如果已經至少接收了文件的 85%,那麼,即使用戶異常中止下載,也要繼續下載該對象。該設置的含義是:因為以後可能會請求這個對象,所以允許 oops 花費一點額外的帶寬將該對象添加到其高速緩存中,"maxresident" 設置 oops 將要高速緩存的對象大小的硬性上界。在本例中,oops 不會高速緩存超過 1 MB 的文件。該參數的目的是防止較大的對象占據 oops 的高速緩存,從而迫使 oops 丟棄較小的對象,而用戶請求較小對象的次數常常比較大文件的次數多得多。然後,我們關閉了 "insert_x_forwarded_for" 和 "insert_via" HTTP 頭。通常,oops 在每個 HTTP 請求中插入兩個純信息性的頭。既然不需要它們,我就將它們關閉 -- 這就節省了一點帶寬,還使 oops 不那麼羅嗦。最後,"always_check_freshness" 選項指示 oops:每次請求高速緩存的頁面時,在將該頁面發回客戶機之前都應該快速檢查,以確定該頁面是否為最新頁面。如果沒有該選項,oops 將對頁面是否為最新作某種假設,而這種假設可能不正確,從而導致人們獲得某些站點的舊副本。"always_check_freshness" 為我們提供我們所需的類似於 Squid 的行為。 接下來,我們使用 acl、stop_cache 和 stop_cache_acl 參數來避免高速緩存不應該緩存的事物: acl MYSITE urlregex (www\.gentoo\.orgcvs\.gentoo\.org) stop_cache_acl MYSITE stop_cache ? stop_cache cgi-bin 首先,我們使用 acl 參數創建一個名為 "MYSITE" 的新 ACL(訪問控制表)。將 oops ACL 看成一種可以在文件的以後部分引用的模式,它允許我們指定:當 ACL 恰巧匹配時,應該執行哪些操作和不應該執行哪些操作。雖然 oops 非常廣泛地使用 ACL,但這是我們樣本配置文件中唯一出現的一個 ACL。這個 ACL 將匹配任何包含 "www.gentoo.org" 和 "cvs.gentoo.org" 的 URL。在接下來的一行中,我麼使用 stop_cache_acl 參數讓 oops 知道:不應該高速緩存任何帶有與 MYSITE ACL 匹配的 URL 的請求。這將有效防止高速緩存從 [url=www.gentoo.org]www.gentoo.org[/url] 和 cvs.gentoo.org 下載的對象。那麼,我為什麼要這樣做呢?啊,因為 oops 恰巧運行在我的名為 "cvs.gentoo.org" 和 "www.gentoo.org" 的服務器/網關上。這台機器是使用 Apache 的 [url=www.gentoo.org]http://www.gentoo.org[/url] 網站的主機。 既然 oops 和 Apache 位於同一台機器,那麼,oops 再高速緩存我的站點中的數據就顯得有些愚蠢。這樣做不會提高 Web 請求的處理速度,也不會減少網絡帶寬需求。相反,它只會浪費寶貴的內存和磁盤存儲空間。您應該考慮使用 acl 和 stop_cache_acl 參數過濾掉與 oops 在同一台主機上的站點或者通過 oops 經局域網就可到達的站點。在這些情況下浪費寶貴的 oops 資源毫無意義。

接下來,我們使用兩個 stop_cache 參數告訴 oops:永遠不要高速緩存任何在 URL 中帶有 "?" 或 "cgi'bin" 的請求;這是避免高速緩存 CGI 數據的快速而簡便的方法。 配置文件的下一部分非常重要,它定義了我們的網絡中允許使用 oops 的主機組。讓我們看一下: group gentoo { networks 192.168.1/24 127.0.0/24; redir_mods transparent; badports [0:79],110,138,139,513,[6000:6010] ; miss allow; http { allow dstdomain * ; } } ……………… ……………… #module transparent { //-----注釋掉前面的#號 # myport can have next form: # myport [{hostnameip_addr}:]port ... # myport 3128 //-----注釋掉前面的#號 # broken_browsers MSIE # } //-----注釋掉前面的#號 這個特定的組名為 "gentoo"(可隨意將該名稱改成別的名稱),它包括在 "networks" 參數中指定的所有主機 -- 具有以 192.168.1 開頭的 IP 地址的所有主機(我的本地局域網)和以 127.0.0 開頭的所有主機(本地主機)。如果某台機器的 IP 地址屬於 "networks" 參數中列出的網絡的一部分,則將它看成 "gentoo" 組的一部分。當然,您要確保:"networks" 參數包括應該被允許使用 oops 的網絡。接下來,redir_mods 行啟用透明高速緩存功能(版本1.5.22的oops.cfg默認transparent模塊被禁止,所以您要自己打開),並且 badports 參數告訴 oops 拒絕連接到特定遠程端口的請求(在本例中,這些端口用於其它網絡服務,幾乎不可能提供任何 Web 內容)。badports 後面跟有 "miss" 參數,該參數很重要,因為它告訴 oops:如果這個特定組中的機器所請求的對象恰巧不在其內存或磁盤高速緩存中,則應該下載該對象。如果沒有此參數,oops 將只能為這個組提已經高速緩存過的對象,而這幾乎肯定不是您想要的。最後,http 參數允許這個組請求任何 ("*") 遠程主機的數據。 好,這是我們要看的配置文件的最後一部分;該文件的其余部分無需任何手工配置,因此我們略過不談。 group world { networks 0/0; badports [0:79],110,138,139,513,[6000:6010]; http { deny dstdomain * ; } } storage { path /var/lib/oops/storage/oops_storage ; size 400m ; } 如您所見,我們創建了另一個名為 "world" 的組,它與所有網絡地址 (0/0) 匹配。這意味者,如果某台機器不是 "gentoo" 組的一部分,則可以將它看成 "world" 組的一部分,並將缺省拒絕 HTTP 訪問 ("deny dstdomain *")。 最後,我們定義磁盤高速緩存的位置和大小 (400 MB);您可能想根據需要和可用的存儲空間來減少或增加磁盤高速緩存的大小。另外還要注意,將把 /var/lib/oops/storage/oops_storage 創建成稀疏文件。這意味著,最初該文件幾乎不占據任何磁盤空間,但可以根據需要達到這裡指定的最大容量。好,完成該文件之後,請保存並關閉 oops.cfg 文件,我們也就最終配置好了 oops! 既然已經配置了 oops,現在就可以指示 oops 創建其磁盤高速緩存了。您只需這樣做一次。請輸入: # oops -z -c /etc/oops/oops.cfg 現在,應該可以使用磁盤高速緩存了。此時,您可以輸入以下命令來啟動 oops: # oopsctl start 現在,oops 應該正在運行,並且,您應該可以將局域網上的 Web 浏覽器配置成:使用您 Linux 機器的端口 3128 作為 Web 代理。請嘗試一會兒 oops,您應該注意到,當再次查看同一站點時,速度會有很大提升。 既然 oops 作為普通的代理工作,那麼,您可能想讓 oops 以透明模式工作。要這樣做,需要滿足幾個要求: 1、您的 Linux 機器必須是您的局域網的網關 2、您的 Linux 機器必須使用啟用了 netfilter 的 2.4+ 內核 3、必須安裝了 iptables 如果滿足了這些要求,就可以通過輸入以下命令啟用透明模式: # iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 該命令將把所有目標端口為 80 的、通過您的 Linux 網關的連接自動轉向 Linux 網關的 3128 端口,oops 將在那裡攔截和處理它們。現在,無需任何額外配置,您的局域網中的所有浏覽器都應該可以自動開始使用這個代理。請注意,如果將浏覽器配置成使用該 oops 代理,它仍可以工作。 如果您的 Linux 機器不是局域網網關,也並非完全不能實現透明模式。仍然可以配置網絡,以便您的 Linux 機器可以充當透明代理。幸運的是,有一種極佳的方法來這樣做,這在 Linux Advanced Routing HOWTO 中的 Cookbook 一節有詳細描述。 --------作者:Daniel Robbins



如您所見,我們創建了另一個名為 "world" 的組,它與所有網絡地址 (0/0) 匹配。這意味者,如果某台機器不是 "gentoo" 組的一部分,則可以將它看成 "world" 組的一部分,並將缺省拒絕 HTTP 訪問 ("deny dstdomain *")。 最後,我們定義磁盤高速緩存的位置和大小 (400 MB);您可能想根據需要和可用的存儲空間來減少或增加磁盤高速緩存的大小。另外還要注意,將把 /var/lib/oops/storage/oops_storage 創建成稀疏文件。這意味著,最初該文件幾乎不占據任何磁盤空間,但可以根據需要達到這裡指定的最大容量。好,完成該文件之後,請保存並關閉 oops.cfg 文件,我們也就最終配置好了 oops! 既然已經配置了 oops,現在就可以指示 oops 創建其磁盤高速緩存了。您只需這樣做一次。請輸入: # oops -z -c /etc/oops/oops.cfg 現在,應該可以使用磁盤高速緩存了。此時,您可以輸入以下命令來啟動 oops: # oopsctl start 現在,oops 應該正在運行,並且,您應該可以將局域網上的 Web 浏覽器配置成:使用您 Linux 機器的端口 3128 作為 Web 代理。請嘗試一會兒 oops,您應該注意到,當再次查看同一站點時,速度會有很大提升。 既然 oops 作為普通的代理工作,那麼,您可能想讓 oops 以透明模式工作。要這樣做,需要滿足幾個要求: 1、您的 Linux 機器必須是您的局域網的網關 2、您的 Linux 機器必須使用啟用了 netfilter 的 2.4+ 內核 3、必須安裝了 iptables 如果滿足了這些要求,就可以通過輸入以下命令啟用透明模式: # iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 該命令將把所有目標端口為 80 的、通過您的 Linux 網關的連接自動轉向 Linux 網關的 3128 端口,oops 將在那裡攔截和處理它們。現在,無需任何額外配置,您的局域網中的所有浏覽器都應該可以自動開始使用這個代理。請注意,如果將浏覽器配置成使用該 oops 代理,它仍可以工作。 如果您的 Linux 機器不是局域網網關,也並非完全不能實現透明模式。仍然可以配置網絡,以便您的 Linux 機器可以充當透明代理。幸運的是,有一種極佳的方法來這樣做,這在 Linux Advanced Routing HOWTO 中的 Cookbook 一節有詳細描述。 --------作者:Daniel Robbins



好,這是我們要看的配置文件的最後一部分;該文件的其余部分無需任何手工配置,因此我們略過不談。 group world { networks 0/0; badports [0:79],110,138,139,513,[6000:6010]; http { deny dstdomain * ; } } storage { path /var/lib/oops/storage/oops_storage ; size 400m ; } 如您所見,我們創建了另一個名為 "world" 的組,它與所有網絡地址 (0/0) 匹配。這意味者,如果某台機器不是 "gentoo" 組的一部分,則可以將它看成 "world" 組的一部分,並將缺省拒絕 HTTP 訪問 ("deny dstdomain *")。 最後,我們定義磁盤高速緩存的位置和大小 (400 MB);您可能想根據需要和可用的存儲空間來減少或增加磁盤高速緩存的大小。另外還要注意,將把 /var/lib/oops/storage/oops_storage 創建成稀疏文件。這意味著,最初該文件幾乎不占據任何磁盤空間,但可以根據需要達到這裡指定的最大容量。好,完成該文件之後,請保存並關閉 oops.cfg 文件,我們也就最終配置好了 oops! 既然已經配置了 oops,現在就可以指示 oops 創建其磁盤高速緩存了。您只需這樣做一次。請輸入: # oops -z -c /etc/oops/oops.cfg 現在,應該可以使用磁盤高速緩存了。此時,您可以輸入以下命令來啟動 oops: # oopsctl start 現在,oops 應該正在運行,並且,您應該可以將局域網上的 Web 浏覽器配置成:使用您 Linux 機器的端口 3128 作為 Web 代理。請嘗試一會兒 oops,您應該注意到,當再次查看同一站點時,速度會有很大提升。 既然 oops 作為普通的代理工作,那麼,您可能想讓 oops 以透明模式工作。要這樣做,需要滿足幾個要求: 1、您的 Linux 機器必須是您的局域網的網關 2、您的 Linux 機器必須使用啟用了 netfilter 的 2.4+ 內核 3、必須安裝了 iptables 如果滿足了這些要求,就可以通過輸入以下命令啟用透明模式: # iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 該命令將把所有目標端口為 80 的、通過您的 Linux 網關的連接自動轉向 Linux 網關的 3128 端口,oops 將在那裡攔截和處理它們。現在,無需任何額外配置,您的局域網中的所有浏覽器都應該可以自動開始使用這個代理。請注意,如果將浏覽器配置成使用該 oops 代理,它仍可以工作。 如果您的 Linux 機器不是局域網網關,也並非完全不能實現透明模式。仍然可以配置網絡,以便您的 Linux 機器可以充當透明代理。幸運的是,有一種極佳的方法來這樣做,這在 Linux Advanced Routing HOWTO 中的 Cookbook 一節有詳細描述。 --------作者:Daniel Robbins



Copyright © Linux教程網 All Rights Reserved