1

Я запустил свой ftp-сервер с pure-ftpd -l puredb:/etc/pure-ftpd/pureftpd.pdb -E -j -R -P 67.68.xxx.xx -s -A -j -Z -H -4 -E -R -G -X -x -d -d -U 113:000 -p 30000:30009 -c 50 -C 5

В моем файле журнала Pure-FTPd у меня есть:

[DEBUG] Command [pasv] [] 227 Entering Passive Mode (67,68,xxx,xx,117,54)

Hovever, мой FTP-клиент получает это:

---> PASV 227 Entering Passive Mode (192,168,2,23,231,6) ftp: connect: No route to host

Почему это происходит и как я могу получить правильный IP-адрес? Спасибо.

1 ответ1

2

Поскольку FTP отправляет IP-адреса и порты внутри таких сообщений (а не только в заголовках пакетов), он не является протоколом, дружественным к NAT.

Из-за этого шлюзы NAT часто имеют специальный код для обработки FTP. Этот код известен как FTP «шлюз прикладного уровня», или ALG. FTP ALG ищут сообщения, такие как команда PASV, и перезаписывают IP-адрес для представления общедоступного IP-адреса шлюза NAT, чтобы обеспечить работу связи.

Если ваш FTP-клиент находится за шлюзом NAT, а ваш FTP-сервер - нет, то использование пассивного режима - это способ обойти плохой NAT-шлюз, у которого нет FTP ALG.

Если ваш FTP-клиент НЕ находится за NAT-шлюзом, а ваш FTP-сервер ЕСТЬ, то вы можете без проблем использовать обычный активный FTP, но в этом случае пассивный режим фактически прервется, если шлюз NAT перед FTP-сервером не имеет хороший FTP ALG. Многие шлюзы NAT имеют наполовину сломанные FTP ALG, которые активируют работу FTP только для FTP-клиентов за NAT, но не обрабатывают случай «FTP- сервер за NAT». Очевидно, многие поставщики шлюзов NAT не думают и не заботятся о случае «сервер за NAT».

Если и ваш FTP-клиент, и ваш FTP-сервер находятся за отдельными шлюзами NAT, которые не имеют FTP ALG, активный FTP будет заблокирован NAT клиента, а пассивный FTP будет заблокирован NAT сервера, поэтому вы просто не сможете в этом случае вообще используйте обычный FTP, и вам нужно будет установить какой-то туннель или другой обходной путь. Переключение на зашифрованный FTP будет работать, потому что зашифрованные протоколы FTP были разработаны после того, как шлюзы NAT были распространены, и авторы знали, что шлюз NAT не сможет видеть или связываться с внутренностями протокола, поэтому они должны были спроектировать его для работы во всех различных сценариях NAT.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .