首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IP到IP转发iptables [centos]

IP到IP转发iptables [centos]
EN

Server Fault用户
提问于 2012-10-27 10:16:04
回答 2查看 4.1K关注 0票数 1

我有两个服务器。服务器1,ip 1.1.1.1,服务器2,ip 2.2.2.2

我的域example.com目前为1.1.1.1,但很快我将切换到IP2.2.2.2。我已经为域example.com设置了一个较低的TTL,但是在我更改域的ip地址后,有些人仍然会访问旧的ip a。

现在,这两台机器都运行centos5.8,使用iptables和nginx作为run服务器。

我希望转发所有仍然访问服务器1.1.1.1到2.2.2.2的通信量,这样就不会有任何停机时间。

现在我找到了这个教程:http://www.debuntu.org/how-to-redirecting-network-traffic-a-new-ip-using-iptables,但我似乎无法让它工作。

我启用了ip转发:echo "1" > /proc/sys/net/ipv4/ip_forward

之后,我运行了以下两个命令:

代码语言:javascript
复制
/sbin/iptables -t nat -A PREROUTING -s 1.1.1.1 -p tcp --dport 80 -j DNAT --to-destination 2.2.2.2:80
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE

但是,当我在浏览器中加载http://1.1.1.1时,我仍然可以得到1.1.1.1上承载的页面,而不是2.2.2.2中的内容。我做错了什么?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-10-27 10:19:26

尝试将-s 1.1.1.1更改为-d 1.1.1.1

你想要匹配目标地址而不是源地址.

您还需要调整您的伪装规则,以包括流量在返回的道路上采取的接口。(很可能是eth0或类似的)。

使用-o标志执行此操作。例如: iptables -t nat -A POSTROUTING -o eth0 -j伪装

票数 2
EN

Server Fault用户

发布于 2012-10-27 17:08:07

这两台机器是否在同一个子网中,可以在不经过其他路由器的情况下到达对方?如果没有,所描述的方法即使设置正确也不能工作。

在进行这种迁移时,我经常使用牛皮转发随机的TCP端口。或者Apache的mod_proxy,如果您以任何方式使用Apache(您不使用,但我使用)。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/442920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档