linux – 使用iptables将http流量转发到另一个ip地址

linux – 使用iptables将http流量转发到另一个ip地址,第1张

概述我们希望将所有http流量转发到Amazon EC2股票 Linux机器(基于CentOS)上的另一个IP地址.我知道如何使用代理规则和apache执行此 *** 作,但我假设iptables是一个更快的解决方案(也许不是!) 命令 sudo iptables -P INPUT ACCEPTsudo iptables -Fsudo iptables -A PREROUTING -t nat -p t 我们希望将所有http流量转发到Amazon EC2股票 Linux机器(基于CentOS)上的另一个IP地址.我知道如何使用代理规则和apache执行此 *** 作,但我假设iptables是一个更快的解决方案(也许不是!)

命令

sudo iptables -P input ACCEPTsudo iptables -Fsudo iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 208.68.208.81:80sudo iptables -A FORWARD -p tcp -d 208.68.208.81 --dport 80 -j ACCEPT

iptables -t nat -L -v -n

Chain PREROUTING (policy ACCEPT 0 packets,0 bytes) pkts bytes target     prot opt in     out     source               destination    0     0 DNAT       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 to:208.68.208.81:80Chain input (policy ACCEPT 0 packets,0 bytes) pkts bytes target     prot opt in     out     source               destinationChain OUTPUT (policy ACCEPT 11 packets,820 bytes) pkts bytes target     prot opt in     out     source               destinationChain POSTROUTING (policy ACCEPT 11 packets,820 bytes) pkts bytes target     prot opt in     out     source               destination

iptables -L -v -n

Chain input (policy ACCEPT 202 packets,15705 bytes) pkts bytes target     prot opt in     out     source               destinationChain FORWARD (policy ACCEPT 0 packets,0 bytes) pkts bytes target     prot opt in     out     source               destination    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            208.68.208.81       tcp dpt:80Chain OUTPUT (policy ACCEPT 145 packets,13747 bytes) pkts bytes target     prot opt in     out     source               destination

http://208.68.208.81进入Web浏览器工作,但是当我尝试使用此配置的EC2机器的IP地址时,我得到超时.我确实看到一些数据包显示为-d iptables -t nat -L -v -n

救命!

更新:将-i eth0添加到PREROUTING规则

解决方法 我看到有三个潜在的问题(与另一个答案相反,即使在未经编辑的问题版本中,我也看不到任何可能导致“循环”的问题).

>必须启用IP转发.
>在被发现并放回网络后,数据包可能成为源地址过滤的牺牲品,因为它看起来非常像欺骗性数据包.
>对通过NAT的数据包的响应必须通过相同的NAT,以便可以执行反向转换.否则,客户端将获得具有错误的源IP /端口的响应,该响应可能会丢失(如果它尚未被反向路径过滤丢弃).

除了DNAT之外,您还可以使用SNAT或MASQURADE规则来处理第2点和第3点,但如果这样做,则会丢失流量的原始源IP.这将使滥用控制变得非常困难.

第2点和第3点的另一个解决方案是在两台服务器之间建立VPN.然后使用DNAT通过VPN转发流量并使用基于IP的源路由将回复带回NAT.

总结

以上是内存溢出为你收集整理的linux – 使用iptables将http流量转发到另一个ip地址全部内容,希望文章能够帮你解决linux – 使用iptables将http流量转发到另一个ip地址所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1041181.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存