Ich verwende Windows 7 und habe mehrere FTP-Client-Anwendungen, die problemlos funktionieren. Wenn ich jedoch Befehlszeilen-FTP verwende, kann ich mich verbinden und anmelden (nachdem ich Benutzername und Passwort eingegeben habe), aber es wird immer getrennt, wenn der Befehl dir oder ls verwendet wird. Die Antwort lautet:
Verbindung vom Remote-Host geschlossen.
Wie kann ich dieses Problem beheben?
windows-7
command-line
ftp
Hong
quelle
quelle
Antworten:
Normalerweise wird dies passieren, wenn der Server versucht, eine Verbindung zu Ihnen herzustellen, dies jedoch nicht kann. FTP verwendete ursprünglich zwei TCP- Kanäle. Einer war für Befehle und der andere für die Datenübertragung. Wenn Sie den Befehl dir ausführen, wird ein Datenkanal verwendet. Der Datenkanal wird bei Bedarf eingerichtet und führt dazu, dass der Server versucht, eine Verbindung zu Ihnen herzustellen.
Dies wird höchstwahrscheinlich von Ihrem Router oder Ihrer Windows-Firewall blockiert. Sie benötigen einen Client, der den PASV- Modus unterstützt .
Sie können den PASV-Modus in Internet Explorer aktivieren . Oder verwenden Sie einen anderen Client. Ich bin nicht sicher, ob die Befehlszeilenversion den PASV-Modus verwenden kann. Es ist ein sehr einfacher Kunde.
quelle
Ich hatte ein Problem mit der Übertragung von Dateien über FTP, nachdem ich in der betreffenden Box angemeldet war. Es würde den Dateinamen erstellen, aber die Datei war leer. Ich habe es folgendermaßen gelöst:
Es sollte gut sein, jetzt zu gehen.
quelle
Der Windows-FTP-Befehlszeilenclient
ftp.exe
unterstützt nur einen aktiven FTP-Modus.Das Einrichten des FTP im aktiven Modus kann heutzutage aufgrund von Firewalls und NATs umständlich sein.
Aufgrund Ihrer lokalen Firewall oder Ihres NAT konnte der Server wahrscheinlich keine Verbindung zu Ihrem Client herstellen, um eine Datenübertragungsverbindung für die Verzeichnisliste (
ls
oderdir
Befehle) herzustellen .Oder Ihr Client kennt seine externe IP-Adresse nicht und stellt dem Server (im
PORT
Befehl) stattdessen eine interne Adresse zur Verfügung , die der Server offensichtlich nicht verwenden kann.Siehe meinen Artikel Netzwerkkonfiguration für den aktiven Modus .
Wenn möglich, sollten Sie einen passiven Modus verwenden, da normalerweise keine zusätzliche Einrichtung auf einer Clientseite erforderlich ist.
Leider unterstützt der Windows-FTP-Befehlszeilenclient (the
ftp.exe
) den passiven Modus überhaupt nicht. Es macht es heutzutage ziemlich nutzlos.Verwenden Sie stattdessen einen anderen Windows-FTP-Befehlszeilenclient. Die meisten anderen unterstützen den passiven Modus.
Beispielsweise verwendet WinSCP standardmäßig den passiven Modus, und es steht eine Anleitung zum Konvertieren von Windows-FTP-Skripten in WinSCP-Skripte zur Verfügung .
(Ich bin der Autor von WinSCP)
quelle
winscp.com
undwinscp.exe
im selben Ordner. Ich glaube, die Fehlermeldung sagt eindeutig, dass das in seinem Ordnerwinscp.com
suchtwinscp.exe
. Siehe auch winscp.net/eng/docs/executablesIch habe dieses Problem auf einem Windows 2008-Server festgestellt.
In diesem Artikel wird vorgeschlagen , den Application Layer Gateway Service zu aktivieren. Dies hat das Problem für mich nicht behoben.
Das Problem wurde durch Hinzufügen einer Ausnahme in der Windows-Firewall für C: \ Windows \ system32 \ ftp.exe behoben
quelle
Ich hatte das gleiche Problem mit der POS- Software von Drittanbietern auf einem Windows 7-Computer, auf dem Client-Transaktionsdaten auf einen SQL-Server übertragen werden.
Es funktionierte einwandfrei, bis der Client-Standort die ISPs und damit die statischen IP-Adressen änderte . Befehlszeilen-FTP-Befehle funktionierten nicht über die anfängliche Anmeldung hinaus und keine der Abhilfemaßnahmen, die ich online gefunden habe, oder dieser Thread funktionierten.
Nur zum Spaß habe ich die FTP-Regel in der Firewall neu erstellt, einen billigen D-Link-Router / eine billige D-Link-Firewall , und Viola, es scheint wieder zu funktionieren.
quelle
FTP-Problem
Öffnen Sie Ports auf Azure NSG und Server-Firewall: 21,20,4000-40009,990,14147
Problem: Der Client kann über die Befehlszeile und Powershell keine Verbindung zu FTP herstellen
Wir können eine Verbindung mit dem Testbenutzer herstellen, aber das Verzeichnis / die Liste nicht sehen
Wireshark wurde auf dem Server und auf meinem Laptop installiert, um Pakete zu erfassen. Auf Wireshark wurde ein Filter mit "ftp" und "IP" erstellt. Die Paketerfassung gibt nicht an, ob das Wetter passiv oder aktiv ist und die Quell-IP korrekt ist. (Wir konfigurieren die primäre IP und die sekundäre IP auf dem Server.)
Wir haben festgestellt, dass die FTP-Verbindung an der Eingabeaufforderung nicht funktioniert. Der Versuch, eine Verbindung zu ftp.abcd.com herzustellen, wurde in 11.22.33.44 und nicht zu den tatsächlichen IP-Adressen des FTP-Servers 44.33.22.11 aufgelöst. 11.22.33.44 und 44.33.22.11 sind beide auf demselben Computer konfiguriert. Der DNS wurde jedoch in die sekundäre FTP-IP anstelle der primären aufgelöst
Anfangs stellten wir auch fest, dass die FTP-Verbindungen zu 11.22.33.44 einwandfrei funktionierten und diese Verbindungen aktive Verbindungen waren. Wir konnten nicht sehen, dass der passive Modus hier funktioniert. Auch beim Einleiten der Verbindung zu 11.22.33.44 von Commad Promt friert die Sitzung ein, nachdem Sie den Befehl 'dir' eingegeben haben. Dies funktioniert jedoch auch mit anderen FTP-Clients wie FileZilla und Winscp.
Ich habe versucht, mit WinSCP und FileZilla zu testen, und festgestellt, dass Verbindungen im passiven Modus einwandfrei funktionieren und Active nicht das erwartete Verhalten ist. Wir haben überprüft, warum der Befehl 'dir' nach der erfolgreichen Authentifizierung auf den Geräten nicht funktioniert. Wir haben festgestellt, dass die Windows-Firewall die Verbindung blockiert. Wir haben die Firewall deaktiviert und alles begann wie erwartet zu funktionieren. Nachdem ich die Firewall-Regel erstellt hatte, überprüfte ich dies auch. Probleme wurden behoben. Es gab ein System, das auch nach dem Deaktivieren der Firewall bei der Verzeichnisliste stecken blieb. Dies könnte ein Problem innerhalb dieses Systems sein oder die Verbindungen werden durch einen externen Faktor blockiert. Denn nach dem Deaktivieren können die meisten von uns gut arbeiten.
Die Einstellungen müssen auf dem Computer vorgenommen werden. Gehen Sie zu Systemsteuerung → Windows-Firewall → Erweiterte Einstellungen → Eingehende Regeln. Doppelklicken Sie auf die Spalte Name, um nach Namen zu sortieren. Scrollen Sie nach unten, bis Sie zwei Regeln mit dem Namen "Dateiübertragungsprogramm" sehen. Diese wurden auf meinem PC auf Blockieren gesetzt (großer roter Kreis mit einer Linie durch). Doppelklicken Sie auf die Regel. Klicken Sie auf der Registerkarte Allgemein unter Aktion auf Verbindung zulassen. Klicken Sie auf OK
quelle