被动 FTP 服务器端口配置问题 Win2003

被动 FTP 服务器端口配置问题 Win2003

操作系统

端口 20 和 21 已开放

IIS6 - 已启用直接元数据库编辑

配置 FTP 服务被动范围为 5500-5550

5500-5550 已添加到 Windows 防火墙

iisreset 并通过重新启动 ftp 服务进行双重检查

什么都没变,当我连接并进入被动模式时,每当我尝试列出或传输文件时,它仍然挂起。主动模式同样没用。

Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\user>ftp
ftp> open x.x.x.x
Connected to x.x.x.x.
220-Microsoft FTP Service
    xxxxxxxxxxxxxxxxxx
220 xxxxxxxxxxxxxxxxxx
User (x.x.x.x:(none)): user
331 Password required for user.
Password:
230-YOUR ACTIVITY IS BEING RECORDED TO THE FULLEST EXTENT
230 User user logged in.
ftp> QUOTE PASV
227 Entering Passive Mode (82,19,25,134,21,124)
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for file list.

并且它挂了..

现在我可以从微软文档中看到,在较新的 Windows 版本中,建议采取类似的附加步骤,但它们在 2003 上不起作用......

netsh advfirewall firewall add rule name=”FTP Service” action=allow service=ftpsvc protocol=TCP dir=in
netsh advfirewall set global StatefulFTP disable

我是不是漏掉了什么,最后这个 StatefulFTP 是什么意思

编辑

我可以使用 WinSCP 客户端连接和传输二进制文件 - 因此问题一定出在我的 ftp 命令上,不是吗?有人能看出我的 Windows ftp 客户端示例有什么问题吗?为什么它会挂在 ls 上,我也尝试了 QUOTE LIST,但它只是挂了,而且 Windows ftp 客户端在活动中不起作用,如果我尝试进入“二进制”然后输入它就会挂起 - 在我在路由器上添加 5500-5550 之前,这有效。此后,我已将此范围添加到路由器,但 Windows ftp 客户端没有任何区别。

答案1

也许是防火墙阻止了...

要纠正此问题并允许在 Windows 防火墙上跟踪 FTP 状态,请从命令提示符运行以下命令:

netsh advfirewall set global StatefulFtp enable

或者将inetsrv.exe放到防火墙的信任程序里。

编辑

在 Windows Server 2003 上配置防火墙的脚本:

C:\Inetpub\AdminScripts\adsutil.vbs set /MSFTPSVC/PassivePortRange “ 5500-5550″
FOR /L %I IN (5500,1,5550) DO netsh firewall add portopening TCP %I “Passive FTP Port “%I

答案2

原来 Windows FTP 客户端需要添加到防火墙,哈哈

相关内容