我正在尝试将云服务器设置为网关,将所有流量转发到我的第二个云服务器。问题是目标服务器(第二个云)只能看到第一个云服务器的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?
由于
答案 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