1

我一直在尝试使用 Windows 7 中的 IIS 设置 ftp 服务器。我在本地网络上已经成功,但现在我想将其公开。我转发了端口 21,但是现在当我从外部打开我的 ftp 服务器时(ftp://myexternalip),我确实收到了输入用户名和密码的提示,但是当我登录时,我得到了这个日志:

Command:    OPTS UTF8 ON
Response:   200 OPTS UTF8 command successful - UTF8 encoding now ON.
Status: Connected
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/" is current directory.
Command:    TYPE I
Response:   200 Type set to I.
Command:    PASV
Response:   227 Entering Passive Mode (192,168,178,14,57,219).
Status: Server sent passive reply with unroutable address. Using server address instead.
Command:    LIST
Response:   150 Opening BINARY mode data connection.
Error:  Connection timed out
Error:  Failed to retrieve directory listing

因此,我在我的 ftp 服务器中看不到任何数据/文件。我不知道这里的问题是什么,也不知道如何解决这个问题。我也确定我的防火墙没有阻止 ftp 服务器,因为我把它关掉了。谁有更多的知识可以启发我?

4

1 回答 1

1

FTP 协议与其他协议不同,因为它不仅使用命令通过的专用端口 (21)(这就是您可以登录等的原因),而且使用自发的其他端口来传输数据有效负载。

这不是问题,当设计 FTP 并且客户端和服务器通常直接看到自己(并且防火墙是外来的)时,但 NAT 改变了游戏规则:您的服务器看到的地址(192.168.178.14)在互联网上不可见。

修复它的唯一方法是在 NAT 上:那里的连接跟踪模块实际上会拦截和操纵命令通道,以将 NATed 地址/端口转换为公共地址/端口。大多数防火墙设备都知道如何做到这一点。

在您的防火墙中查找“触发应用程序”或“FTP 转发”。

于 2012-08-31T23:34:34.623 回答