我正在尝试将云服务器设置为网关,该网关将所有流量转发到第二台云服务器。问题在于目标服务器(第二个云)仅看到第一个云服务器的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有任何想法吗?
谢谢
使用-A POSTROUTING -j MASQUERADE,所有传出的转发数据包将具有相应传出接口的源IP。
您应该更具体地伪装/ SNAT的数据包。
云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