Ubuntu

如何使用 iptables 轉發代理請求

  • February 21, 2014

我有這個方案

-----------------                   ----------------        ----------
| SERVER A        | ---(port:2128)> | PROXY          | ---> | INTERNET |
| (10.30.1.1)     |                 | (10.30.2.2)    |      -----------
-----------------                   ----------------        

現在我有一個無法訪問 PROXY 的 SERVER B (10.31.1.1),但可以訪問 SERVER A

我需要將伺服器 A 配置為接受來自伺服器 A 的請求並將它們轉發到代理,以便它可以訪問網際網路。

我以這種方式通過 iptables 進行了嘗試:

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -p tcp -i 10.30.1.1 --dport 3128 -d 10.30.2.2 -j ACCEPT
iptables -t nat -I PREROUTING -p tcp -i 10.30.1.1 --dport 3128 -j DNAT --to 10.30.2.2:3128

但是在伺服器 B 上我得到了

Unable to connect to 10.30.1.1

我不確定是否已經很好地理解了所有內容。代理 10.30.2.2 是否過濾輸入請求並知道如何路由數據包?

在這種情況下,我認為您將不得不使用 MASQUERADE 的選項來替換發件人的地址:

iptables -t nat -I PREROUTING -p tcp -i 10.30.1.1 -s 10.31.1.1 -J MASQUERADE

引用自:https://serverfault.com/questions/577399