Proftpd не отвечает на команду «PASV»

Proftpd не отвечает на команду «PASV»

Я пытаюсь настроить свой FTPS-сервер, который находится за NAT. Поэтому я открыл порты 20, 21, а также 2120-2180 в моем NAT (TCP+UDP) и настроил proftpd на использование этих портов для пассивной связи.

Однако попытка подключения с помощью FileZilla приводит к следующему журналу: (на французском, но на самом деле довольно понятно)

Statut :    Résolution de l'adresse de heardrones.com
Statut :    Connexion à 93.30.208.56:21...
Statut :    Connexion établie, attente du message d'accueil...
Réponse :   220 ProFTPD 1.3.5 Server (HEAR Server) [93.30.208.56]
Commande :  USER hear_downloader
Réponse :   331 Mot de passe requis pour hear_downloader
Commande :  PASS ********
Réponse :   230 Utilisateur hear_downloader authentifié
Commande :  OPTS UTF8 ON
Réponse :   200 UTF-8 activé
Statut :    Connecté
Statut :    Récupération du contenu du dossier...
Commande :  PWD
Réponse :   257 "/" est le répertoire courant
Commande :  TYPE I
Réponse :   200 Type paramétré à I
Commande :  PASV
Erreur :    Délai d'attente expiré
Erreur :    Impossible de récupérer le contenu du dossier

Он истекает до того, как успевает отправить ответ "PASV"! Что может быть причиной этого? Ответ на команду PASV использует тот же порт, что и все остальные команды (PWD, TYPE ...), так откуда он мог взяться?


Вот схема сети:

    Server
        Proftpd, no iptables, fix IP 192.168.0.13
        -> (Wifi)
    ISP Box - French ISP (SFR)
        port transfer 20,21,22,2120-2180 to 192.168.0.13
        -> (optic fiber !)
    Internet

Я могу предоставить скриншоты настроек Box и файлы конфигурации proftpd, если нужно. Подключение из LAN/Localhost работает отлично.

решение1

FTP — ужасный протокол. Он использует два порта — один для команд, один для данных. Это делает его крайне сложным для NAT, поскольку маршрутизатору нужно будет проанализировать командный канал и выяснить, что для этого FTP-разговора ожидается второе соединение. Это некрасиво, но это единственный способ заставить NAT работать с FTP.

ФТПСшифруеткомандный канал, тем самым делая невозможным для любого маршрутизатора проверять пакеты и выяснять, где будет канал данных. Очевидно, это означает, что он не сможет это учесть; поэтому, когда ваш канал данных инициируется клиентом (как того требует PASV), ваш маршрутизатор NAT не будет знать, что с ним делать. Это невозможно исправить из-за того, как работает FTP.

Просто скажите «нет» FTP и используйте вместо этого SFTP или что-то в этом роде (что передает файлы через туннель SSH и, следовательно, требует только одного TCP-подключения). Большинство графических FTP-клиентов в наши дни также поддерживают SFTP.

Связанный контент