什么原因阻止 FTP 服务器向我发送数据?

什么原因阻止 FTP 服务器向我发送数据?

我可以连接到两个独立的 FTP 服务器,但结果相同 - 连接超时,无法检索目录列表。Filezilla 日志中有一行似乎相关:
“响应:500 我不会打开与 192.168.0.2 的连接(仅与 94.1.41.42 连接)”
我有一个 Sky 集线器,它通过电缆连接到以太网交换机,为 2 台 PC 供电。我的 PC 在 LAN 上的地址是 192.168.0.2,94.1.41.42 是我的 IP 地址。如果我通过 WiFi 连接,我会收到相同的消息,其中 192.168.0.7 是我的 LAN 地址。我在这个领域还只是个初学者(一个实习老年医学专家),非常希望得到一个富有同情心的回复,解释这里可能发生的情况。我努力寻找答案,但没有成功。David Johnson

已编辑,回复 @barbecue 的建议:我已阅读https://wiki.filezilla-project.org/Network_Configuration并将 Filezilla 设置为被动模式传输。问题仍然存在。更详细的日志显示连接在不到 1 秒的时间内建立,最后几条记录为:
07:04:27 1 Trace: CControlSocket::SendNextCommand()
07:04:27 1 Trace: CFtpRawTransferOpData::Send() in state 2
07:04:27 1 Command: PASV
07:04:27 1 Trace: CFtpControlSocket::OnReceive()
07:04:27 1 Response: 227 Entering Passive Mode (91,103,219,224,201,16)
07:04:27 1 Trace: CFtpRawTransferOpData::ParseResponse() in state 2
07:04:27 1 Trace: CControlSocket::SendNextCommand()
07:04:27 1 Trace: CFtpRawTransferOpData::Send()处于状态 4
07:04:27 1 跟踪:将数据连接源 IP 绑定到控制连接源 IP 192.168.0.2
07:04:27 1 命令:MLSD

停留 20 秒

07:04:47 1 错误:20 秒不活动后连接超时
07:04:47 1 跟踪:CFtpControlSocket::ResetOperation(2114)
07:04:47 1 跟踪:CControlSocket::ResetOperation(2114) 07:04:47
1 跟踪:CFtpControlSocket::ResetOperation(2114)
07:04:47 1 跟踪:CControlSocket::ResetOperation(2114)
07:04:47 1 错误:无法检索目录列表
07:04:47 1 状态:已与服务器断开连接

已编辑:进一步尝试解决问题失败。
在阅读有关 Sky ER115 路由器中的端口转发后,我将所有端口从 91.103.219.224 转发到 LAN 地址 192.168.0.2,但这没有效果。我知道我的无知可能是问题的主要部分,但总得学点东西!

答案1

尝试将 Filezilla 站点配置设置为默认的 PASSIVE 模式。这可能会解决您的问题。从日志中可以看出,您首先尝试以 ACTIVE 模式进行连接,但由于 NAT 而失败。然后它在 PASSIVE 模式下重试,但连接已超时。

通过编辑站点并转到传输设置来配置 Filezilla 被动模式。选中传输模式下的被动选项。

PASSIVE 模式为 FTP 客户端和 FTP 服务器提供了一种协商使用哪个端口进行连接的方法,当您位于 NAT(例如家庭路由器)后面时,这种方法可以提供帮助。

编辑:由于启用被动模式无法解决问题,我猜测这可能是由于服务提供商或正在使用的路由器导致的防火墙或路由问题。MLSD 命令后的 20 秒延迟表明可能是这个问题。 有些服务器显然不能正确处理 MLSD 命令,而 Filezilla 对此有严格的处理。其他 FTP 客户端(如 CoreFTP 或 Cyber​​Duck)可能会提供更好的结果。

相关内容