Lig*_*ard 6 linux web-hosting iptables
我们希望将所有 http 流量转发到 Amazon EC2 股票 Linux 机器(基于 CentOS)上的另一个 IP 地址。我知道如何使用代理规则和 apache 来做到这一点,但我假设 iptables 将是一个更快的解决方案(也许不是!)
命令
须藤 iptables -P 输入接受 须藤 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
链 PREROUTING(策略接受 0 数据包,0 字节) pkts 字节目标 prot 选择退出源目标 0 0 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 到:208.68.208.81:80 Chain INPUT(策略接受0包,0字节) pkts 字节目标 prot 选择退出源目标 Chain OUTPUT(策略接受11个数据包,820字节) pkts 字节目标 prot 选择退出源目标 Chain POSTROUTING(策略接受 11 个数据包,820 字节) pkts 字节目标 prot 选择退出源目标
iptables -L -v -n
Chain INPUT(策略接受202个数据包,15705字节) pkts 字节目标 prot 选择退出源目标 Chain FORWARD(策略接受 0 个数据包,0 个字节) pkts 字节目标 prot 选择退出源目标 0 0 接受 tcp -- * * 0.0.0.0/0 208.68.208.81 tcp dpt:80 Chain OUTPUT(策略接受145个数据包,13747字节) pkts 字节目标 prot 选择退出源目标
http://208.68.208.81进入网络浏览器可以工作,但是当我使用此配置尝试 EC2 机器的 IP 地址时,我得到了超时。我确实看到一些数据包出现watch -d iptables -t nat -L -v -n
帮助!
更新:添加-i eth0
到 PREROUTING 规则
我看到三个潜在的问题(与其他答案相反,即使在问题的未经编辑版本中,我也没有看到任何会导致“循环”的问题)。
除了 DNAT 之外,您还可以使用 SNAT 或 MASQURADE 规则来解决第 2 点和第 3 点,但如果您这样做,则会丢失流量的原始源 IP。这将使滥用控制变得非常困难。
第 2 点和第 3 点的另一个解决方案是在两台服务器之间设置 VPN。然后使用 DNAT 通过 VPN 转发流量,并使用基于源 IP 的路由将回复带回 NAT。
归档时间: |
|
查看次数: |
9710 次 |
最近记录: |