我有一个 Windows 2003 64 位数据中心版,安装了 IIS/FTP 6。FTP 站点是我安装 IIS/FTP 时创建的默认站点。我已将 FTP 设置为不允许匿名连接。主文件夹为C:\Inetpub\ftproot
,具有读写权限。ftproot 的 ACL 如下:
Administrators: Full Control
CREATOR OWNER: Full Control
SYSTEM: Full Control
Users: Read
我创建了一个名为的虚拟目录VirtualDir
,它指向C:\Inetpub\wwwroot\VirtualDir
具有读写权限的,并且文件夹 VirtualDir 的 ACL 如下:
Administrators: Full Control
virtualdir: Modify (Read/Write)
IIS_WPG: Read
InternetGuest: Deny Write
SYSTEM: Full Control
Users: Read
我创建了一个本地用户,其名称virtualdir
属于用户组,如上所示,该用户对VirtualDir
文件夹具有读/写权限wwwroot
。我只能使用主动连接模式列出虚拟目录的内容VirtualDir
。使用被动模式,这是不可能的。我尝试关闭服务器的防火墙,并为端口 21 和文件添加了例外C:\WINDOWS\system32\inetsrv\inetinfo.exe
,但没有任何效果。我确信这不是客户端防火墙问题,因为我可以以主动或被动模式连接到任何其他 FTP 站点,没有任何问题。以下是使用被动模式时 FileZilla 客户端的日志:
Status: Connecting to 187.xxx.xxx.204:21...
Status: Connection established, waiting for welcome message...
Response: 220 Microsoft FTP Service
Command: USER virtualdir
Response: 331 Password required for virtualdir.
Command: PASS ************
Response: 230 User virtualdir logged in.
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/virtualdir" is current directory.
Command: TYPE I
Response: 200 Type set to I.
Command: PASV
Response: 227 Entering Passive Mode (187,xxx,xxx,204,19,139).
Command: LIST
Response: 425 Can't open data connection.
Error: Failed to retrieve directory listing
使用主动模式时,一切顺利。我忘记了什么吗?我做错了什么吗?我不认为这是权限问题,因为在主动模式下,一切都很顺利。
谢谢
答案1
被动 FTP 端口被服务器端的防火墙阻止。有一个名为 PassivePortRange 的元数据库属性,它允许您指定用于被动 FTP 的端口范围,以匹配允许通过防火墙的端口。
请参阅以下参考资料: