Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

RHEL 5 透明代理部署全攻略:Squid + iptables 實現零配置上網

編輯:Linux 教學

透明代理原理

透明代理讓客戶端無需手動設定瀏覽器代理,即可透過網關強制導流 HTTP 流量至 Squid 快取伺服器。核心機制為:NAT 閘道器利用 iptables REDIRECT 或 DNAT 將目的埠 80 的封包攔截轉發至 Squid 監聽埠(預設 3128),Squid 以透明模式處理請求並回應。

實驗拓撲

  • NAT 閘道器: 雙網卡 eth0(內網 192.168.0.1)、eth1(ADSL 撥號獲取 ppp0)
  • Squid 伺服器: 獨立主機 192.168.0.200 或與 NAT 共機
  • 客戶端: 內網任意主機,預設閘道指向 NAT 的 eth0

核心配置步驟

1. 開啟核心轉發

echo 1 > /proc/sys/net/ipv4/ip_forward
# 永久生效請修改 /etc/sysctl.conf: net.ipv4.ip_forward = 1

2. 設定 NAT 出站規則

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

3. 透明代理導流規則(二選一)

情境 A:Squid 與 NAT 同機

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

情境 B:Squid 獨立部署(192.168.0.200:3128)

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.200:3128

關鍵差異: REDIRECT 將封包導向本機指定埠;DNAT 改寫目的 IP:PORT 轉發至遠端主機。生產環境建議情境 B 解耦網關與快取層。

4. Squid 透明模式配置

編輯 /etc/squid/squid.conf,關鍵行:

http_port 3128 transparent

其他 ACL、快取目錄、記憶體參數按負載調整。重啟服務:service squid restart

驗證與除錯

  • 客戶端瀏覽器不設定任何代理直接訪問網站
  • 查看 Squid 存取日誌:tail -f /var/log/squid/access.log 應見 TCP_MISS 或 TCP_HIT 記錄
  • 抓包確認:tcpdump -i eth0 port 80 見封包導向 3128 埠

常見坑點

  1. HTTPS 不可透明代理: 443 埠加密流量無法被 Squid 解析,需部署 SSL-Bump 或改用 WPAD/PAC 檔案
  2. 回環介面導流: 若 NAT 本機亦需代理,需在 OUTPUT 鏈同樣加入 DNAT 規則
  3. MTU 問題: PPPoE 介面 MTU 通常 1492,大封包可能導致傳輸中斷,建議啟用 iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

擴展:持久化規則

service iptables save
# 或手動存入 /etc/sysconfig/iptables

配合 chkconfig squid on 實現開機自動生效。

Copyright © Windows教程網 All Rights Reserved