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

Ste*_*Hat 4 ftp

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

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

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

  • 21用于聆听
  • 990用于隐式 FTP over TLS
  • 14147用于远程管理
  • 被动模式6000-7000

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

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

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

出于显而易见的原因,本地连接有效但远程连接无效。

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

Ste*_*ich 9

FTP 有一个控制连接和一个数据连接。控制连接是从客户端到服务器启动的,因此通常不会出现问题,但数据连接不同:

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

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