У меня 64-битная версия Windows 2003 Data Center Edition с установленным IIS / FTP 6. FTP-сайт - это сайт по умолчанию, который был создан при установке IIS / FTP. Я настроил FTP, чтобы он не разрешал анонимные соединения. Домашняя папка C:\Inetpub\ftproot
, с разрешениями на чтение и запись. Список ACL для ftproot следующий:
Administrators: Full Control
CREATOR OWNER: Full Control
SYSTEM: Full Control
Users: Read
Я создал виртуальный каталог под названием VirtualDir
, что указывает на C:\Inetpub\wwwroot\VirtualDir
, с разрешениями на чтение и запись, и ACL для папки VirtualDir:
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
При использовании активного режима все идет хорошо. Я что-нибудь забыл? Я сделал что-то не так? Не думаю, что это разрешение, так как в Активном режиме все идет нормально.
Tks
Пассивные порты FTP блокируются брандмауэром на стороне сервера. Существует свойство метабазы PassivePortRange, которое позволяет указать диапазон портов, используемых для пассивного FTP, в соответствии с тем, что разрешено через ваш брандмауэр.
См. Эти ссылки: