Назад | Перейти на главную страницу

Проблемы с доступом к FTP-серверу FileZilla со статического IP-адреса

Я пытаюсь подключиться к своему FTP-серверу с внешнего IP-адреса в Comcast Business.

На шлюзе я настроил переадресацию портов на порты 20-21 на свой сервер. Кроме того, я перенаправил на свой сервер порты 7000-8000 для использования в пассивном режиме.

В моем приложении FileZilla Server я установил пассивный режим, чтобы использовать свой статический IP-адрес и использовать подмножество портов, перечисленных выше.

К сожалению, он по какой-то причине не работает через внешний статический IP-адрес, но я могу внутренне.

Когда я пытаюсь подключиться через статический IP-адрес, монитор FileZila сообщает

Connected, sending welcome message....
220 FileZillaServer version 0.9.37 beta
could not send reply, disconnected

Мой брандмауэр не регистрирует никаких событий блокировки, и брандмауэр Windows отключен. Что я делаю не так или не хватает?

Казалось бы, по какой-то причине соединение через порт 21 не работает между внешним IP и вашим сервером Filezilla.

Я бы порекомендовал разрешить входящее и исходящее соединение через порт 21 как на внешней IP-станции, так и на сервере. После этого вы можете попробовать:

  1. telnet на порт 21 с внешнего ip на сервер Filezilla

    2. вам может потребоваться переслать ответ с сервера Filezilla на внешний IP-адрес (ошибка 220 - не удается получить приветственное сообщение)

То, что вы пытаетесь сделать, обычно не будет работать без перенастройки брандмауэра / устройства NAT.

Поток трафика для вашей текущей настройки будет в основном следующим (с использованием примеров IP):

Внутренний IP-адрес клиента: 10.0.0.100
Внутренний FTP-IP: 10.0.0.1
Внешний FTP-IP: 1.2.3.4

  1. Внутренний клиент (10.0.0.100) открывает FTP-соединение (порт 21) на 1.2.3.4
  2. Внутренний клиент отправляет трафик на шлюз / межсетевой экран по умолчанию
  3. Брандмауэр имеет правило, которое отправляет трафик порта 21 на 10.0.0.1 и отправляет трафик на 10.0.0.1, отправляя его с истинным адресом источника IP-адреса клиента (10.0.0.100)
  4. FTP-сервер отправляет ответ непосредственно на адрес 10.0.0.100 с адресом источника 10.0.0.1 и никогда не выходит обратно через брандмауэр, поскольку видит локальный адрес источника.
  5. Внутренний клиент ожидает, что FTP-трафик вернется с источником 1.2.3.4 и отклоняет ответ от 10.0.0.1
  6. Время FTP-соединения истекло

Вам нужно будет настроить или включить правило NAT типа «шпилька» (или отражение NAT, или другие различные термины в зависимости от производителя) на брандмауэре, чтобы установить сеанс NAT с внешним интерфейсом до того, как трафик вернется. Устройство Comcast может иметь возможность включить отражение NAT, но я не работал с ними раньше, я не могу сказать наверняка, есть они или нет.

Настоящий вопрос в том, почему вы пытаетесь сделать это именно так? Если вы просто пытаетесь протестировать, используйте настоящего внешнего клиента (либо попросите друга протестировать, либо настройте внешний клиент). Если вы пытаетесь сделать это таким образом, просто используйте IP или решение с разделенным DNS.

Пассивный режим и порты с высокими номерами не используются для фазы команды, поэтому это связано с передачей через порт 21.

Возможные варианты:

  • Конфигурация внешнего IP-адреса Filezilla неверна: попробуйте другую службу на том же IP-адресе для подтверждения. Это наиболее вероятно, исходя из того, что вы предоставили
  • Интернет-провайдер выполняет некоторую блокировку: попробуйте изменить порт с 21 на значение выше 1024.
  • Windows может блокировать незаметно: брандмауэр Windows не очень хорош для ведения журналов. Запуск Wireshark подтвердит, действительно ли пакеты покидают хост Windows.

Наконец, вам следует по возможности избегать использования FTP. SFTP или FTPS - гораздо лучший выбор в общедоступном Интернете, поскольку весь контент, включая имена пользователей и пароли, отправляется в открытом виде.