Windows 7 IIS FTP 问题

Posted

技术标签:

【中文标题】Windows 7 IIS FTP 问题【英文标题】:Windows 7 IIS FTP issue 【发布时间】:2012-08-31 23:25:29 【问题描述】:

我一直在尝试使用 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 服务器,因为我把它关掉了。谁有更多的知识可以启发我?

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

@user1534664 NAT 实际上要重写 FTP 控制数据包,让你认为 NAT 路由器是 FTP 服务器。 @Neil 是的,但这不是端口转发背后的概念吗?难道我不转发告诉 NAT 数据必须发送到哪台 PC?我转发了端口 21.. @user1534664 通常,NAT 只更改数据包的 IP 地址(有时还会更改端口号)。只有 FTP 才必须更改数据包的“数据”(实际上是 FTP 命令和/或响应)。 噢,谢谢尼尔!我现在明白尤金的意思了。但我在路由器中看不到任何触发应用程序或 ftp 转发。怎么办?另外,我尝试在我的 PC 上打开所有端口(通过使用 DMZ)并且它现在可以工作,但这可能不是要走的路。 您使用哪种防火墙?打开 Windows 服务器的所有端口似乎有点……对我来说有风险!

以上是关于Windows 7 IIS FTP 问题的主要内容,如果未能解决你的问题,请参考以下文章

win10系统自带的IIS怎么搭建FTP服务器

Windows 2008R2 IIS7.5 创建FTP账号及遇到的问题

Windows Server 2008 IIS安装FTP

ftp管理工具 windows自带的ftp管理工具与iis7ftp管理工具的区别

Windows 2008 R2 IIS搭建 FTP及FTP不能访问笔记

win 7下建立FTP