IPTables在不隐藏源IP的情况下转发流量

时间:2014-03-29 18:49:35

标签: iptables forward gateway

我正在尝试将云服务器设置为网关,将所有流量转发到我的第二个云服务器。问题是目标服务器(第二个云)只能看到第一个云服务器的IP地址。

是否可以保留源IP,以便显示连接到第一个云服务器的IP地址。我试过删除MASQUERADE,但云#1 - >之间的连接云#2不再正常工作。

  

-A FORWARD -p tcp -m tcp --dport 25565 -j ACCEPT

     

-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

     

-A PREROUTING -p tcp -m tcp --dport 25565 -j DNAT - to-destination DESTINATIONIP:PORT

     

-A POSTROUTING -j MASQUERADE

它适用于此设置,但不显示源IP。您是否知道如何不隐藏连接到第一个云服务器的IP?

由于

2 个答案:

答案 0 :(得分:0)

使用-A POSTROUTING -j MASQUERADE所有传出转发的数据包都将具有相应传出接口的源IP。

您应该更具体地对待伪装/ SNAT的数据包。

答案 1 :(得分:0)

云1和云2必须位于同一网络中,VPN很好

在cloud1上:

-A FORWARD -p tcp -m tcp --dport 25565 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A PREROUTING -p tcp -m tcp --dport 25565 -j DNAT --to-destination DESTINATIONIP:PORT
-A POSTROUTING -j MASQUERADE

在cloud2上,我们将所需的数据包标记为1,eth0是默认网关:

iptables -t mangle -A OUTPUT -o eth0 -p tcp --sport 25565 -j MARK --set-mark 1

您需要在cloud2上操纵路由表: 编辑/ etc / iproute2 / rt_tables,添加该行

1 http

在这里,tun0是cloud2上的vpn接口:

ip route add default via ip_vpn_cloud1 dev tun0 table http
ip rule add from all fwmark 1 table http

确保在/etc/sysctl.conf中将net.ipv4.conf.all.rp_filter和net.ipv4.conf.default.rp_filter设置为1