WIndows 2012 FTP通过路由器

尝试我可能似乎无法让我的Windows 2012 FTP服务器通过我的路由器

该服务器位于10.0.0.90

我可以通过内部的IP地址(比如说10.0.0.40)将这个IP地址连接起来。 完美的工作。

当我尝试使用我的公共IP从“世界”访问它时,我可以很好地login,但是当我执行DIR或几乎所有的事情时

150 Opening ASCII mode data connection 

……然后没事

我知道它响应一个有效范围的某种types,但即使我把服务器在DMZ我不能超过这个。 任何人有任何build议?

我的路由器configuration如下:

 TCP Port 21 ---> 10.0.0.90 TCP Port 20 ---> 10.0.0.90 TCP Ports 49152 - 65535 ---> 10.0.0.90 

即使在下面给出的build议我仍然不能连接在路由器的另一边。

我也想指出,我设置了防火墙支持(服务器级别)的FTP设置如下:

 Data Channel Port Range: External IP Address of Firewall: 49152-65535 10.0.0.1 

我也想指出,我的防火墙是完全closures的。 我们只依靠路由器的防火墙。

*********** UPDATE ***********

我已经确认,通过使用FTP实用程序(如WSFTP),活动连接确实可以工作。 我相信FTP命令行工具是一个被动工具,所以它不工作。 此外,使用ftp:// user:[email protected]等FTPurl也是被动的,因为它也不起作用。 任何人都可以提出更进一步

阅读这篇关于FTP协议的文章 。

下面是打开的端口。 我如何理解FTP的工作原理也在下面,但我并不认为自己是这方面的专家 – 我理解了这个总体思路,并将其余部分看作是其余部分。 我的post的主要观点是你需要打开更多的端口。

  • 端口21:FTP控制端口。 用于主动和被动FTP。
  • 端口20:FTP数据端口,仅与主动模式FTP一起用于到客户端临时端口的传出连接。
  • 49152 – 65535: 临时端口范围( 参考 )。 请注意,在早期版本的Windows中,这是1025到5000( 参考 )。

背景:使用临时端口,以便多个客户端可以连接到给定端口上的服务器。

端口21通常被称为FTP的控制端口,用于传递FTP命令。 您还需要打开数据传输端口,这取决于您使用的是主动还是被动FTP。 对于活动的FTP,您还将需要打开端口20,因为它是数据端口。 大多数现代FTP服务器和客户端被configuration为使用被动FTP,这需要根据您的configuration打开不同的端口范围。 您将需要参考FTP服务器文档,了解默认configuration的端口范围。

从您所遇到的情况来看,您似乎需要在防火墙上打开主动或被动端口范围,并查看FTP服务器上的Windows防火墙。 您可能有操作系统级别的防火墙规则,允许您的内部networking上的stream量,但限制它为公共连接。