Filezilla FTP 服务器无法检索目录列表
Posted
技术标签:
【中文标题】Filezilla FTP 服务器无法检索目录列表【英文标题】:Filezilla FTP Server Fails to Retrieve Directory Listing 【发布时间】:2014-08-25 08:15:37 【问题描述】:我正在运行 Filezilla Server 0.9.45 beta 来远程管理我的服务器。
设置完成后,我测试了使用 IP 127.0.0.1
连接它,它工作成功。但是,要远程连接到服务器,我将端口转发到端口 21,并尝试使用我的计算机的 IP 进行连接。
Status: Connecting to [My IP]:21...
Status: Connection established, waiting for welcome message...
Response: 220 Powered By FileZilla Server version 0.9.45 beta
Command: USER hussain khalil
Response: 331 Password required for user
Command: PASS *********
Response: 230 Logged on
Status: Connected
Status: Retrieving directory listing...
Command: CWD /
Response: 250 CWD successful. "/" is current directory.
Command: PWD
Response: 257 "/" is current directory.
Command: TYPE I
Response: 200 Type set to I
Command: PORT 192,168,0,13,205,63
Response: 200 Port command successful
Command: MLSD
Response: 150 Opening data channel for directory listing of "/"
Response: 425 Can't open data connection for transfer of "/"
Error: Failed to retrieve directory listing
这继续在本地工作,但在远程连接时不能......我该如何解决这个问题?
【问题讨论】:
嘿,在 prestashop 怎么样?我已经通过 sftp.pswebstore.com 尝试了 Cary 的回答,但状态显示连接尝试失败并显示“ECONNREFUSED - 服务器拒绝连接” 【参考方案1】:当您发送端口命令到您的服务器时,您要求服务器连接到您(在远程网络上)。如果远程网络也有一个 NAT 路由器,并且您没有使用 PORT 命令对发送的端口进行端口转发,则服务器将无法连接到您。
最常见的解决方案是向服务器发送 PASV 命令而不是 PORT 命令。 PASV 命令将要求服务器创建一个监听套接字并接受来自远程机器的连接以建立数据连接。
要使 PASV 命令正常工作,您还需要为被动数据连接端口转发一系列端口。被动连接端口(需要转发)应该列在 FileZilla 文档中。
【讨论】:
我在被动模式设置中设置了一个自定义端口范围(端口 50000 到 50100)并转发了这些端口。我还将传输类型设置为被动而不是主动。没有结果。 我在局域网上进行测试。外部连接正常。 A. “端口转发这些端口”是什么意思? Ubuntu 中转发这些端口的命令?【参考方案2】:好的,这很有帮助,我找不到解决方法。
简单地说,我已经将 FTP 端口转发到我的服务器。 (默认为14147,我以这个为例)
转到编辑>常规设置,侦听端口应该是您使用的端口,在本例中为 14147。
然后转到被动模式设置,我选中“使用自定义端口”,并输入范围 50000 - 50100。
然后在您的路由器上,将 50000 - 50100 端口转发到本地服务器 IP。
我保留默认的 IPv4 特定设置,重新连接我的客户端,然后 bam 现在出现文件列表。
确保您的服务器防火墙设置了一个入站规则以接受 14147 和 50000-50100。
基本上就是埃文所说的。我无法证明打开这些端口的安全性,但这就是最终让我的 Filezilla 客户端和服务器能够通信和查看文件的原因。希望这对某人有所帮助。
【讨论】:
“确保您的服务器防火墙设置了一个入站规则以接受 14147 和 50000-50100”-> 此评论节省了我的时间 我刚刚在工作中安装了 FileZille Server,我可以使用 FileZille Cliet 浏览我的文件夹。问题是当我尝试使用 nicolab 的库通过 php 进行连接时。我不断收到“无法连接”异常。有任何想法吗?我知道这可能与我们公司的防火墙有关。提前致谢。 这就是关键“确保您的服务器防火墙设置了一个入站规则以接受 14147 和 50000-50100。”谢谢朋友,点赞! 发现我的端口(40110-40310)已关闭我认为21就足够了【参考方案3】:我的经验是新版本的Filezilla有这个问题,而旧版本没有。我正在使用 Filezilla,一切正常。升级到 3.10 版本后,我遇到了这个问题,我无法解决。我卸载了3.10版并重新安装了3.8版,问题就消失了!现在我使用的是 3.8 版本,一切正常。即使我必须使用旧版本,我也更愿意面对没有问题。 ;)
尝试安装旧版本,不要升级,这听起来很奇怪。
【讨论】:
我刚刚从here 下载了 3.8 版本,加密:“普通 Ftp”,传输设置:“被动” 我有一种奇怪的情况,我可以使用 FileZilla 客户端 (3.22) 使用 TLS 访问各种站点,但我只能使用普通 FTP 访问一个站点。这发生在过去几个月的某个时候(自从我上次访问此站点以来),因为它曾经与 TLS 一起正常工作。【参考方案4】:升级到 3.10 后我也遇到了问题。我有 versoin 3.6.02 并安装了它。问题解决了。
【讨论】:
【参考方案5】:现在在 FileZilla 中,创建一个新帐户 1. 主机是 FTP 地址 - 例如ftp.somewhere.com 2.协议为“SFTP-SSH文件传输协议” 3. 用户 ID 是您的 Bluehost 用户 ID 4. 密码是您的 Bluehost 密码 5.点击“连接”与目录列表建立连接!
这为我解决了 3.10 的问题。我很高兴能够为我未来的所有文件传输提供安全访问。它应该可以防止将来出现安全问题。
【讨论】:
【参考方案6】:我刚刚在站点管理器中将加密从“通过 TLS 使用显式 FTP”(如果可用)更改为“仅使用普通 FTP”(不安全),它可以正常工作!
【讨论】:
如果你想要安全,这是个坏主意。 @DarrellNorton 那么在检索目录列表的同时确保安全性的方法是什么? @Faizan 你必须使用 FTPS。这个答案说禁用安全性。 Vaggelis 明确表示这是不安全的。 PASV 命令失败的最可能原因是 FTP 服务器正在发送响应,但防火墙不允许在这些端口上进行出站通信。在接受的回复中查看 San Bergam 的回答。 @Faizan 详细的技术解释在这里:wiki.filezilla-project.org/Network_Configuration - 在我理解主动和被动以及显式和隐式 FTPS 之间的区别之前,我不得不看一下。我的问题最终是防火墙阻止了隐式 FTPS 端口范围,我将其设置为 50,000 - 55,000。一旦网络管理员明确允许在这些端口上出站,它就可以完美运行。 请注意,这确实会禁用您的安全性,是的,它会起作用,但迟早会留下问题!【参考方案7】:我在使用 FZ 客户端时遇到了同样的问题,而我的笔记本电脑通过 WLAN 和 DSL/路由器连接。在站点管理器连接设置中,我应用了主机:ftp.domain-name,加密:仅使用普通 FTP(不安全)和用户:用户名@域名。然后 FTP 客户端成功连接到我的网站服务器。 更多 FTP 连接信息可以在网络服务器的 CPanel 中找到。希望这会有所帮助。
【讨论】:
【参考方案8】:我遇到了同样的问题——在 Windows 操作系统中对我有用——将 FileZilla 添加为防火墙例外——允许程序通过防火墙功能
【讨论】:
【参考方案9】:我有 Filezilla 3.6,和 OP 有同样的问题。我已经升级到 3.10.3 认为它会修复它。不,还是一样。
然后我对选项进行了一些挖掘,对我有用的是:
Edit -> Settings -> FTP -> Passive Mode 并从“Fall back to active mode”切换到“Use the server's external IP address instead”
【讨论】:
【参考方案10】:这里的大多数答案都涉及配置,实际上只需在您的主机上添加sftp://
(见下图),您就可以立即解决此类问题,对我有用。
另外请注意,如果您关注Vaggelis guide,则会降低您的安全性,sftp
比使用普通的ftp
更好。
我刚刚在站点管理器中将加密从“通过 TLS 使用显式 FTP”(如果可用)更改为“仅使用普通 FTP”(不安全),它可以正常工作!
【讨论】:
无法在 prestashop 中使用。我试过 sftp.pswebstore.com,但状态显示连接尝试失败并显示“ECONNREFUSED - 连接被服务器拒绝”。 这其实是最好的答案!【参考方案11】:我通过进入站点管理器解决了这个问题 -> 选择了Failed to retrieve directory listing
的连接 -> 切换到“传输设置”选项卡并将“传输模式”设置为“活动”而不是“默认”。还要检查您是否通过 *** 或类似的方式连接,这也会产生干扰。
【讨论】:
如果您投反对票,请说明原因,因为这对我有用。 3 年后,这就是我的解决方案【参考方案12】:我在云中托管的服务器遇到了这个问题。我一年只需要几次服务器,所以当我启动服务器时,IP 地址会发生变化。然后必须在 FTP 服务器被动模式设置上更新新的 IP 地址!
最新版本的 Filezilla 运行良好!
【讨论】:
【参考方案13】:文件 > 站点管理器 > 选择您的站点 > 传输设置 > 活动
为我工作。
【讨论】:
或者你可以试试这个:编辑 > 设置 > 连接 > FTP > 查看Transfer Mode(将passive改为active) 天啊终于!在使用加密类型和防火墙阅读了 10000 次相同的废话之后,这一个有效! 这个真的很管用。只是活动部分有点棘手 你是最棒的 不适用于我的情况【参考方案14】:如果您使用 VestaCP,您可能希望在您的 Linux 防火墙上允许端口 12000-12100 TCP。
您可以在 VestaCP 设置中执行此操作。
【讨论】:
【参考方案15】:检查路由器上的ip地址是否与ftp服务器上的相同。如果不确定它是否相同。这应该完美无缺。
【讨论】:
【参考方案16】:我遇到了同样的问题,这是由于防火墙造成的。我用的是windows服务器,
您能否允许程序的连接权限,而不是端口21,22权限。
Windows Firewall with Advanced Security->
Inbound Rules->
Add Rule->
Program->
"Select Filezilla path with Browse button"->
Allow the Connection
【讨论】:
这行得通。在此之前我正在创建端口规则而不是程序规则【参考方案17】:就我而言,重新启动我用来连接互联网的路由器是有效的。我认为太多的连接来自同一个 IP 地址,当我重新启动路由器时,可能分配了一个新 IP,现在一切正常,被动模式在目录列表中提供了很好的速度。
【讨论】:
【参考方案18】:运行具有高级安全性的 Windows Defender 防火墙
开始 > 运行:wf.msc
【讨论】:
【参考方案19】:它对我有用:
常规 -> 加密 -> 仅使用普通 FTP
传输设置 -> 传输模式 -> 激活
认为它非常不安全,只能用于测试。
【讨论】:
【参考方案20】:我的问题也是防火墙。我正在使用带有 WHM/cPanel 的 Linux 服务器。将我的 IP 添加到快速允许解决了我的问题。我没有更新 Filezilla,我认为服务器没有任何更改应该导致它。但是,我确实搬家了,我的 IP 也发生了变化,所以也许这就是问题所在。祝大家好运,解决这个非常烦人的问题。
【讨论】:
【参考方案21】:我的问题是一样的,但解决方案有点不同。
我使用 AWS EC2 服务器来托管 WHM 服务。并发现“被动端口已启用,但未在我的 EC2 安全组中找到这些端口”。
[root@94367392 ~]cPs# egrep -i passiveport /etc/pure-ftpd.conf
输出:
PassivePortRange 49152 65534
现在我继续前进,在 EC2 的安全组中打开了从 49152
到 65534
的端口,并且与“无法检索目录列表”相关的 Filezilla 问题得到了解决并且可以正常工作就像一个魅力。
This cPanel doc 很有帮助。
【讨论】:
【参考方案22】:我见过涉及通过 Windows 防火墙授予 FileZilla 完全访问权限的解决方案。这是一种替代方法,如果您知道连接系统的 IP 并且它是静态的,只需通过 Windows 防火墙授予它对所有端口的完全访问权限。
Windows 防火墙、入站规则 > 创建规则 > 所有本地端口 > 范围 > 此 IP 地址(连接系统的 IP)。
对我来说,这比授予所有传入 IP 地址对 FileZilla 的完全访问权限要安全得多。
完成转移后,您可以禁用该规则。
【讨论】:
以上是关于Filezilla FTP 服务器无法检索目录列表的主要内容,如果未能解决你的问题,请参考以下文章