Как настроить FTP на IIS через роутер?

У меня есть белый ip-адрес и я пытаюсь настроить ftp-сервер на iis'е. При открытии по внутреннему ip-адресу всё отлично работает, а вот по внешнему получаю ошибку (firewall полностью отключил - не помогает):

Ошибка папки FTP


В ходе открытия папки на FTP-сервере произошла ошибка. Убедитесь, что у вас есть разрешение открывать эту папку.

Подробности:
200 Type set to A.

227 Entering Passive Mode (192,168,1,202,246,61).


ОК

При некоторых настройках сообщение меняется на

Ошибка папки FTP


В ходе открытия папки на FTP-сервере произошла ошибка. Убедитесь, что у вас есть разрешение открывать эту папку.

Подробности:
Не удается установить связь с сервером


ОК

Как сделать, чтобы с внешнего адреса тоже открывалось?


Ответы (1 шт):

Автор решения: Qwertiy

Предварительная подготовка

  • Надо иметь белый ip-адрес от провайдера

  • На роутере должен быть настроена выдача фиксированного ip (в локальной сети) компьютеру - у меня это будет 192.168.1.202

    настройка фиксированного ip на роутере

  • Временно отключаем firewall - так проще проверять, а когда всё будет готово - включим обратно и настроим

Действуем по любой инструкции

  1. Устанавливаем IIS
  2. Создаём FTP-сайт и указываем желаемый порт (по умолчанию 21, я для примера использую 4444), отключаем SSL
  3. Указываем доступ для зарегистрированных пользователей
  4. Создаём локального пользователя windows с нужными логином и паролем
  5. Проверяем через ftp://localhost:4444 или локальный ip ftp://192.168.1.202:4444 - должно уметь запрашивать логин и пароль свежесозданного пользователя.

Разбираемся с настройками портов в IIS'е:

  1. В IIS для компьютера идём в Поддержку брандмауэра FTP:

    Поддержка брандмауэра FTP

  2. Указываем там диапазон портов, который будет использоваться для пассивных соединений

    Указываем диапазон портов

  3. В IIS для сайта (может можно и для компьютера - мне было лень проверять) идём в Поддержку брандмауэра FTP:

    Поддержка брандмауэра FTP для сайта

  4. Указываем внешний ip-адрес - не тот, который в локальной сети, а тот, который выдал провайдер интернета (для примера использую 5.111.222.33):

    Указываем ip-адрес

  5. На этом этапе должно полностью без ошибок работать ftp://localhost:4444 и ftp://192.168.1.202:4444. Т. е. при открытии должны запрашиваться логин и пароль, а после их ввода должна открыться папка. Если изоляция пользователей в свойствах ftp-сайта отключена, то можно в папку заранее положить какой-то файл и он должен отобразиться.

Настраиваем проброс портов на роутере

  1. Выставляем проброс основного порта ftp на роутере

    Проброс ftp-порта на роутере

  2. На этом этапе при открытии ftp://5.111.222.33:4444 будет появляться окно ввода логина и пароля, но если их ввести, вместо открытия папки будет происходить одна из указанных в вопросе ошибок.

  3. Добавляем проброс диапазона портов, указанного на шаге 7.

    Проброс пассивных портов

  4. На этом этапе по адресу ftp://5.111.222.33:4444 всё должно работать. Впрочем, может понадобиться перезагрузить компьютер.

Включаем firewall

  1. Включаем обратно firewall и идём в разрешения для порграмм

    Разрешение для программ

  2. Находим в списке FTP Сервер и ставим галочку

    Разрешение доступа для FTP

Готово

  1. Всё должно по-прежнему работать
  2. При необходимости можно настроить ssl
→ Ссылка