博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vsftpd版本引起的下载失败
阅读量:2439 次
发布时间:2019-05-10

本文共 608 字,大约阅读时间需要 2 分钟。

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

问题过程:首先,我们怀疑是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版本问题

转载地址:http://lmcqb.baihongyu.com/

你可能感兴趣的文章
react项目设置全局变量_如何使用宗地设置React项目
查看>>
如何在Python 3中使用sqlite3模块
查看>>
如何在Node.js中编写异步代码
查看>>
nuxt.js 全局 js_如何在Nuxt.js应用程序中实现身份验证
查看>>
优雅编写js条件语句_如何在Go中编写条件语句
查看>>
debian文件系统_如何在Debian 10上设置文件系统配额
查看>>
angular id标记_使用传单在Angular中构建地图,第2部分:标记服务
查看>>
命令行基础知识:使用ImageMagick调整图像大小
查看>>
通过Angular,Travis CI和Firebase托管进行连续部署
查看>>
debian docker_如何在Debian 10上安装和使用Docker
查看>>
python pyenv_如何使用Pyenv和Direnv管理Python
查看>>
react 实现滚动加载_如何在React中实现平滑滚动
查看>>
报纸打字项目_如何使用打字稿设置节点项目
查看>>
如何在Debian 10上安装Docker Compose
查看>>
prisma orm_Prisma中的身份验证-第2部分:JSON Web令牌和登录
查看>>
centos cron_如何在CentOS 8上使用Cron自动化任务
查看>>
V8的V8:JavaScript中的可选链接和无效合并
查看>>
如何在JavaScript中使用map(),filter()和reduce()
查看>>
react hooks使用_使用Hooks动态加载React组件
查看>>
bat命令行遍历文件_命令行基础知识:如何遍历目录中的文件
查看>>