无法从Visual Studio 2015连接到FTP

时间:2017-02-06 09:07:42

标签: visual-studio ftp filezilla

我在自定义端口而不是端口21上设置了FTP服务器。现在我可以使用IP和使用FileZilla设置的新端口远程连接到它,并将其设置为被动模式。 FileZilla中的所有内容都按预期工作,但是当我尝试在Microsoft Visual Studio社区2015中使用相同的凭据时,我收到此错误

  

无法从服务器检索文件夹信息。 FTP被动模式不可用。

如果我关闭被动模式,我会收到此错误:

  

无法从服务器检索文件夹信息。非法PORT命令(500)。

我的目标是快速修改和上传我更改的服务器上的文件,而无需通过FileZilla。 VS具体的原因是针对C ++开发环境。可能我的设置不正确,但我已经在线查看,我已经完成文件>网站并在那里添加了凭据。尝试完成禁用我的防火墙,没有运气。我知道端口很好,否则我将无法通过FileZilla连接。刚刚用完了想法,因为它在一个案例中起作用而在另一个案例中起作用。非常感谢任何帮助。

FileZilla日志:

Status: Connecting to XXX.XXX.XXX.XXX:XXX...
Status: Connection established, waiting for welcome message...
Status: Insecure server, it does not support FTP over TLS.
Status: Server does not support non-ASCII characters.
Status: Logged in
Status: Retrieving directory listing...
Status: Server sent passive reply with unroutable address. Using server address instead.
Status: Directory listing of "/home/<USER>" successful

1 个答案:

答案 0 :(得分:1)

  

服务器发送带有不可路由地址的被动回复

这意味着您的服务器配置错误。它不知道它的外部IP地址。它在响应PASV命令时向客户端报告本地(作为服务器)IP地址。客户端显然无法连接到该地址以开始数据传输。

有关详细信息,请参阅我在network configuration for FTP passive mode上的文章。

FileZilla在收到不可路由的IP地址时,使用FTP服务器的IP地址进行数据传输。但这只是启发式,在FTP规范中没有任何支持。我假设Visual Studio(与FTP协议的所有Microsoft实现一样)严格遵守FTP规范。它没有像FileZilla那样做“智能”而只是失败(实际上是“正确的”行为)。