it-swarm.com.de

200 PORT-Befehl erfolgreich. Erwägen Sie die Verwendung von PASV. 425 Verbindung konnte nicht hergestellt werden

Ich habe einen FTP-Server in Ubuntu 12.04 LTS eingerichtet.

Wenn ich jetzt versuche, von Windows 7 aus über die Befehlszeile ftp.exe eine Verbindung zum FTP-Server herzustellen, wird die Verbindung erfolgreich hergestellt, aber ich kann keine Verzeichnisliste abrufen. Ich bekomme einen Fehler 

200 PORT command successful. Consider using PASV.
425 Failed to establish connection. 
13
CY5

Verwenden Sie den Befehl passive, bevor Sie ls verwenden.

Um zu prüfen, ob der FTP-Server den passiven Modus unterstützt, geben Sie nach dem Anmelden quote PASV ein, um zu prüfen, ob der FTP-Server den FTP-Client unterstützt.

Im Folgenden finden Sie Verbindungsbeispiele zu einem vsftpd-Server mit ein- und ausgeschaltetem Passivmodus

vsftpd mit pasv_enable=NO:

# ftp localhost
Connected to localhost.localdomain.
220 (vsFTPd 2.3.5)
Name (localhost:john): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quote PASV
550 Permission denied.
ftp> 

vsftpd mit pasv_enable=YES:

# ftp localhost
Connected to localhost.localdomain.
220 (vsFTPd 2.3.5)
Name (localhost:john): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quote PASV
227 Entering Passive Mode (127,0,0,1,173,104).
ftp> 
9
Shannon

Sie verwenden FTP in einem aktiven Modus.

Das Einrichten des FTP im aktiven Modus kann heutzutage aufgrund von Firewalls und NATs umständlich sein.

Es ist wahrscheinlich auf Ihre lokale Firewall oder NAT zurückzuführen, dass der Server keine Verbindung zu Ihrem Client herstellen konnte, um eine Datenübertragungsverbindung herzustellen. 

Oder Ihr Client kennt die externe IP-Adresse nicht und gibt dem Server stattdessen eine interne Adresse (Befehl PORT), die der Server offensichtlich nicht verwenden kann. Dies sollte jedoch nicht der Fall sein, da vsftpd standardmäßig die Adresse der Datenübertragung ablehnt, die nicht mit der Quelladresse der FTP-Steuerverbindung identisch ist (die port_promiscuous-Direktive).

Siehe my Artikel Netzwerkkonfiguration für aktiven Modus .


Wenn möglich, sollten Sie einen passiven Modus verwenden, da auf Client-Seite normalerweise keine zusätzlichen Einstellungen erforderlich sind. Das hat Ihnen der Server auch mit "Überlegen mit PASV" vorgeschlagen. Die Variable PASV ist ein FTP-Befehl, mit dem der Passivmodus aufgerufen wird.

Leider unterstützt der Windows FTP-Befehlszeilenclient (der ftp.exe) den passiven Modus überhaupt nicht. Das macht es heutzutage ziemlich nutzlos.

Verwenden Sie stattdessen einen anderen Windows-FTP-Befehlszeilenclient von Drittanbietern. Die meisten anderen unterstützen den passiven Modus.

Beispiel: WinSCP FTP-Client ist standardmäßig auf den passiven Modus eingestellt, und es gibt eine Anleitung zum Konvertieren von Windows-FTP-Skripts in WinSCP-Skripts .

(Ich bin der Autor von WinSCP)

9
Martin Prikryl

Eigentlich blockiert Ihre Fenster-Firewall die Verbindung, so dass Sie diese Befehle vom Administrator in cmd.exe eingeben müssen.

1) netsh advfirewall firewall add rule name="FTP" dir=in action=allow program=%SystemRoot%\System32\ftp.exe enable=yes protocol=tcp

2) netsh advfirewall firewall add rule name="FTP" dir=in action=allow program=%SystemRoot%\System32\ftp.exe enable=yes protocol=udp

falls etwas schief geht, kannst du dies folgendermaßen rückgängig machen:

1) netsh advfirewall firewall delete rule name="FTP" program=%SystemRoot%\System32\ftp.exe

4

Sie müssen den passiven Modus verwenden.

Wenn Sie einen Linux-Client verwenden, verwenden Sie pftp oder ftp -p

Von man ftp:

-p    Use passive mode for data transfers. Allows use of ftp in environments where a firewall prevents connections from the outside world back to the client machine. Requires that the ftp server support the PASV command. This is the default if invoked as pftp.
0
Rusher