Proftpd 不回應「PASV」指令

Proftpd 不回應「PASV」指令

我一直在嘗試配置位於 NAT 後面的 FTPS 伺服器。因此,我在 NAT (TCP+UDP) 中開啟了連接埠 20、21 以及 2120-2180,並將 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/本機連線工作正常。

答案1

FTP 是一個可怕的協定。它使用兩個連接埠——一個用於命令,一個用於資料。這使得 NAT 變得非常困難,因為路由器需要解析命令通道並找出該 FTP 會話需要第二個連接。這樣做是醜陋的,但也是使 NAT 與 FTP 一起工作的唯一方法。

FTPS加密命令通道,從而使任何路由器都無法檢查資料包並找出資料通道的位置。顯然,這意味著它將無法解釋這一點;因此,當您的資料通道由客戶端啟動時(根據 PASV 的要求),您的 NATting 路由器將不知道如何處理它。由於 FTP 的工作方式,無​​法修復此問題。

只要對 FTP 說“不”,而使用 SFTP 或類似的東西(它透過 SSH 隧道傳輸文件,因此只需要一個 TCP 連線)。如今,大多數圖形 FTP 用戶端也支援 SFTP。

相關內容