![WIndows 2012 通过路由器进行 FTP](https://linux22.com/image/703524/WIndows%202012%20%E9%80%9A%E8%BF%87%E8%B7%AF%E7%94%B1%E5%99%A8%E8%BF%9B%E8%A1%8C%20FTP.png)
尽管我尽力尝试,但似乎无法让我的 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
答案2
端口 21 通常称为 FTP 的控制端口,用于传递 FTP 命令。您还需要打开数据传输端口,这取决于您使用的是主动 FTP 还是被动 FTP。对于主动 FTP,您还需要打开端口 20,因为它是数据端口。大多数现代 FTP 服务器和客户端都配置为使用被动 FTP,这需要根据您的配置打开不同的端口范围。您需要查阅 FTP 服务器文档,了解默认配置的端口范围。
从您的体验来看,您需要打开防火墙上的主动或被动端口范围,并查看 FTP 服务器上的 Windows 防火墙。您可能有操作系统级别的防火墙规则,允许内部网络上的流量,但限制公共连接。