如何僅使用一個硬體網卡為魷魚代理程式設定 iptables

如何僅使用一個硬體網卡為魷魚代理程式設定 iptables

我租了一台帶有靜態 IP 位址的伺服器,現在我想在該伺服器上設定透明代理。

在我使用偵聽器“http_access allowed 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 才能正常工作的透明代理嗎?正確的 iptables 是否足以在沒有 ebtables 的情況下完成此任務?如果是這樣,如果您能給我一個字串來設定它們,我將非常感激。

#

來源:wiki[.]ubuntuusers[.]de/Squid http://freecode.com/articles/configuring-a-transparent-proxywebcache-in-a-bridge-using-squid-and-ebtables http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html

#

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

接下來,我新增了以下規則,將所有 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

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

答案1

在這種情況下您不能使用透明代理。

透明代理必須位於流量的網路路由中,以便它可以攔截並重寫所有流量以將其重定向到魷魚,並且由於您的伺服器位於網路路徑之外,因此您無法執行此操作。

如果您想使用此伺服器作為代理,則它必須是普通的轉送代理。

相關內容