Proxy 的基本原理#
代理伺服器扮演「代理人」角色:當用戶端需要網際網路資料時,Proxy 代替用戶端向目標伺服器發出請求。網際網路上看到的請求者是 Proxy 的 IP,而非用戶端。
快取加速機制#
- 快取命中:Proxy 檢查本地快取,若已有資料則直接回傳,完全不經過 Internet
- 快取未命中:Proxy 向外部抓取資料後存入快取,再回傳給用戶
後續使用者請求同一資料時直接從快取提取,形成「假象加速」效果。
Proxy vs. NAT#
| 比較項目 | NAT | Proxy |
|---|---|---|
| 運作層級 | 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 服務
- 對外頻寬不足的環境
- 需要監控或限制上網行為
- 常瀏覽靜態內容的網站(動態內容快取效果有限)