Вопрос или проблема
Я настроил виртуальную машину Azure с Windows Server 2012 R2. Я также настроил FTP-сервер IIS 8.5. Когда я получаю доступ к сайту, используя URL localhost на том же сервере, я получаю запрос на имя пользователя/пароль, и когда я ввожу имя пользователя/пароль, я получаю успешный ответ. Но если я получаю доступ к тому же сайту, используя DNS-имя (*.cloudapp.net) с того же сервера или с удаленной машины, то я получаю запрос на имя пользователя/пароль, но когда я ввожу имя пользователя/пароль и нажимаю кнопку “Войти”, сервер не отвечает, браузер загружает бесконечно.
Вот журнал FileZilla:
Статус: Разрешение адреса XXX.cloudapp.net
Статус: Подключение к XX.XX.XX.XX:21...
Статус: Соединение установлено, ожидаем приветственное сообщение...
Ответ: 220 Microsoft FTP Service
Команда: USER XXX
Ответ: 331 Требуется пароль
Команда: PASS **************
Ответ: 230 Пользователь вошел.
Команда: OPTS UTF8 ON
Ответ: 200 Команда OPTS UTF8 выполнена успешно - UTF8-кодировка теперь включена.
Статус: Подключено
Статус: Получение списка директорий...
Команда: PWD
Ответ: 257 "https://superuser.com/" - текущая директория.
Команда: TYPE I
Ответ: 200 Тип установлен на I.
Команда: PASV
Ответ: 227 Вход в пассивный режим (100,73,170,123,193,12).
Команда: LIST
Ответ: 150 Открыто бинарное соединение данных.
Ошибка: Время подключения истекло
Ошибка: Не удалось получить список директорий
Перейдите в настройки FileZilla.
Измените настройки FTP.
Вместо пассивного режима выберите активный режим и нажмите ОК.
Попробуйте сейчас, это сработает.
Azure не разрешает пассивный FTP, вот в чем трудность.
Ответ или решение
Когда вы настраиваете FTP-сервер на Azure VM с Windows Server 2012 R2 и сталкиваетесь с проблемой, что после ввода имени пользователя и пароля FTP-сервер не отвечает, это может быть связано с несколькими факторами. Мы рассмотрим возможные причины данной проблемы и предложим решения.
Фоновые факторы
На вашем FTP-сервере с IIS 8.5 все работает корректно при доступе через локальный адрес, однако, при попытке соединения через DNS имя (cloudapp.net) возникает проблема с подключением после успешной аутентификации. Ваша диагностика через FileZilla показывает, что соединение устанавливается, но происходит тайм-аут при попытке извлечь список каталогов.
Причины проблемы
-
Настройки FTP в Azure: Azure имеет специфические ограничения на использование режима пассивного FTP. В случае использования пассивного режима клиент FTP ожидает подключения на определенные порты, которые могут быть закрыты в рамках правил межсетевого экрана Azure. Это может привести к проблемам с передачей данных и к бесконечному ожиданию отклика от сервера.
-
Настройки Firewall: Мешающее правило в межсетевом экране Azure может блокировать порты, используемые для передачи данных в пассивном режиме.
-
Проблемы с NAT: В случае, если ваш сервер находится за NAT (сеть с трансляцией адресов), это может вызвать трудности с маршрутизацией трафика, особенно в пассивном режиме.
Решения
Чтобы устранить проблему и обеспечить стабильное подключение к вашему FTP-серверу, рекомендуется следующее:
-
Переключение на активный режим FTP:
- Как вы уже выяснили, изменение настроек FTP-клиента (например, FileZilla) с пассивного на активный режим может решить проблему. Активный режим избегает некоторых ограничений, связанных с NAT и межсетевым экраном.
-
Настройка Azure Network Security Group (NSG):
- Перейдите в настройки вашей группы безопасности сети (NSG) в Azure и убедитесь, что необходимые порты открыты. Для активного режима FTP обычно используются порты 20 и 21, также убедитесь, что порты 1024-65535 открыты для входящих соединений, если вы планируете использовать активный режим.
-
Проверка конфигурации IIS:
- Убедитесь, что в настройках IIS FTP правильно указан адрес для передачи данных. Для активного режима это может быть внутренний IP адрес машины.
-
Мониторинг сетевого трафика:
- Используйте инструменты для мониторинга сетевого трафика (например, Wireshark) для диагностики соединения. Это поможет выявить, где происходит задержка или сбой при попытке передачи данных.
-
Логи и диагностика:
- Проводите регулярные проверки логов IIS для выявления ошибок или предупреждений. Это может предоставить подсказки касаемо того, что именно идет не так при попытке подключения.
Заключение
Проблемы с подключением к FTP-серверу могут быть непростыми, но их можно решить с правильным подходом к диагностике и настройке. Используйте активный режим FTP, скорректируйте настройки межсетевого экрана Azure и убедитесь, что ваша конфигурация IIS соответствует требованиям. Внимательное изучение логов и сетевого трафика поможет глубже понять корень проблемы и обеспечить надежный доступ к вашему FTP-серверу.