我有一个Windows 2003 64位数据中心版,安装了IIS / FTP 6。 FTP站点是我安装IIS / FTP时创build的默认站点。 我已经安装了FTP,以便它不会允许匿名连接。 主文件夹是C:\Inetpub\ftproot ,具有读取和写入权限。 ftproot的ACL如下:
Administrators: Full Control CREATOR OWNER: Full Control SYSTEM: Full Control Users: Read
我创build了一个名为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
我创build了一个名为virtualdir属于Users组的本地用户,如上所示, VirtualDir wwwroot的VirtualDir文件夹具有读/写权限。 我只能使用主动连接模式列出虚拟目录虚拟目录的内容。 采用被动模式,这是不可能的。 我尝试closures服务器的防火墙,并且为端口21和C:\WINDOWS\system32\inetsrv\inetinfo.exe文件添加了exception,但是没有任何效果。 我确定这不是一个客户端防火墙问题,因为我可以连接到任何其他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
使用主动模式时,一切顺利。 我忘了什么吗? 我做错了什么? 我不认为这是允许的,因为在主动模式下,一切都很好。
TKS
被动FTP端口被服务器端的防火墙阻止。 有一个名为PassivePortRange的元数据库属性,允许您指定用于被动FTP的端口范围,以匹配通过防火墙所允许的端口。
看到这些参考资料