FileZilla搭建FTP服务器连接报错:425 Rejected data connection

来源:互联网 发布:泛普软件怎么样 编辑:程序博客网 时间:2024/06/16 21:21

最近项目上在用使用FTP传输文件,先是采用了Windows自带的IIS来配置FTP服务器,用FTP客户端工具连接可以但是使用JAVA的FTPClient连接报错,一直也下不下来文件,服务器上日志也不好看,后面就采用FileZilla来搭建FTP服务器,界面简单,用户配置,权限配置都比IIS的FTP简单多了,主要是日志看得清晰、便捷。

后面也遇到了许多问题,网上查了下基本也解决了,FileZilla上的配置项也不多,自己一步一步配置,一步一部修改代码。最坑的就是本地自己搭建的FTP服务器都可以,就是发布到服务器上出现了各种各样的网络问题。大致说一下服务器的配置情况:FTP服务器搭建在内网,客户端下载的程序也是安装在内网,但是之间并不能相互访问,开通了一个外部端口来访问,另外还有一个端口用来采用被动模式的数据传输端口(不过有试了一下,不采用这个端口也是可以传输的)

把自己的配置贴出来如下:

只修改了FTP监听端口,其他配置默认即可


这个是配置被动模式,因为是在内网,与外网传输用被动模式,否则,FileZilla界面也会出现如下错误:

You appear to be behind a NAT router. Please configure the passive mode settings and forward a range of ports in your router.

告知你要配置被动模式

这里主要配置的是用于数据传输的端口8062,如果服务器开放的端口比较多,可以加大范围,这里我们只开放了一个(但是后面测试发现,即使把这个端口的配置禁用了,

依然可以进行ftp传输)。还有配置告知外网需要使用访问数据端口的IP。

服务器的配置还是比较简单。在JAVA的FTPClient访问设置被动模式,即可访问,具体的配置方式,网上很多,主要就是以下两个方法:

FTPClient.enterLocalPassiveMode();
FTPClient.setRemoteVerificationEnabled(false);

至此,以上的配置,外网是可以正常访问FTP的,但是我们客户端部署在内网,访问的时候FileZilla控制台总是报错:

425 Rejected data connection for transfer of "/", IP addresses of control and data connection do not match

看得真是一脸懵逼了,什么叫:控制和数据连接FileZilla的IP地址不匹配。又没说具体的解决方案,但是起码有日志看,这点真的是比IIS的FTP好多了。

在网上查这个错误,相关信息竟然几乎没有,大多425报错都是:Can't open data connection。查到一条信息在FileZilla官网的更新日志上有如下描述(https://filezilla-project.org/versions.php?type=server)

0.9.51 (2015-05-06)

Fixed vulnerabilities:

  • The code that checks that the peer's data connection IP address matches the control connection IP had been nonfunctional.
是说我更新到了0.9.51版本,就可以解决这个问题了吗?但是更新到了最新版本还是一样的错误,最后偶然看到FileZilla有个安全性的配置


最初配置默认选中的是第一项,后面我修改为了最后一项,总算是可以正常下载了。

难道官网的那个说明:nonfunctional,是指这个是非功能性需求,是可配置的吗?有点恍然大悟。

分享个链接:

https://superuser.com/questions/847416/ftp-425-cant-open-data-connection-active-mode-does-not-work

阅读全文
2 0