FTP“425 无法打开数据连接”仅在使用命令提示符时发生

Gar*_*ett 8 windows ftp command-line

我所有的电脑都在一个路由器后面。我有一台 FileZilla 服务器在其中一台上运行。我正在尝试使用批处理脚本和 Window 的内置 ftp.exe 自动上传到服务器。我已经设置了一个动态 DNS 服务,以便能够从路由器外部访问我的服务器,并且我已经在路由器中设置了到我的服务器的端口转发。我可以使用 Google Chrome、Windows 资源管理器和 FileZilla 客户端进行连接和传输。但是,每当我尝试使用 ftp.exe(手动或批处理脚本)时,我都可以连接到服务器,但是如果我尝试执行任何会打开数据连接(LIST、STOR 或 RETR)的操作,我会收到以下错误:425无法打开数据连接。我在两台计算机的防火墙中都允许 ftp.exe。任何想法发生了什么或我如何解决它?我不需要使用ftp。

编辑我知道我的 ISP 阻止了许多端口,包括 21 和该范围内的其他几个端口。这都设置在2121端口,被动端口设置为2122-2142,所有这些都在路由器中转发。也许 ftp.exe 只会使用某个端口进行数据连接,而我的 ISP 阻止了该端口?如果是这样,我将如何改变这一点?

Lès*_*sté 5

常规活动 FTP 使用单独的服务器启动数据连接进行传输,并且仅使用常规端口 21 连接作为控制通道。但是,当客户端位于防火墙后面时,防火墙可能会阻止此连接。我猜 Chrome、Explorer、FireZilla 等足够聪明,可以尝试被动模式,在这种模式下,原始客户端启动的连接用作控制和数据通道。

Windows 的默认 CLI FTP 客户端似乎不支持被动模式。所以你需要切换到NcFTP。或者,我认为可能更好的选择是改用 SFTP。FTP 是不安全的,实际上只能在 LAN 上使用。SFTP 是完全加密的,并且仅使用单一通道传输数据和命令。如果您需要 CLI SFTP 客户端,PSFTP是一个不错的选择。