iptables:如何通过服务器redirect/转发没有stream量的stream量?

我现在用iptables(整天)玩弄我的规则,但有一个问题..我redirect的所有stream量通过我的服务器,然后通过我的服务器。 我们正在谈论高带宽的高数量。 所以我希望有一个选项可以将用户redirect到外部全球IP,所以它直接和外部IP和用户IP通话。

我现在做了:

iptables -t nat -A PREROUTING -p tcp --dport 25 -j DNAT --to-destination 11.111.11.111:25 iptables -t nat -A POSTROUTING -j MASQUERADE 

*这只是一个例子,真正的项目不是港口25,也是一个其他的程序(我们正在… …)

但现在所有stream量都像这个用户>我的服务器>外部服务器>我的服务器>用户

但我希望得到这样的:User> MyServer> ExternalServer> User

与CNAME类似,也可能是htaccesredirect。 这样的事情甚至可能吗?

你想要一个xinetdredirect,而不是一个iptables(我从来没有需要这样做的愤怒)。 尝试这个:

 #/etc/xinetd.d/redirect25
服务redirect25
 {
        端口= 25
         type = UNLISTED
        禁用=否
         socket_type =stream
        等待=不
         user = root
        redirect= 11.111.11.111 25
 }

然后重新启动xinetd。 鉴于这是邮件端口,您可能需要考虑中继问题。

您可能需要使用LVS / TUN或LVS / DR方法之类的Linux虚拟服务器 。 这些在负载均衡器上创build一个虚拟IP,然后将传入数据包通过隧道或直接路由到后端服务器,同时保留原始源IP和目标IP(与NAT不同)。 后端服务器可以直接将响应数据包路由到客户端,而不是通过负载均衡器。

我不认为这可以单独使用iptables来完成。