
我租了一台帶有靜態 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
在這種情況下您不能使用透明代理。
透明代理必須位於流量的網路路由中,以便它可以攔截並重寫所有流量以將其重定向到魷魚,並且由於您的伺服器位於網路路徑之外,因此您無法執行此操作。
如果您想使用此伺服器作為代理,則它必須是普通的轉送代理。