当前位置: 技术问答>linux和unix
关于iptables DNAT的问题求救!
来源: 互联网 发布时间:2016-02-24
本文导语: 我想测试dnat的功能: 有三台主机: 192.168.3.187 linux 192.168.3.134 xp 192.168.3.249 xp 我在3.187上配置 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to 192.168.3.249 现在在3.134上执行"telnet 192.168.3.187 3389" ...
我想测试dnat的功能:
有三台主机:
192.168.3.187 linux
192.168.3.134 xp
192.168.3.249 xp
我在3.187上配置
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to 192.168.3.249
现在在3.134上执行"telnet 192.168.3.187 3389"
请问这样可以把报文转到3.249上面去吗?我在3.249上抓不到报文,为什么?
是不是还有什么必要条件?
请高手帮帮忙!
有三台主机:
192.168.3.187 linux
192.168.3.134 xp
192.168.3.249 xp
我在3.187上配置
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to 192.168.3.249
现在在3.134上执行"telnet 192.168.3.187 3389"
请问这样可以把报文转到3.249上面去吗?我在3.249上抓不到报文,为什么?
是不是还有什么必要条件?
请高手帮帮忙!
|
-A PREROUTING
这一条表明此规则的挂载点是在ROUTING某个数据包之前。而按照你的测试用例,你的数据包根本不会被3.187转发给另外的机器,根本到不了这个挂载点(而是直接被3.187给consume了)。
这是你的测试的问题所在。
这一条表明此规则的挂载点是在ROUTING某个数据包之前。而按照你的测试用例,你的数据包根本不会被3.187转发给另外的机器,根本到不了这个挂载点(而是直接被3.187给consume了)。
这是你的测试的问题所在。
|
根据IP路由的规则,IP地址在同一段中的IP数据包不用转发,
所以在3.249上抓不到TCP报文
所以在3.249上抓不到TCP报文
|
问下 如何看它是否用了这条规则 ? 因为我老是测试测不过去!
修改了 /etc/rc.d/filewall 的脚本 里的规则 如何生效啊? 我已经在/etc/rc.d/rc.local里加入了脚本
我 service iptables restart 后 再看 /sbin/iptables -t nat -L -n 规则是空的!
修改了 /etc/rc.d/filewall 的脚本 里的规则 如何生效啊? 我已经在/etc/rc.d/rc.local里加入了脚本
我 service iptables restart 后 再看 /sbin/iptables -t nat -L -n 规则是空的!