我想知道「現實」是如何考慮爲網頁過濾的目的實現攔截代理(具有緩存支持)。我也想支持IPv6,客戶端認證和緩存。攔截http代理 - 與普通代理相比的缺點
閱讀中的缺點,從魷魚維基http://wiki.squid-cache.org/SquidFaq/InterceptionProxy實現攔截代理列表中,它提到了一些東西使用它(我想澄清)時要考慮的缺點:
- 需要使用IPv4和NAT - 代理攔截不支持IPv6,爲什麼?
- 它導致path-MTU(PMTUD)可能失敗 - 爲什麼?
- 代理身份驗證不起作用 - 客戶端認爲它直接與原始服務器通話,在這種情況下有辦法執行身份驗證嗎?
- 攔截緩存僅支持HTTP協議,不支持gopher,SSL或FTP。您無法爲HTTP以外的其他協議的代理服務器設置重定向規則,因爲它不知道如何處理它 - 這看起來很合理,因爲在這種情況下將流量重定向到代理的方式是通過防火牆更改從始發服務器到代理自己的地址(目標NAT)的數據包的目標地址。在這種情況下,如果我想攔截除了http之外的其他協議,將知道連接打算去哪裏,因此我可以將它轉發到該目的地?
感謝您提示重播EdwardH。關於第4點,爲了將數據包重定向到應用程序以執行Web(或其他協議)過濾,您會建議採用什麼方法?我特別想爲此採用Windows方法。它必須是一般的東西,以便我可以看到所有的應用程序協議流量。 – Ghita 2012-02-14 12:54:26
我有使用Linux套接字進行編程的經驗,您可以將流量重定向到應用程序,即使目標地址不是您的應用程序之一。如果你打算進入Windows操作系統領域,這將是一個我無法建議的挑戰。我可以在這裏添加的唯一一點是有一個協商協議用於支持路由器或智能交換機與普通服務器之間的重定向,它被稱爲WCCP,它可以使用支持它的外部路由器/交換機,在您的服務器中添加支持並使用它。但它有幾個限制。 – EdwardH 2012-02-14 13:13:51
@EdwaardH您使用套接字重定向流量?所以,你把通過FORWARD鏈進入的流量(例如iptables)作爲一個字節流轉發到你的應用程序?基本上你的應用程序在這種情況下是在協議級別運行的 - 它看到的是構成http或ftp協議的字節流然後使用原始套接字?如果你知道任何開源或參考,即使對於Linux請讓我知道。 – Ghita 2012-02-14 13:35:43