我有这个场景
----------------- ---------------- ----------
| SERVER A | ---(port:2128)> | PROXY | ---> | INTERNET |
| (10.30.1.1) | | (10.30.2.2) | -----------
----------------- ----------------
现在我有一台服务器 B(10.31.1.1),它无法访问代理,但可以访问服务器 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
答案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