linux – IPTables端口转发保持原始IP地址

前端之家收集整理的这篇文章主要介绍了linux – IPTables端口转发保持原始IP地址前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望有人可以帮我配置这个配置.我已经有了一个工作设置,其中 Linux机箱充当路由器,只是为公共IP进行端口转发.这些都是公共IP的顺便说一句.

HOST_x – 可以是具有公共IP的任何主机. (例如:x.x.x.x)

MY_LINUX – 使用IPtables只为公共IP进行端口转发. (固定IP,例如:2.2.2.2)

SERVER – 具有公共IP地址的Web服务器. (固定IP,例如3.3.3.3)

端口 – (TCP端口= 80)

这是MY_LINUX上的配置:

iptables -t nat -A PREROUTING -p tcp -d 2.2.2.2 –dport 80 -j DNAT
–to-destination 3.3.3.3:80 iptables -t nat -A POSTROUTING -p tcp -d 3.3.3.3 –dport 80 -j MASQUERADE

上面的配置有效.当HOST_x在浏览器上的2.2.2.2中输入时,它就得到了
3.3.3.3的网页.

我在这里唯一的问题是目标服务器(3.3.3.3)看到来自MY_LINUX(2.2.2.2)的请求,我想看到的是请求HOST_x(x.x.x.x)的原始IP.

我将不胜感激任何建议,谢谢.

解决方法

我认为这在第3层是不可能的. HOST_x期望剩余的数据包来自发起连接MY_LINUX的主机.如果SERVER突然进入TCP握手和回复的中间,HOST_x将忽略这些数据包.

由于HOST_x和SERVER具有直接连接性,我认为最好将此路由方案移至应用层并实现HTTP重定向.然后HOST_x直接打开到终点的连接.

猜你在找的Linux相关文章