vsftpd版本引起的下载失败

来源:互联网 发布:淘宝上祛痘产品靠谱吗 编辑:程序博客网 时间:2024/06/08 10:15

问题背景:应用启动时去某机器上下载文件,但是其中某一台总是下载失败,但是手动是可以的

问题过程:首先,我们怀疑是vsftpd配置问题,比如主被动模式配置错误,发现ftp都是vsftpd的方式,没有用xinetd代理,而且主被动模式都是一致,那为什么会有的机器行,有的机器不行呢?添加jsp模拟下载,类似如下代码(使用的ftp类来自于commons-net-3.1.jar)

        FTPFile[] files = ftpClient.listFiles(fileName);        out.prinln(files.length);
发现在files.length总是0,同时,抓包发现,list目录是可以返回文件的详细信息的,但是直接list文件却无法读取到;虽然给了成功响应Response: 150 Here comes the directory listing

后来查了一下vsftpd版本,正常可用机器上的vsftpd版本为vsftpd-2.0.7-4.25.1,问题机器上为vsftpd-2.0.7-4.29.1,于是卸载vsftpd,再安装低版本重试,问题解决。

其实问题根因没有来得及深入去追究,比如为什么在略高那么一点点的版本上就不能list出具体文件,看下载源码也没发现问题,希望看到本文的有缘人可以去探究一把

2017-11-7 补充,经过确认,是我司服务器本版本配套的vsftp版本问题

原创粉丝点击