FTP "425 Datenverbindung kann nicht geöffnet werden" tritt nur bei Verwendung der Eingabeaufforderung auf

8

Alle meine Computer befinden sich hinter einem einzigen Router. Auf einem von ihnen läuft ein FileZilla-Server. Ich versuche, einen Upload auf den Server mithilfe eines Batch-Skripts und der in Windows integrierten Datei ftp.exe zu automatisieren. Ich habe einen dynamischen DNS-Dienst eingerichtet, um von außerhalb des Routers auf meinen Server zugreifen zu können, und ich habe die Portweiterleitung im Router an meinen Server eingerichtet. Ich kann mit Google Chrome, Windows Explorer und dem FileZilla-Client eine Verbindung herstellen und problemlos übertragen. Wenn ich jedoch versuche, ftp.exe zu verwenden (entweder manuell oder im Batch-Skript), kann ich eine Verbindung zum Server herstellen. Wenn ich jedoch versuche, eine Datenverbindung herzustellen (LIST, STOR oder RETR), wird die folgende Fehlermeldung angezeigt: 425 Datenverbindung kann nicht geöffnet werden. Ich habe ftp.exe in den Firewalls beider Computer zugelassen. Irgendwelche Ideen, was los ist oder wie ich es beheben könnte? Ich brauche kein FTP.

BEARBEITEN Ich weiß, dass mein ISP viele Ports blockiert, darunter 21 und mehrere andere in diesem Bereich. Dies ist alles auf Port 2121 eingerichtet, wobei die passiven Ports auf 2122-2142 eingerichtet sind. Alle diese Ports wurden im Router weitergeleitet. Vielleicht verwendet ftp.exe nur einen bestimmten Port für die Datenverbindung, den mein ISP blockiert hat? Wenn ja, wie würde ich das ändern?

Garrett
quelle

Antworten:

5

Normales aktives FTP verwendet eine separate vom Server initiierte Datenverbindung für Übertragungen und verwendet nur die reguläre Port 21-Verbindung als Steuerkanal. Wenn sich der Client jedoch hinter einer Firewall befindet, blockiert die Firewall diese Verbindung wahrscheinlich. Ich vermute, Chrome, Explorer, FireZilla usw. sind intelligent genug, um den passiven Modus zu testen, in dem die ursprüngliche vom Client initiierte Verbindung sowohl als Steuerungs- als auch als Datenkanal verwendet wird.

Es scheint, dass der Standard-CLI-FTP-Client von Windows den passiven Modus nicht unterstützt. Sie müssen also zu NcFTP wechseln . Alternativ, und ich denke, wahrscheinlich ist die bessere Option, stattdessen nur SFTP zu verwenden. FTP ist unsicher und darf eigentlich nur in LANs verwendet werden. SFTP ist vollständig verschlüsselt und verwendet nur einen einzigen Kanal für Daten und Befehle. Wenn Sie einen CLI-SFTP-Client benötigen, ist PSFTP eine gute Option.

Lèse Majestät
quelle
Ich habe das schon ohne Glück versucht
Garrett
@ Garrett: Hrmm ... es scheint, dass der Blog-Artikel, auf den ich verlinkt habe, falsch ist und der Standard-CLI-FTP-Client den passiven Modus nicht unterstützt. In diesem Fall müssen Sie die FTP-Clients wechseln. NcFTP ist eine Option und unterstützt definitiv den passiven Modus.
Lèse Majesté
Ich habe die Anfrage / Antwort während der Übertragung über Windows Explorer beobachtet, Zitat verwendet, um genau dieselben Befehle manuell zu senden, aber immer noch den gleichen Fehler erhalten
Garrett
@ Garrett: Ich dachte, Windows Explorer funktioniert? Wenn der Client den passiven Modus nicht unterstützt, spielt es keine Rolle, den Server anzuweisen, in den Modus zu wechseln.
Lèse Majesté
Unterstützt es die Befehlszeile und ist es eine unabhängige Exe?
Garrett
0

Die Windows-FTP-CLI unterstützt den PASSIVEN Modus. Verwenden Sie "quote pasv", um in den passiven Modus zu wechseln.

George Rios
quelle
2
Ich denke nicht, dass das tatsächlich funktioniert . Können Sie bestätigen, dass quote pasvtatsächlich etwas in ftp.exe ausgeführt wird und nicht nur ein Dummy-Befehl ist?
Lèse Majesté
0

Ich hatte auch dieses Problem. Die Lösung bestand darin, die Firewall des Antivirenprogramms (in meinem Fall McAfee) zu stoppen und die FTP-Ports zu blockieren.

Sfalcini
quelle
Das ist keine wirkliche Lösung.
ivan_pozdeev