让 Linux 命令行 ftp 客户端在被动模式下忽略本地 IP 地址

让 Linux 命令行 ftp 客户端在被动模式下忽略本地 IP 地址

我正在尝试连接到位于 NAT 后面的 FTP 服务器。该服务器的本地 IP 是 172.23.11.41,公共 IP 是 194.239.61.58,我正在连接到公共 IP。

当进入被动模式时,服务器将返回其本地 IP 地址,但该地址无用。例如:

227 进入被动模式(172,23,11,41,234,113)。

当发生这种情况时,Linux 命令行 ftp 客户端无法建立数据通道。

我需要让 ftp 客户端忽略被动模式 (PASV) 返回的 IP 地址,或者改用扩展被动模式 (EPSV),该模式仅返回端口号。示例:

229 进入扩展被动模式(|||64607|)。

有什么办法可以做到这一点?

编辑:有人告诉我我们使用 ftp.x86_64,通过调用来安装sudo yum install ftp

答案1

修复服务器。应将其配置为报告其外部 IP 地址。或者应将 NAT 配置为在响应中转换 IP PASV

无法将常见的 *nixftp命令行客户端配置为使用EPSV或使用控制连接 IP 而不是PASV响应中返回的 IP。

或者使用其他 FTP 客户端,例如tnftp(使用epsv4命令)或curl(默认为EPSV)。

答案2

Martin Prikryl:

“修复服务器。应将其配置为报告其外部 IP 地址。或者应将 NAT 配置为在 PASV 响应中转换 IP。”

我是一家大型机构的 FTP 管理员,我们使用 4 节点 HA 集群 FTP 环境。2 个活动节点和 2 个待机节点,所有节点都负载平衡并进行了 NAT。问题不一定是“服务器修复”。我们的服务器都使用本地 IP 响应 PASV 连接。但是,如果正确配置了 LB 和 NAT,则客户端需要忽略 PASV IP 并在通过 LB 连接时使用其控制连接 IP。实际问题是 Linux FTP/S 客户端故障。我们的配置是正常的标准配置,它与连接到我们的 FTP 系统的所有其他客户端配合良好。我们仅在 Linux 机器或我们的大型机上使用 FTP/S 时才会看到此问题。在 Linux 和 IBM z/OS 上,如果 PASV 与控制通道 IP 不同,FTP/S 客户端将不允许 PASV 连接。

只是想解释一下。

致原始发帖者: 话虽如此,您可以尝试:ftp:ignore-pasv-address,看看是否允许您建立数据通道连接。

相关内容