linux – 使用iptables将http流量转发到另一个ip地址
我们希望将所有http流量转发到Amazon EC2股票
Linux机器(基于CentOS)上的另一个IP地址.我知道如何使用代理规则和apache执行此操作,但我假设iptables是一个更快的解决方案(也许不是!)
命令 sudo iptables -P INPUT ACCEPT sudo iptables -F sudo iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 208.68.208.81:80 sudo 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:80 Chain INPUT (policy ACCEPT 0 packets,0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 11 packets,820 bytes) pkts bytes target prot opt in out source destination Chain 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 destination Chain 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:80 Chain 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转发. 除了DNAT之外,您还可以使用SNAT或MASQURADE规则来处理第2点和第3点,但如果这样做,则会丢失流量的原始源IP.这将使滥用控制变得非常困难. 第2点和第3点的另一个解决方案是在两台服务器之间建立VPN.然后使用DNAT通过VPN转发流量并使用基于IP的源路由将回复带回NAT. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |