FTP挂起:150打开ASCII模式数据连接

我正在Windows 2008服务器(R2)上设置FTP服务器。

一切似乎安装正确,但我无法使用FTP客户端login到我的FTP服务器。

我可以远程桌面上的服务器,并通过DOS命令,我可以很容易地login。

但是,如果我发出像“DIR”这样的命令,它会挂起:150打开ASCII模式数据连接。

我所研究和阅读的所有内容都指向防火墙端口和/或被动/主动模式设置。

这是什么困扰我…如果我使用DOS FTP命令,我可以login并使用“DIR”命令只有当我使用“localhost”作为我的地址。

如果我指定我的完整的FTPurl,我得到挂起的错误。

如果我指定“本地主机”的URL,我不会得到错误。

这导致我相信它的防火墙问题(甚至IIS7的问题?),但我不确定什么端口,我需要打开?

我的Windows防火墙上打开了端口20,21。 我还在AWS(亚马逊)防火墙上打开了这些端口。

我相信我的FTP客户端正在使用可能被我的两个防火墙之一阻塞的远程端口号。 我使用networking监控工具来尝试,看看它调用的端口,但我不能弄清楚。

任何想法,提示,技巧,帮助?

FTP服务器和FTP客户端使用FTP的“控制通道”协商哪些端口将用于传输数据(包括在执行“dir”或“ls”时执行目录列表)。 因此,如果您的“AWS防火墙”没有对此通道进行协议检查,则无法知道必须dynamic打开哪些端口才能允许通信stream量(并且一旦这些端口不再使用就closures)。

恕我直言,使用networking监控发现哪些端口正在使用是不值得的努力,因为这些端口将改变每一个新的FTP会话。

除非你已经做好了,否则我在解决这个问题时最好的办法就是在防火墙上寻找保护你的FTP服务器的任何调整(如果我正确理解你的问题,这将是“AWS防火墙”),看看是否有是任何“旋钮”来启用FTP协议的检查。

尝试使用ls命令从我的Ubuntu命令行列出存储在UNIX FTP主机服务器上的文件时,我收到了相同的消息。 我能够使用ftp ftp.example.com成功login,并在出现提示时input我的用户名和密码。 但是,我将收到150 Opening ASCII mode data connection消息,并没有发生任何事情。 然后,我用命令简单地input了选项-p (将其更改为“被动”模式以处理防火墙),并且工作正常。

  ftp -p ftp.example.com 

出现提示时input用户名和密码,然后使用lscd等命令。 我相信你也可以input这个命令,它会做同样的事情,但我没有testing它。

 pftp ftp.example.com 

我知道这个问题属于Windows; 然而,鉴于同样的错误产生了这个提示值得发布。

要获得有关连接停滞原因的真实信息,必须使用logging所有协议命令的客户机来查看实际发生的情况。 这里有一个很好的FTP站点,在这里有例子日志。

不过很有可能

  1. 您的客户端位于(愚蠢的,或者SSL阻止的)防火墙之后,并且正在尝试使用主动模式FTP
  2. 您的服务器位于(哑巴或其他SSL防火墙)防火墙的后面,正在尝试使用被动模式FTP

如果您使用的是SSL,唯一的答案就是在防火墙上打开一系列端口(比如10000-11000),并configuration您的FTP服务器强制被动模式并使用该端口范围。 如果你的服务器正在使用NAT,你还需要为服务器build立正确的IP地址来通告给客户端,大多数服从服务器提供的作为被动模式连接string的服务器,如果服务器认为它是10.1.1.1,那就是它会告诉客户。

如果你不使用SSL,最好的答案是看看你的防火墙是否可以对FTP进行协议检查。 防火墙将读取端口21上的stream量并打开您的服务器想要打开的任何端口。 这通常也可以修复NAT地址(当防火墙也处理NAT时)。 你可能仍然想要强制被动模式,因为有些人不知道如何正确configuration他们的FTP客户端,而现在几乎每个人都在使用宽带路由器/防火墙。

如果你不能得到一个更聪明的防火墙,那么你必须坚持“打开一堆端口”选项(或切换到一个协议,不需要打开一堆随机端口,如ssh的sftp)。

我有这个问题,这是通过下面的解决scheme。

我使用的FireFTP默认情况下是通过被动模式连接的。 在IIS中设置FTP时,默认的端口号是21.我不得不在防火墙中打开端口21,这使我进一步了一步,但是它会挂起在打开ASCII模式的数据连接

原来它然后select一些其他dynamic端口。 我知道这是一个防火墙问题,因为防火墙closuresFTP连接正常。 也在本地服务器上 – 没有问题。

为了解决这个问题,我加载了IIS(使用8.0版本,相信在7.5中是一样的),在树的顶层节点的服务器级别单击它并select“FTP Firewall support”。 您使用的每个FTP站点都将使用这些端口范围,因此个别FTP站点将从此部分inheritance,因此将使该选项变为灰色。

在“数据通道端口范围”中,指定x端口数,在我的情况下是10000-10125

现在,在你的防火墙中打开TCP端口范围为“FTP被动端口范围”。

然后我认为这个问题会解决,但不是很完美。 一定要重新启动Microsoft FTP服务服务来提取新的端口范围。 closuresFireFTP /客户端,然后重试,这一次你将会有幸运。

我和你有同样的问题,现在修好了。

我所做的是打开Windows防火墙(Win7),点击“允许程序或function通过Windows防火墙”,然后在“允许的程序和function”列表中,find“文件传输程序”并勾选checkbox。

完成后,打开命令提示符并inputftp XXXX,login,然后ls / dir / get / put,现在全部工作。

但是我仍然无法从File Zilla和Web Browser连接,希望对你有用。

检查你的服务器的时间同步

不要搞乱你的设置

只需在Windows防火墙中添加出站规则,并提高安全性,并将端口号设置为20。

在CLI上享受FTP

我们使用Windows防火墙新build入站规则向导解决了此问题。 select程序,然后C:\ Windows \ System32 \ http://ftp.exe,允许连接,检查选项; 域名,私人,公共(如果需要的话可以稍后限制),命名规则,你就完成了。

现在ftp到一个ftp站点并validation目录或ls是否正确响应。