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

FluentFTP使用EPSV经HTTP代理上传文件时报425无法打开数据连接错误

故障原因
  • Implicit FTPS数据连接未完成TLS握手:你使用的是990端口的隐式FTPS服务,所有连接包括数据传输连接都需要先完成TLS1.2握手才能交互指令。对比日志可见FileZilla建立代理连接后会执行TLS握手,而你的FluentFTP日志中缺少该步骤,直接发送STOR指令被服务端拒绝返回425错误。
  • 组件版本bug:旧版本FluentFTP.HttpProxy扩展包存在已知缺陷,EPSV模式下隐式FTPS的数据连接不会自动发起TLS握手,代理连接建立后直接传输明文指令被服务端拦截。
  • 路径格式兼容性问题:部分FTP服务端不支持STOR命令携带绝对路径,FluentFTP直接发送STOR /test.csv,而FileZilla是先切换到根目录后发送STOR test.csv相对路径,也可能触发服务端限制。
解决方案
  1. 优先将FluentFTP和FluentFTP.HttpProxy升级到最新正式版,官方已修复隐式FTPS下被动数据连接的TLS握手问题。
  2. 新增被动连接配置项,补充代码如下:
using (FtpClientProxy client = new FtpClientHttp11Proxy(new ProxyInfo() {
    Host = "prox.corp.company.com",
    Port = 80,
    Credentials = new NetworkCredential("proxyuser", "password")})) {
        client.Host = "1.123.123.123";
        client.Port = 990;
        client.Credentials = new NetworkCredential("ftpuser", "password");
        client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12;
        client.DataConnectionType = FtpDataConnectionType.EPSV;
        client.EncryptionMode = FtpEncryptionMode.Implicit;
        // 新增配置:强制开启数据连接加密
        client.DataConnectionEncryption = true;
        // 新增配置:关闭多线程数据连接避免代理上下文丢失
        client.EnableThreadSafeDataConnections = false;
        // 如果确认FTP数据连接IP和控制连接IP不一致,手动指定数据连接IP
        // client.PassiveHost = "FTP数据连接实际IP";
        client.Connect();

        // 先切换到目标目录,使用相对路径上传
        client.SetWorkingDirectory("/");
        client.UploadFile(@"C:\test.csv", "test.csv");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:15:04