我需要使用IPTables实现以下场景:
在此场景中,我们有一台只有一个 IP 为 的 NIC 的前端服务器1.2.3.4
,另外还有三台 IP 设置为172.20.20.20
、192.168.20.10
和 的服务器10.10.10.8
。
目标是配置 IP 表,以便客户端仅连接到前端服务器(1.2.3.4
)并且请求根据端口进行转发,例如当绿色客户端请求时1.2.3.4:8080
,请求将发送到10.10.10.8:8080
,或者如果他发送请求到1.2.3.4:443
,他的请求将被转发到,172.20.20.20:443
同时保留原始客户端的 IP。
我需要这个 IP 作为用户识别的一部分——根据客户端的 IPm 提供不同的内容。
我已经阅读过这些问题,但没有帮助:
答案1
在防火墙/路由器上 - 发出以下命令(假设您希望它在端口 80 上工作。第一个命令提供到 Web 服务器的路径,第二个命令更正出站路径。
IPTABLES -t nat A PREROUTING -p tcp -d REAL.WORLD.IP --dport 80 -j DNAT --to-destination INTERNAL.IP
IPTABLES -t nat -A POSTROUTING -s INTERAL.IP -p tcp --dport 80 -j SNAT --to-source EXTERNAL.IP