FTP无法在被动模式下传输数据-libcurl

FTP无法在被动模式下传输数据-libcurl,ftp,libcurl,Ftp,Libcurl,我正在尝试使用C中的libcurl上载文件。数据传输失败。下面是日志消息 如何解决这个问题

我正在尝试使用C中的libcurl上载文件。数据传输失败。下面是日志消息

如何解决这个问题

<250 CWD命令成功

EPSV

  • 被动连接数据流 <500“EPSV”:未理解命令
  • 禁用EPSV使用

    PASV
<227进入被动模式(x,x,x,x,193152)

  • 正在尝试x.x.x.x..*没有到主机的路由

  • 无法连接到主机

  • 正在关闭连接#0

  • 无法连接到服务器


    • 这意味着,当FTP服务器打开第二个端口供客户端连接时,客户端(libcurl)无法访问该端口。这很可能是由于沿途某处的防火墙或其他网络设备阻碍了您执行请求操作

      另一个原因可能是配置错误的ftp服务器,但如果它适用于其他用户,这种情况似乎不太可能发生

      失败的另一个原因可能是您有一个不知道EPSV的活动防火墙,因此会被它弄糊涂,并为您破坏它。通过设置为0尝试不使用它


      您可以尝试使用主动方法(大多数老式FTP客户端默认都是这样做的),这会使客户端要求服务器重新连接到您。您可以在libcurl中使用激活它。(有关如何使用它的详细信息,请参阅文档。)

      这听起来像是您有网络问题。服务器的地址设置很可能已中断。在该故障模式下获得的ip地址是否正确?如果是这样,请确保您可以从您的客户端联系该ip地址…我可以使用命令行中的“mput”发送文件,当我尝试使用libcurl时会出现问题。在这种情况下,您能建议应该查看的配置吗?除了服务器配置之外,还有其他建议吗?我在回复中又添加了两段建议,谢谢Daniel。添加CURLOPT_ftsupport选项后,它会工作。