如何為 Squid 代理程式設定 iptables?

如何為 Squid 代理程式設定 iptables?

我租用了一台具有靜態IP位址的伺服器上的空間,我想在這台伺服器上設定透明代理。

在配置 Squid 以使用偵聽器進行測試後http_access allow all,我想設定 iptables 資訊。我只有一個乙太網路連接並安裝了靜態 IP 位址。我查找了一些有關如何使用單一網卡執行此操作的文檔,但找不到任何文檔。 (有許多可供兩個或更多的網卡使用,但不適用於單一網卡。)

目前它給了我這個輸出:

root@1:~# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:49 errors:0 dropped:0 overruns:0 frame:0
          TX packets:49 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3536 (3.5 KB)  TX bytes:3536 (3.5 KB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:127.0.0.1  P-t-P:127.0.0.1  Bcast:0.0.0.0  Mask:255.255.255.255
          inet6 addr: ::2/128 Scope:Compat
          inet6 addr: 2a01:[....]external-ipv6[...]/128 Scope:Global
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:551353 errors:0 dropped:0 overruns:0 frame:0
          TX packets:455717 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:351211942 (351.2 MB)  TX bytes:267054641 (267.0 MB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:[...]external-ipv4[...]  P-t-P:[...]external-ipv4[...]  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

我不太確定我應該從這裡去哪裡。我的 iptables 目前完全是空的。我是否需要 ebtables 才能正常工作的透明代理,或者正確的 iptables 是否足以在沒有 ebtables 的情況下完成此任務?如果是這樣,您可以給我一個簡單的命令來設定它們嗎?

資料來源:

#

特別是這句話應該解釋我如何做到這一點,但我不明白......

接下來,我新增了以下規則,將所有 http 請求(來自連接埠 80)轉送到 Squid 伺服器連接埠 3128 :

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

iptables -t nat -A PREROUTING -i venet0 -p tcp --dport 80 -j DNAT --to 127.0.0.1:3128
iptables -t nat -A PREROUTING -i venet0:0 -p tcp --dport 80 -j REDIRECT --to-port 3128

這應該有效,但事實並非如此...

相關內容