- 论坛徽章:
- 5
|
这个思路也是不行的。\r\n\r\n我已经测试过了。IPTABLES对进入的流先匹配NAT SESSION表的。\r\n当外部的访问经过此规则的时候:\r\n\r\niptables -t nat -A PREROUTING -p tcp -i ppp0 -d $ipaddr1 --dport 8080 -j DNAT --to-destination 192.168.1.37:8080\r\n\r\n就会建立响应的会话SESSION,而对应的回包就先匹配这个SESSION表,因为前面已经建立了,因此总会匹配。这就导致后续的\r\niptables -t nat -A PREROUTING -p tcp -s \\\r\n192.168.1.0/24 \\! -d 192.168.1.6-j \\\r\nREDIRECT --to-ports 40030\r\n永远得不到机会执行。\r\n\r\n\r\nLZ要实现自己的功能,要么就别用IPTABLES,自己在那个40030模块实现服务器的映射。要么就修改IPTABLES代码。\r\n当然还有更加BT的方法就是做IPTABLES和你的那个40030不是一台机器,通过调整路由使他们的进出不一致这样应该没问题。\r\n\r\n明天再帮你测一下最后的那个思路吧。\r\n你们的要求好BT啊。至此我也不明白你要做的产品是干吗的。这样会破坏TCP端到端的回话完整性的,会引来很多奇怪的问题。 |
|