Proxy 的基本原理#

代理伺服器扮演「代理人」角色:當用戶端需要網際網路資料時,Proxy 代替用戶端向目標伺服器發出請求。網際網路上看到的請求者是 Proxy 的 IP,而非用戶端。

快取加速機制#

  • 快取命中:Proxy 檢查本地快取,若已有資料則直接回傳,完全不經過 Internet
  • 快取未命中:Proxy 向外部抓取資料後存入快取,再回傳給用戶

後續使用者請求同一資料時直接從快取提取,形成「假象加速」效果。

Proxy vs. NAT#

比較項目NATProxy
運作層級OSI 2-4 層應用層(第 7 層)
運作方式封包過濾與 IP 偽裝服務程式代理
控制粒度IP/Port 層級URL/內容層級

NAT 不關心封包內容,Proxy 則能依據應用層資料(如 URL、網域)進行細緻的存取決策。

上層代理與分流#

本地 Proxy 可指定另一台 Proxy 作為上層代理,形成分級架構。優勢包括:

  • 利用頻寬更大的上層 Proxy 加速
  • 根據目標地區選擇不同上層 Proxy(如美國、日本各走不同線路)
  • 減輕本地 Proxy 負擔

優缺點分析#

優點#

  • 節省對外頻寬,降低網路負載
  • 快取提供更短路徑,加速存取
  • 隱藏內部用戶端 IP
  • 可監控與控制上網行為

缺點#

  • 內部人員可能濫用匿名性
  • 快取可能導致取得過時資料
  • 硬碟效能是影響 Proxy 速度的關鍵因素
  • 設定複雜,效能優化不易

ACL 存取控制#

Squid 透過 ACL(Access Control List)進行精細的存取管理:

  • 來源管理:限制哪些 IP/網段可使用 Proxy
  • 目標管理:限制可存取的目標網域或 URL
  • 時間管理:限制可使用 Proxy 的時段

ACL 規則具有順序性,從第一條開始比對,符合即停止。應先設定拒絕規則,再設定允許規則,避免規則失效。

通透式代理(Transparent Proxy)#

在 NAT 伺服器上設定埠口轉導規則,將所有 port 80 流量強制導向 Proxy 服務。用戶端完全不需要設定瀏覽器,即自動經過 Proxy。

通透式代理特別適合學校或企業環境,無需逐一設定用戶端,管理方便。但使用者無法自行選擇是否經過 Proxy。

適用場景#

  • 使用者多且主要使用 WWW 服務
  • 對外頻寬不足的環境
  • 需要監控或限制上網行為
  • 常瀏覽靜態內容的網站(動態內容快取效果有限)