服务器上有两个服务, . 分别在6666和6667端口上listen, 但是由于某些原因, 公网.上的用户只能访问该服务器上的6666端口。 --------------彩票
想到iptables的DN.AT 功.能, 为了让客户端的请求大致均衡的分发到6666和6667端口, 想了一个觉得比较“傻瓜”的办法:服务器
i.ptables -t nat -A PREROUTING -p tcp --spor.t 1024:32767 -d 192..168.80.100 --dport 6666 -j DNAT --to-destination 192.168.80.10.0:6666健康
iptables -t nat -A PRER.OUTING -p tcp -.-sport 32768:65535 -d 19.2.168.80.100 --dport 6666 .-j DNAT --to-destination 192.168.80.100:6667健康
就是对源端口是1024-32767的, 都分发.到6666, 源端口是32768-65535的请求, 都分发到6667。 不过觉得不够完美, 毕竟这种.不能做到真正的负载均衡。 看了iptab.les的手册页--- 印刷
也了解DNAT能做某种类型的负载均衡“ DNAT target是非常有用的。比如,你的Web服务器在LAN内部,而且没有可在Internet上使用的真实IP地址,那就可.以使用这个 target让防火墙把所有到.它自己HTTP端口的包.转发给LAN内部真正的Web服务器。目的地址也可以是一个范围,这样的话,DNAT会为每一个流随机分配一个地.址。因此,我们.可以用这个target做某种类型地负载平衡。” 手册页原话。 .
所以我把之前的两台规则都干掉, 用下面这一条规则, 想让ip.ta.bles帮我实现真正的请求均衡的分发到6666和6667的服务:学习
iptables -t nat -A PR.EROUTING -p tcp -d 192.168.80.10.0 --dport 6666 -j DNAT --to-.destination 192.168.80.100:6666-6667 乙肝
不过这样, 发现.netstat的结果是:( 游戏 )
~$ netstat -na | .grep :6666 | .grep EST | wc -l.
258
~.$ netstat -na | grep :6667 | grep EST |. wc -l 外汇
0
请求根本没有分发到6667端口.上的服务哦。.
在这里请教各位大拿, 我这种需求: “想到iptables的DNAT 功能, .为了让客户端的请求大致均衡的..分发到6666和6667端口”, 能实现么? 健康
先谢过了