-
异常症状:
命令: MLSD
响应: 150 File status okay; about to open data connection.
响应: 226 Closing data connection.
错误: 收到服务器的 TLS 警告: User canceled (90)
错误: Could not read from transfer socket: ECONNABORTED - 连接中止
错误: 读取目录列表失败
使用 老版本 的 FileZilla 客户端没有发现这个问题:
- 3.50.0 版本的 Filezilla 客户端 有问题,但换成其它的 ftp 客户端 又没问题
- 3.34.1 的 Filezilla 客户端 没有 问题
-
原因及解决办法
开始怀疑是 FileZilla 的 Bug,最后发现并不是。
而是因为 服务器使用的 apache ftp server 搭建的,使用的 openjdk 版本是 1.8.0_282,而这个版本在某些情况下会发送 user_cancelled = 90 给客户端(这就是为啥 Filezilla 日志有这个警告),有些客户端忽略这种错误,而新版本的 Filezilla 验证更严格,导致链接失败,将 openjdk 降级到 openjdk 1.8.0_232 版本问题消失。
参考在FileZilla 上提交的问题讨论:
https://trac.filezilla-project.org/ticket/12099
https://stackoverflow.com/questions/66437618/what-does-the-javax-net-ssl-warning-user-canceled-mean