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

Golang使用github.com/jlaffaye/ftp上传文件遇连接拒绝问题解决

Golang使用github.com/jlaffaye/ftp库上传文件时Stor函数报"connection refused"的解决方法

在使用Golang的github.com/jlaffaye/ftp库传输文件时,遇到以下问题:可以正常连接FTP服务器并切换工作目录,但调用Stor函数上传约700MB的压缩文件时,提示"connection refused"并断开连接。该FTP服务器可通过FileZilla正常连接,文件本身无损坏,曾怀疑是bufio.NewReader的使用问题,但未找到有效参考示例。

相关代码:

ftpFile := "hola.txt"
fileOpen, err := os.Open(ftpFile) // 读取文件
if err != nil {
    fmt.Println("error " + ftpFile)
    panic(err)
} else {
    fmt.Println("abierto " + ftpFile)
}

reader := bufio.NewReader(fileOpen)

err = client.Stor(ftpDir+ftpFile, reader)
if err != nil {
    fmt.Println("error en stor " + ftpDir + ftpFile)
    panic(err)
} else {
    fmt.Println("subiendo " + ftpFile)
}
defer fileOpen.Close()

排查过程:

  • 更换CentOS服务器测试,问题依旧,排除本地服务器环境问题
  • 按照库文档编写简化上传脚本,仍然失败,甚至向项目GitHub仓库提交了issue
  • 在终端执行原生FTP命令的ls操作时,也出现了相同的PASV模式连接拒绝错误

解决方案:
最终定位到问题根源:防火墙阻止了FTP的PASV模式连接。将本地服务器IP加入FTP服务器的防火墙白名单后,问题彻底解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 23:35:33