- 论坛徽章:
- 0
|
老问题重提,就是想让内网的机器通过它映射后的地址再访问它,整个问题的描述如下:\r\n之所以会出现无法在DNAT的内部网络通过DNAT服务的外部IP地址来访问的情况,是因为,如果服务从内部请求,那么经过DNAT转换后,将目标IP改写成内网的IP地址,譬如172.16.10.254,而请求的机器的IP是 172.16.10.100,数据包被网关172.16.10.1顺利的重定向到172.16.10.254的服务端口,然后,192.16.10.254根据请求发送回应给目的IP地址,就是172.16.10.100,但是,问题出现了,因为172.16.10.100请求的地址是外部IP 假设是221.232.34.56,所以他等待着221.232.34.56的回应,而172.16.10.254的回应请求被看做是非法的,被丢弃了。这就是问题的所在了。\r\n以前帖子的解决方案入戏:\r\n\r\n#我们先把发向外网IP221.232.34.56 80号端口的数据重定向到172.16.10.254 理论上来讲,如果只要从外网访问,这就完成了。 \r\n iptables -t nat -A PREROUTING -p tcp -d 221.232.34.56 --dport 80 -j DNAT --to-destination 172.16.10.254 \r\n #解决内网通过外网IP访问的情况 \r\n iptables -t nat -A POSTROUTING -p tcp -d 172.16.10.254 --dport 80 -j SNAT --to-source 172.16.10.1 \r\n\r\n\r\n但是我试过之后好像行不通,不知道谁能详细解释一下,谢谢!! |
|