免费注册 查看新帖 |

Chinaunix

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

ftp主动连接的一个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-15 20:26 |只看该作者 |倒序浏览
这几天,俱乐部几个成员在做sf的性能测试,sf是一个开源的ftp搜索引擎。
昨天晚上的时候,他们都说sf爬数据有问题,一直爬不下任何数据,我就纳闷了,以前的时候,sf是可以爬数据的,难道是我最近改otter的时候,设定了一些规则,Drop掉了ftp的数据包。
普通的ftp客户端,无论是ftp、lftp、gftp都能够访问ftp站点,但是sf的测试程序却不行。总是提示出错,而且错误代码每一次还不一样。
拿出自己的行头,wireshark。抓包,抓下数据包看一下,到底是出了什么问题。
我看了一下普通的客户端的数据包
.........
c->s:PASV
........
c->s:LIST
........
客户端采用的是被动模式。
这里就要解释一下主动模式跟被动模式了。所谓的主动模式跟被动模式,都是数据连接,都是针对于服务器而言的。
主动模式:客户端指定ip和端口,服务器来主动连接客户端,服务器处于主动
被动模式:服务器指定端口,然后由客户端连接服务器,服务器处于被动
主动模式的数据一般是:
......
c->s:PORT xxx.xxx.xxx.xxx.xxx.xxx
......
c->s:LIST
......
关键就在于这个主动模式,是服务器来连接客户端,如果客户端有一个公网ip,还好办。但是如果这个客户端在局域网中,那么就会有些问题了。现在的防火墙,一般都屏蔽外部到内网的连接请求,所以一般PORT会出问题。
一旦出现这个问题后,一般的ftp客户端都支持修改ftp工作方式,将PORT改为PASV模式,这样就可以顺利的通过防火墙。
在现在的情况下,修改sf的代码,将ftp的工作方式改为PASV,也是可以的,但是我想还是不用改代码了,在防火墙上面做一下配置。
iptables这么强大的防火墙,不会连这个问题,都没有考虑到吧?
Google......
发现:
对于比较复杂的协议,如FTP和ICQ、IRC不易跟踪,内核有专门的模块来实现,对ftp而言
是ip_conntrack_ftp,只要modprobe
ip_conntrack_ftp,开始iptables就可以了,详见http://iptables-
tutorial.frozentux.net/cn/iptables-tutorial-cn-1.1.19.html
但是加载ip_conntrack_ftp之后还有问题,既然是模块的问题,我就modprobe ip_ Tab了一下列出了,iptables的模块,看到了一个ip_nat_ftp。
加载ip_nat_ftp之后,OK
总结:为了解决局域网ftp客户端的主动连接问题,加载ip_conntrack_ftp和ip_nat_ftp。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12592/showart_278543.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP