无法使用 Windows 2012 R2、IIS-8 通过 FTP 获取目录列表

无法使用 Windows 2012 R2、IIS-8 通过 FTP 获取目录列表

无法在 FTP 客户端程序中获取目录列表。

尝试使用被动模式连接 Filezilla:

Status: Resolving address of test.domain.dk
Status: Connecting to 89.XXX.XXX.XXX:21...
Status: Connection established, waiting for welcome message...
Status: Connected
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/" is current directory.
Command:    TYPE I
Response:   200 Type set to I.
Command:    PASV
Error:  Disconnected from server: ECONNABORTED - Connection aborted
Error:  Failed to retrieve directory listing

尝试主动模式,我也无法获取目录列表:

Status: Resolving address of test.domain.dk
Status: Connecting to 89.XXX.XXX.XXX:21...
Status: Connection established, waiting for welcome message...
Status: Connected
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/" is current directory.
Command:    TYPE I
Response:   200 Type set to I.
Command:    PORT 192,168,0,195,203,136
Response:   550 An attempt was made to access a socket in a way forbidden by its access permissions. 
Command:    PASV
Error:  Disconnected from server: ECONNABORTED - Connection aborted
Error:  Failed to retrieve directory listing

我在 Windows Server 2012 R2 IIS-8 上安装了 FTP 服务器和扩展功能。

在我的例子中,FTP/sites 放置在数据驱动器上。此数据驱动器是驱动器 E:\webdata。

服务器防火墙配置正常,我试图禁用防火墙,但行为没有任何变化,因为它不是我的服务器防火墙。

托管服务提供商告诉我已打开端口 20、21 和范围 50000-51000(用于被动模式)。为了将此告知我的服务器,我在 IIS 中打开了 FTP 防火墙支持,并在端口范围内提供了该支持。(也尝试过只使用 0-0)。如果我没有在我的外部防火墙地址字段中输入网关的 IP 地址(更新:使用 wireshark 查看该区域下面的 IP 和注释),我尝试从互联网端连接到 FTP 服务器时出现超时。我询问我的托管服务提供商是否可以获取防火墙的外部 IP 地址,但他们告诉我这没有必要,但我可以使用我的公共 IP 地址作为服务器,这也会在尝试通过外部 FTP 客户端连接时出现超时。托管服务提供商告诉我,我的安装中肯定存在其他问题,我需要找出问题所在。

花了几天和几个小时阅读指南、博客和论坛却没有找到解决方案,我希望这里有人能给出一些建议?

亲切的问候

更新:我做了一个Wireshark,但我对使用Wireshark不太有信心。我在服务器端运行了它,以下是我在尝试连接时捕获到的信息:

No.   Time      Source            Destination    Protocol Length   Info
187   4.920498000   185.XXX.XXX.XXX   192.YYY.YYY.YYY   TCP   66   55073 > 21 [SYN] Seq=0 Win=4380 Len=0 MSS=1456 WS=1 SACK_PERM=1
188   4.920550000   192.YYY.YYY.YYY   185.XXX.XXX.XXX   TCP   66   21 > 55073 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1
189   4.923907000   185.XXX.XXX.XXX   192.YYY.YYY.YYY   TCP   60   55073 > 21 [ACK] Seq=1 Ack=1 Win=4380 Len=0
190   4.924141000   192.YYY.YYY.YYY   185.XXX.XXX.XXX   FTP   84   Response: 220 You see my serverbanner now
191   4.928956000   185.XXX.XXX.XXX   192.YYY.YYY.YYY   FTP   72   Request: USER ftp_username_here
192   4.928994000   192.YYY.YYY.YYY   185.XXX.XXX.XXX   FTP   77   Response: 331 Password required
193   4.934234000   185.XXX.XXX.XXX   192.YYY.YYY.YYY   FTP   69   Request: PASS **********
194   4.934839000   192.YYY.YYY.YYY   185.XXX.XXX.XXX   FTP   67   Response: 230-Glad to see you here
195   4.934857000   192.YYY.YYY.YYY   185.XXX.XXX.XXX   FTP   75   Response: 230 User logged in.
196   4.938247000   185.XXX.XXX.XXX   192.YYY.YYY.YYY   TCP   60   55073 > 21 [ACK] Seq=34 Ack=88 Win=4467 Len=0
197   4.990122000   185.XXX.XXX.XXX   192.YYY.YYY.YYY   FTP   68   Request: OPTS UTF8 ON
198   4.990174000   192.YYY.YYY.YYY   185.XXX.XXX.XXX   FTP   112   Response: 200 OPTS UTF8 command successful - UTF8 encoding now ON.
199   4.996192000   185.XXX.XXX.XXX   192.YYY.YYY.YYY   FTP   60   Request: PWD
200   4.996236000   192.YYY.YYY.YYY   185.XXX.XXX.XXX   FTP   85   Response: 257 ""/"" is current directory.
201   5.000951000   185.XXX.XXX.XXX   192.YYY.YYY.YYY   FTP   62   Request: TYPE I
202   5.000989000   192.YYY.YYY.YYY   185.XXX.XXX.XXX   FTP   74   Response: 200 Type set to I.
203   5.005644000   185.XXX.XXX.XXX   192.YYY.YYY.YYY   FTP   60   Request: PASV
204   5.005841000   192.YYY.YYY.YYY   185.XXX.XXX.XXX   FTP   106   Response: 227 Entering Passive Mode (192,YYY,YYY,ZZZ,233,110).
205   5.009646000   185.XXX.XXX.XXX   192.YYY.YYY.YYY   TCP   60   55073 > 21 [RST, ACK] Seq=67 Ack=249 Win=4628 Len=0
206   5.020808000   185.XXX.XXX.XXX   192.YYY.YYY.YYY   TCP   66   55074 > 21 [SYN] Seq=0 Win=4380 Len=0 MSS=1456 WS=1 SACK_PERM=1
207   5.020841000   192.YYY.YYY.YYY   185.XXX.XXX.XXX   TCP   66   21 > 55074 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1

在上文中,185.XXX.XXX.XXX = 服务器 WAN IP(路由器/网关的外部 IP)192.YYY.YYY.YYY 是我的服务器 LAN IP 192、YYY、YYY、ZZZ 是网关的 IP,我也在上面提到过,我将其用作外部防火墙地址以使其正常工作。

在第 204 帧中,我丢失了 FileZilla 客户端上的连接,如前所述。在第 207 帧之后,我关闭了 FileZilla,之后的几行只列出了我的 RDP 和正在运行的备份系统。

如果我 - 在 wireshark 中 - 双击每一行,我可以看到线路上有一些字节,并且每个帧都会收到相同的字节。所以如果有数据包丢失,我不知道在这种情况下如何看到它。

答案1

发帖说我也有同样的经历。IISreset 在服务器 2016 上不起作用。我对 IIS FTP 站点配置的范围和公共 IP 进行了所有更改,设置了防火墙以对这些端口进行 NAT 等。重新启动 2016 服务器后,一切都按预期运行。

相关内容