FTP неверный ответ на команду PASV

Почему некоторые отклики пассивного режима FTP иногда изменяются таким образом, что закрывающая скобка не учитывается.

Я ожидаю, что ответ FTP на команду PASV будет:

227 Entering Passive Mode (h1,h2,h3,h4,p1,p2)\r\n

Вместо этого я получаю:

227 Entering Passive Mode (h1,h2,h3,h4,p1,p2\r\n\r\n

Закрывающая скобка опущена, и вместо нее есть дополнительная \r\n

Я пишу программное обеспечение для проприетарной платформы и использую библиотеку FTP, которую не могу изменить. Эта библиотека, очевидно, не работает без закрывающей скобки.

Проблема возникает при доступе к серверу (в NAT) из Интернета. В локальной сети есть закрывающая скобка.

Пример: из локальной сети я получаю:

227 Entering Passive Mode (h1,h2,h3,h4,p1,p2)\r\n

куда h1,h2,h3,h4 это частный IP-адрес h1.h2.h3.h4

из Интернета:

227 Entering Passive Mode (h1,h2,h3,h4,p1,p2\r\n\r\n

где h1,h2,h3,h4 это публичный IP-адрес h1.h2.h3.h4, но обратите внимание на отсутствующую закрывающую скобку и дополнительные \r\n

Пробовал и IIS FTP и Filezilla и результаты одинаковые. Кроме того, IP-адрес и порт являются правильными (я проверил это, открыв другое соединение telnet на тот IP / порт).

К сожалению, у меня нет более подробной информации о сети, в которой находится сервер.

Что может быть причиной такого поведения? Роутер, брандмауэр? Можно ли это решить. Я исключил сам FTP-сервер, потому что ответ при подключении изнутри локальной сети сервера правильный.

Спасибо.

0 ответов

Другие вопросы по тегам