如何使用IPTables实现端口转发?

如何使用IPTables实现端口转发?

我需要使用IPTables实现以下场景:

场景图片链接

在此场景中,我们有一台只有一个 IP 为 的 NIC 的前端服务器1.2.3.4,另外还有三台 IP 设置为172.20.20.20192.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

相关内容