FTP - 425 无法打开数据连接(主动模式不起作用)

FTP - 425 无法打开数据连接(主动模式不起作用)

我已经彻底研究过这个主题,关于什么是主动模式以及为什么我会遇到这个臭名昭著的425 Can't open data connection.错误,但是在互联网上的所有文档、教程和论坛都没有找到解决方案之后,我决定来这里进行最后一次尝试。

通过各种方式(在底部解释),我能够远程连接到此服务器,但只能通过被动连接。我无法使用主动模式进行连接 - FileZilla 客户端默认为主动模式(至少在我的情况下)。

该服务器运行 Windows 8 和 FileZilla Server(XAMPP 包的一部分),并使用以下端口:

  • 21用于聆听
  • 990用于通过 TLS 进行隐式 FTP
  • 14147用于远程管理
  • 6000-7000对于被动模式

这些端口在路由器的 NAT 和 Windows 防火墙中均打开。

这些是服务器的设置
FileZilla 服务器选项

这些是客户端的设置
FileZilla 客户端选项
在被动模式下,也会选择回退到主动模式

由于显而易见的原因,本地连接可以工作,但远程连接则不可以。

值得一提 -ftptest.net报告连接为成功,但我发现它使用 PASV 模式连接到服务器。我已将此成功连接的日志放在粘贴箱供参考。这再次使用 TLS 上的隐式 FTP。标准 FTP 连接确实可以通过此网站工作(而不是通过我自己的连接方式),但我已在服务器中禁用它们,强制仅使用 SSL/TLS 连接。

答案1

FTP 有控制连接和数据连接。控制连接由客户端向服务器发起,因此通常不会出现问题,但数据连接有所不同:

  • 在主动模式下,服务器尝试连接到客户端。必要的 IP 和端口设置在控制通道内的PORTEPRT命令中发送。如果客户端处于主动模式,则不会工作,因为客户端使用服务器无法访问的 IP 地址。如果客户端位于防火墙后面,也会出现类似的问题,因为来自外部的连接将被阻止。只有支持 FTP 的防火墙可能会使用特殊助手来管理主动连接(这些助手不适用于 FTPS)。
  • PASV在被动模式下,客户端连接到服务器。必要的 IP 和端口在对或命令的响应中发送EPSV。客户端的 NAT 没有问题,防火墙通常也没有问题。但如果服务器本身位于防火墙或 NAT 后面,就会出现问题。

简而言之:被动模式在大多数情况下都有效,而主动模式仅在客户端拥有公共地址时才有效。但对于路由器后面的客户端(在家中、公共热点……)而言并非如此,并且通常也不在移动网络中。

答案2

在本地网络设备上运行 FTP 客户端在使用外部 IP 地址时出现问题,例如:92.646.178.168。服务器日志会指示该 IP。

通过配置客户端的“主机名或地址”,使其不是 IP 地址,而是使用“Maker”之类的名称。路由器会正确地将数据包发送到 FZserver。因此,在测试连接时,我建议进行此简单更改。然后使用另一个联网设备(在我的情况下是无线设备)仅在此处使用外部 IP。

相关内容