免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4887 | 回复: 4
打印 上一主题 下一主题

FTPproxy在NAT模式下代理的PORT命令出问题[已解决] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-22 15:14 |只看该作者 |倒序浏览
本帖最后由 xtlx2000 于 2010-05-23 11:20 编辑

这几天写了一个FTPproxy,但出现问题:
ftpclient运行在192,168,2,154(内网)
FTPproxy运行在192,168,2,155(同一内网)
ftpserver运行在202.115.128.151(外网)
ftpclient和FTPproxy在同一局域网内,且是NAT模式,在FTPproxy收到一个ftpclient的类似PORT 192,168,2,154,89,402 命令后代理成PORT 192,168,2,155,79,302发送给server(比如202.115.128.151),错误是server没有连到FTPproxy,在server这台机器上抓包发现,server收到的PORT命令是:192.168.2.155,79,302 即运行FTPproxy的机器的NAT没有将这个内网地址转换成外网地址!!!这是怎么回事呢?是VMware中的NAT设置问题吗?

当在NAT里用正常的ftpclient直接访问外网的server的时候,NAT是如何识别FTP的PORT命令中的内网地址并转成外网地址的呢????

谢谢!!

论坛徽章:
0
2 [报告]
发表于 2010-05-22 19:57 |只看该作者
本帖最后由 silty 于 2010-05-22 20:00 编辑

1、PAT设备默认仅会对IP和端口地址进行转换,FTP比较特殊,除了转换IP和端口外,还要转换PORT或PASV包应用层所携带的IP、端口号,同时开放相对应的端口,因为楼主NAT设备不支持FTP ALG,所以出现上述问题

2、NAT是如何识别FTP的PORT命令中的内网地址并转成外网地址的呢?
设备根据协议号或端口号检测并对相应地址进行转换,当然,前提是设备支持

论坛徽章:
0
3 [报告]
发表于 2010-05-22 21:41 |只看该作者
本帖最后由 xtlx2000 于 2010-05-22 22:07 编辑

回复 2# silty


    但是我的VMwarte有了alg,还有个测试是一样的效果:
我的机器是装的xp,VMware  NAT方式的linux,子啊xp下启动一个serv-U服务端,选的监听端口不是21,而是9898,在linux下用client连,其中的port还是失败,原因就是PORT命令中的IP是内网IP,这是为什么呢?

论坛徽章:
0
4 [报告]
发表于 2010-05-22 22:50 |只看该作者
本帖最后由 silty 于 2010-05-22 23:10 编辑

2、NAT是如何识别FTP的PORT命令中的内网地址并转成外网地址的呢?
设备根据协议号或端口号检测并对相应地址进行转换,当然,前提是设备支持

ALG是预先定义好的,否则那么数据包----不同IP不同端口,它也不知道哪个是FTP应用啊。默认仅监听21端口,若修改了FTP server端口,必须重新定义ALG,否则它会将pasv、port包当普通包处理。

论坛徽章:
0
5 [报告]
发表于 2010-05-23 11:20 |只看该作者
Thank you
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP