我一直收到如下错误,因为我没有为活动 FTP 连接指定足够的端口。
Response: 150 Opening data channel for directory list.
Response: 425 Can't open data connection.Error: Failed to retrieve directory listing
在端口有限的情况下,一切似乎都运行良好,但是当我执行导致非常快速的短暂连接的操作时,大约 20-30% 的连接会因上述错误而断开。
我从端口 50000-50100 开始。
当我打开到 50000-52000 时,错误消失了。
为什么这能解决我的问题?我想了解为什么添加端口能解决问题。
我怀疑端口在连接时会被“锁定”一段时间。如果连接速度太快,可能没有可用的端口,因此会出现上述错误。
有人可以证实吗?
答案1
使用此模式时,您应该在两个方向(从服务器和从客户端)打开端口,端口 21 仅用于服务器和客户端之间的初始握手。要传输文件/信息,您需要打开多个端口(这就是您无法使用 dir 列出的原因)。在主动模式下,它会尝试使用 20,然后是 21,如下所示(http://wiki.filezilla-project.org/FAQ)。我遇到了同样的问题,但是使用的是被动 FTP,而且由于端口是随机的(取决于您的配置),我建议您打开防火墙(暂时针对所有端口),然后输入 netstat -ap,这将显示您的 filezilla 服务器使用了哪些端口。
之后关闭防火墙,并打开必要的端口。