我现在用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来完成。