如何在Linux上redirect一个端口

我想redirect所有邮件通信(本地端口25)到另一台服务器发送邮件。 我应该使用BIND,iptables还是其他工具? 我将如何做到这一点?

“BIND”在你的问题是混乱:)。 如果您尝试通过一台服务器提供Web服务并从另一台服务器提供邮件服务,则只需将Mail Exchanger域的Alogging指向第二台服务器IP(邮件服务器IP)即可。 没有必要加载您的邮件stream量的第一台服务器(networking服务器)。 因此,您只需将MXlogging(通常为mail.yourdomain.com)设置为相应的服务器IP(第二台服务器)即可。

– $

假设我理解你的场景:你希望来自外部客户端的所有stream量到达服务器1并被立即转发到服务器2,但仍然看起来服务器2来自客户端而不是服务器1。

首先,检查您的Linux机器上是否启用了IP转发function,或仅仅使用sysctl启用它:

sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 0 

接下来你看看一些将所有数据包重新路由到新服务器的iptables魔术:

 iptables -t nat -D PREROUTING -p tcp –dport destination-port-goes-here -j DNAT –to-destination your.IP.goes.here 

完成上述操作后,您应该将所有stream量转发到新服务器,但数据包应该来自客户端,而不是正在进行转发的服务器。 当然, 在执行之前,先为自己validation一下 。

如果你最终得到了很多这样的规则,那么ferm就是pipe理这些规则的一个非常方便的工具