You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ftp.exe通过NAT进行FTP连接失败:无法建立数据连接

如何使用ftp.exe通过NAT进行FTP连接?

从你提供的操作日志和报错信息来看,你遇到的是FTP主动模式在NAT环境下的数据连接失败问题:

ftp my.ftp.it
Connesso a my.ftp.it
220 FTP Server ready.
500 OPTS UTF8 not understood
Utente (my.ftp.it:(none)): user
331 Password required for user
Password:
230 User abox logged in.
ftp> dir
500 Illegal PORT command
425 Unable to build data connection: Connection refused

报错信息: 425 Unable to build data connection: Connection refused

你的异常现象也验证了问题的核心:

  • 使用Windows资源管理器可正常连接
  • 使用主动模式及IP高级模式的FILEZILLA可正常连接

问题原因

Windows自带的ftp.exe默认使用**主动模式(PORT)**进行FTP连接。在NAT网络环境下,主动模式需要FTP服务器主动发起对客户端的端口连接,但NAT设备通常不会自动转发这类入站连接请求,导致数据连接建立失败,出现425错误。

而Windows资源管理器和你配置后的FileZilla默认使用被动模式(PASV)——这种模式下由客户端主动发起数据连接请求,适配NAT环境的网络规则,所以能正常连接。

解决方案

你可以在ftp.exe的交互会话中手动切换到被动模式,步骤如下:

  1. 登录FTP服务器后,在ftp>提示符下输入命令:
    passive
    
    执行后会收到类似Passive mode on.的反馈。
  2. 再次执行dir等需要建立数据连接的命令,就能正常获取目录内容了。

如果需要每次启动ftp.exe都自动启用被动模式,可以编写一个批处理脚本,比如:

@echo off
ftp -s:ftp_commands.txt

然后创建ftp_commands.txt文件,内容如下:

open my.ftp.it
user
your_password
passive
dir
quit

(注意:明文存储密码有安全风险,仅在测试或可信环境下使用)

关于ftp.exe的配置文件

Windows自带的ftp.exe没有单独的配置文件,它的所有行为只能通过以下两种方式控制:

  • 交互会话中输入的命令(比如passive)
  • 命令行参数或脚本文件(如上面的批处理方式)

内容的提问来源于stack exchange,提问作者Gianluca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:23:20