IPTables转发流量而不隐藏源IP

问题描述 投票:-1回答:2

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

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

-A转发-p tcp -m tcp --dport 25565 -j接受

-A向前-m状态--state相关,已确定-j接受

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

-A POSTROUTING -j MASQUERADE

它可用于此设置,但不显示源IP。您对如何不隐藏连接到第一台云服务器的IP有任何想法吗?

谢谢

iptables forward gateway
2个回答
0
投票

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

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


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

© www.soinside.com 2019 - 2024. All rights reserved.