WIndows 2012 通过路由器进行 FTP

WIndows 2012 通过路由器进行 FTP

尽管我尽力尝试,但似乎无法让我的 Windows 2012 FTP 服务器通过我的路由器。

服务器位于 10.0.0.90

我可以通过 FTP 顺利地从内部访问该 IP 地址(例如从 10.0.0.40)。运行良好。

当我尝试使用我的公共 IP 从“世界”访问它时,我可以正常登录,但是当我执行 DIR 或几乎任何我得到的操作时

150 Opening ASCII mode data connection

......然后什么都没有

我知道它会以某种活动范围做出响应,但即使我将服务器放在 DMZ 中,我也无法绕过它。有人有什么建议吗?

我的路由器配置如下:

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

即使按照下面的建议,我仍然无法连接到路由器的另一端。

我还想指出,我将 FTP 设置设置为防火墙支持(服务器级别),如下所示:

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

我还想指出的是,我那台机器上的防火墙完全关闭了。我们完全依赖路由器的防火墙。

***********更新***********

我已经通过使用 FTP 实用程序(例如 WSFTP)确认主动连接确实有效。我相信 FTP 命令行实用程序是一种被动实用程序,因此它不起作用。此外,使用 FTP url(例如ftp://用户:[电子邮件保护]也是被动的,因为它也不起作用。有人能提出进一步的建议吗?

答案1

本文关于FTP协议。

要打开的端口如下。下面还介绍了我对 FTP 工作原理的理解,但我不敢自称是这方面的专家 - 我理解了总体思路,并查阅了其余内容。我这篇文章的重点是您需要打开更多端口。

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

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

答案2

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

从您的体验来看,您需要打开防火墙上的主动或被动端口范围,并查看 FTP 服务器上的 Windows 防火墙。您可能有操作系统级别的防火墙规则,允许内部网络上的流量,但限制公共连接。

相关内容