首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将流量转发给本地LAN IP,同时保持发端者IP

将流量转发给本地LAN IP,同时保持发端者IP
EN

Server Fault用户
提问于 2013-07-18 09:54:37
回答 2查看 7.7K关注 0票数 0

我试图将流量从一台服务器转发到另一台服务器,同时保持原始请求者IP。因此,我不能使用SNAT或伪装。

服务器A:

公共知识产权: 111.111.111.111

私人知识产权: 10.0.0.1

服务器B:

公众IP: 222.222.222.222

私人知识产权: 10.0.0.2

我想将流量fr n服务器A (111.111.111.111)转发给服务器B (10.0.0.2)。

这样做很好:

代码语言:javascript
复制
iptables -t nat -A PREROUTING -d 111.111.111.111 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.2:80
iptables -t nat -A POSTROUTING -j MASQUERADE

但是,由于在本例中我使用的是伪装,目标服务器(10.0.0.2)会看到从111.111.111.111开始的所有通信量,即apache-日志和其他文件在从111.111.111.111开始时显示所有请求。

我如何设置它而不是这样,以便原始源IP地址被保留,就像家庭路由器在使用端口转发时所做的那样。

我假设我需要以某种方式设置一条“路由”,这样10.0.0.2的传出流量就会通过服务器A而不是试图响应服务器B的公共IP?

EN

回答 2

Server Fault用户

发布于 2013-07-18 10:06:58

你似乎对人际关系感到困惑。

你在NAT级别想要的根本就没有意义。

必须在Layer3网络数据包中重写地址,才能使NAT工作。

私有IP空间首先是不可路由的(在互联网上,intrAnets的行为可能有所不同)。

您希望看到原始ip地址的位置位于第4层:应用层。(原木等)那里的信息根本不受NAT的影响。您可能会看到NAT路由器的ip地址,但是Apache日志仍然应该指示NAT后面的机器/主机名/用户根据HTPP报头信息请求信息。

你把不相关的事情混在一起。

票数 2
EN

Server Fault用户

发布于 2014-07-11 00:10:57

Iptables是很棒的,但是如果您将所有东西都保存在nginx中,那么它就可以完成它设计的工作。使用iptables可以使用其他高级技巧,如日志记录和数据包标记,但如果您没有理由在nginx之外执行此操作,则应该使用nginx。这样,如果您移动到另一个系统,如(Ugly)windows服务器或FreeBSD,那么配置将在nginx中完成,而不是在依赖于系统的级别上完成。如果您担心速度,这就是nginx设计的目的,所以如果您使用一些预先制作的或开发您自己的日志监视器,那么在您使用的每个系统上都是一样的。Linux很棒,不应该有理由放弃它,但是如果您必须用其他环境实现更多的服务器,那么您所有的信任都是独立于环境的。

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

https://serverfault.com/questions/524338

复制
相关文章

相似问题

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