使用 FileZilla 连接 FTP 站点时,服务器发送了带有不可路由地址的被动回复

使用 FileZilla 连接 FTP 站点时,服务器发送了带有不可路由地址的被动回复

连接到 FTP 站点时,我收到错误“服务器发送了带有不可路由地址的被动回复。请改用服务器地址。”(不是 SFTP)

我已多次连接到该站点,但是 FileZilla 这次第一次要求我接受证书。

这似乎不是我正在连接的帐户的问题,因为它发生在该服务器上的所有帐户上。

在此处输入图片描述

答案1

这是一个老问题,但我认为它可能对其他人有帮助。我有一个类似的问题,@HBrujin 提到我也指定了正确的 pasv_address,但 Filezilla 上仍然出现类似的消息。

首先,通过在 FileZilla 中启用调试模式,找出你通过 PASV 命令获取的 IP 地址,你可能会看到如下行

Response:   227 Entering Passive Mode (0,0,0,0,4,7).

我希望使用我的公共地址而不是 0.0.0.0,因为我已经指定了 pasv_address。后来意识到这是由于 listen_ipv6=YES 设置而 pasv_address 有 IP4。只需将更改配置添加到

#listen_ipv6=YES
listen=YES

解决了我的问题。

答案2

当客户端发起数据传输时,它会询问 FTP 服务器要连接到哪里。服务器提供的 IP 地址很可能是其网络上的内部地址,而不是客户端可以使用的外部 IP 地址。这是服务器端的错误配置。

但由于这是一个相当常见的错误配置,许多 FTP 客户端(包括 FileZilla)都可以解决这个问题。如果从客户端的网络位置无法路由,它们会忽略服务器提供的任何 IP 地址,并使用 FTP 服务器地址。这就是发生的事情。

请参阅我最近的回答被动模式架构解释


关于证书接受:由于您没有与我们分享 FileZilla 要求您接受证书的原因,我们无法真正帮助您。

答案3

乍一看,这似乎是 NAT 问题,FTP 协议助手由于 TLS 加密而失败,我预计这也会成为防火墙问题。

一些背景知识这里在我的一个较早的回答中。

解决方案可能是修复 FTP over SSL 可以使用的被动 TCP 端口范围,让 FTP 服务器通告外部 IP 地址而不是实际的 ip 地址(pasv_addressVSFTPD 中的指令),并为这些端口创建静态 NAT 规则。

答案4

  1. 如果你使用 vsftpd,请设置
    pasv_min_port=21000
    pasv_max_port=21999

在 vsftpd.conf 文件中。

  1. 在您的 VPS/云提供商的网络控制台面板中打开该端口范围。

相关内容