Я думал, если открою порты 20 и 21, все заработает. Вместо этого я могу подключаться и менять каталоги, но когда я, например, пробую «dir», я получаю «Не удалось открыть соединение для передачи данных на порт XXXXX» с другим номером порта. Если я просто отключу брандмауэр, все будет нормально. Есть ли какой-то большой диапазон портов, который я должен позволить, чтобы это работало?
При создании FTP-сайта в IIS у вас есть выбор, какие динамические порты использовать. Какие бы порты ни были там установлены, они должны быть открыты в брандмауэре.
Или вам нужно использовать FTP-клиент, который поддерживает режим PASV, который принудительно передает все передачи через FTP-порт. Но командная строка от Microsoft этого не поддерживает.
Другой вариант, который у вас есть, - включить проверку состояния FTP брандмауэра. После открытия порта FTP (21) введите следующую команду на сервере в командной строке:
netsh advfirewall set global StatefulFtp enable
Я считаю, что это работает только на «серверах» Vista, Windows 7 и 2K8.