FTP bleibt hängen: 150 Öffnen der Datenverbindung im ASCII-Modus

15

Ich richte auf meinem Windows 2008-Server (R2) einen FTP-Server ein.

Alles scheint korrekt installiert zu sein, aber ich habe Probleme, mich mit einem FTP-Client bei meinem FTP-Server anzumelden.

Ich kann einen Remote-Desktop auf dem Server einrichten und mich über DOS-Befehle ziemlich einfach anmelden.

Wenn ich jedoch einen Befehl wie "DIR" gebe, hängt dieser wie folgt: 150 Öffnen der Datenverbindung im ASCII-Modus.

Alles, was ich recherchiert und gelesen habe, verweist auf Firewall-Ports und / oder Einstellungen für den passiven / aktiven Modus.

Folgendes stört mich ... Wenn ich DOS-FTP-Befehle verwende, kann ich mich nur anmelden und den Befehl "DIR" verwenden, wenn ich "localhost" als meine Adresse verwende.

Wenn ich meine vollständige FTP-URL angabe, wird der Fehler beim Aufhängen angezeigt.

Wenn ich die URL "localhost" eingebe, wird der Fehler nicht angezeigt.

Dies lässt mich glauben, dass es sich um ein Firewall-Problem handelt (oder sogar um ein IIS7-Problem?), Aber ich bin mir nicht sicher, welche Ports ich öffnen muss.

Ich habe die Ports 20 und 21 in meiner Windows-Firewall geöffnet. Ich habe diese Ports auch in meiner AWS (Amazon) -Firewall geöffnet.

Ich glaube, mein FTP-Client verwendet einige Langstrecken-Portnummern, die möglicherweise von einer meiner beiden Firewalls blockiert werden. Ich habe Netzwerküberwachungstools verwendet, um zu sehen, welche Ports aufgerufen werden, aber ich kann das nicht herausfinden.

Irgendwelche Ideen, Tipps, Tricks, Hilfe?

D3vtr0n
quelle

Antworten:

9

FTP-Server und FTP-Client legen fest, welche Ports für die Übertragung von Daten (einschließlich der Verzeichnisliste, wenn Sie ein "dir" oder "ls" ausführen) über den "Steuerkanal" von FTP verwendet werden. Wenn Ihre "AWS-Firewall" auf diesem Kanal keine Protokollüberprüfung durchführt, kann er nicht wissen, welche Ports dynamisch geöffnet werden müssen, damit der Datenverkehr fließen kann (und schließen, sobald diese Ports nicht mehr verwendet werden).

IMHO lohnt es sich nicht, die Netzwerküberwachung zu verwenden, um festzustellen, welche Ports verwendet werden, da diese Ports bei jeder neuen FTP-Sitzung geändert werden.

Wenn Sie dies noch nicht getan haben, können Sie am besten nach Optimierungen an der Firewall suchen, die Ihren FTP-Server schützen (wenn ich Ihre Frage richtig verstehe, ist dies die "AWS-Firewall") und prüfen, ob sie vorhanden ist ist ein beliebiger "Knopf", um die Überprüfung für das FTP-Protokoll zu aktivieren.

jliendo
quelle
6

Ich habe die gleiche Meldung erhalten, als ich versucht habe, mit dem lsBefehl die auf einem UNIX-FTP-Hostserver gespeicherten Dateien von meiner Ubuntu-Befehlszeile aus aufzulisten. Ich konnte mich erfolgreich anmelden ftp ftp.example.comund meinen Benutzernamen und mein Passwort eingeben, wenn ich dazu aufgefordert wurde. Ich würde jedoch die 150 Opening ASCII mode data connectionNachricht erhalten und es geschah nie etwas. Dann habe ich einfach die Option -p(ändert sie in den "passiven" Modus, um mit Firewalls umzugehen) mit dem Befehl eingegeben und es hat funktioniert.

 ftp -p ftp.example.com

Geben Sie den Benutzernamen und das Kennwort ein, wenn Sie dazu aufgefordert werden, und Befehle wie lsund cdfunktionieren dann. Ich glaube, Sie können diesen Befehl auch eingeben und er wird dasselbe tun, aber ich habe ihn nicht getestet.

pftp ftp.example.com

Ich weiß, dass die Frage Windows betrifft. Da jedoch derselbe Fehler aufgetreten ist, sollte dieser Tipp veröffentlicht werden.

Ursus Frost
quelle
Genial
5

Um echte Informationen darüber zu erhalten, warum die Verbindung nicht funktioniert, müssen Sie einen Client verwenden, der alle Protokollbefehle protokolliert, um zu sehen, was wirklich passiert. Es gibt eine gute Seite auf FTP mit Beispielprotokollen hier .

Höchstwahrscheinlich auch nicht

  1. Ihr Client befindet sich hinter einer (dummen oder SSL-blockierten) Firewall und versucht, FTP im aktiven Modus zu verwenden
  2. Ihr Server befindet sich hinter einer (dummen oder SSL-blockierten) Firewall und versucht, FTP im Passivmodus zu verwenden

Wenn Sie SSL verwenden, müssen Sie lediglich einen Bereich von Ports (z. B. 10000-11000) in der Firewall öffnen und Ihren FTP-Server so konfigurieren, dass der passive Modus erzwungen und dieser Portbereich verwendet wird. Wenn Ihr Server NAT verwendet, müssen Sie auch die richtige IP-Adresse für den Server einrichten, um für Clients zu werben. Befolgen Sie die meisten Anweisungen, die der Server als Verbindungszeichenfolge im passiven Modus bereitstellt, und wenn der Server denkt, dass es sich um 10.1.1.1 handelt, ist dies der Fall es wird den Kunden erzählen.

Wenn Sie kein SSL verwenden, besteht die beste Antwort darin, zu prüfen, ob Ihre Firewall eine Protokollprüfung für FTP durchführen kann. Die Firewall liest den Datenverkehr auf Port 21 und öffnet den von Ihrem Server gewünschten Port. Dies kann häufig auch NAT-Adressen reparieren (wenn die Firewall auch NAT verarbeitet). Sie werden wahrscheinlich immer noch den passiven Modus erzwingen wollen, da einige Leute nicht wissen, wie sie ihren FTP-Client richtig konfigurieren sollen, und heutzutage fast jeder hinter einem Breitband-Router / einer Breitband-Firewall steht.

Wenn Sie keine intelligentere Firewall erhalten können, müssen Sie sich an die Option "Mehrere Ports öffnen" halten (oder zu einem Protokoll wechseln, bei dem nicht mehrere zufällige Ports wie sshs sftp geöffnet werden müssen).

DerfK
quelle
4

Ich hatte dieses Problem und es wurde folgendermaßen behoben.

Ich habe FireFTP verwendet, das standardmäßig über den passiven Modus verbunden ist. Beim Einrichten eines FTP in IIS ist der Standardport 21. Ich musste Port 21 in der Firewall öffnen, was mich ein Stück weiter brachte, aber es blieb beim Öffnen der Datenverbindung im ASCII-Modus hängen .

Es stellt sich heraus, dass dann einige andere dynamische Ports ausgewählt werden. Ich wusste, dass es sich um ein Firewall-Problem handelte, da die FTP-Verbindung bei deaktivierter Firewall einwandfrei ist. Auch lokal auf dem Server - keine Probleme.

Um dies zu beheben, habe ich IIS (mit Version 8.0, glaube, es ist dasselbe in 7.5) auf dem Server geladen des Baums (das ist der oberste Knoten) einfach darauf geklickt und "FTP-Firewall-Unterstützung" ausgewählt. Jede von Ihnen verwendete FTP-Site verwendet diese Portbereiche. Bei einzelnen FTP-Sites ist diese Option abgeblendet, da sie von diesem Abschnitt geerbt wird.

In Data Channel Portbereich angeben x Menge von Häfen, in meinem Fall 10.000-10.125 .

Öffnen Sie nun in Ihrer Firewall diesen Bereich von TCP-Ports als "FTP-Passiv-Port-Bereich".

Ich dachte dann wäre das Problem gelöst, aber nicht ganz. Stellen Sie sicher, dass Sie den Microsoft FTP-Dienst neu starten , um den neuen Portbereich abzurufen. Schließe FireFTP / client und versuche es erneut, und diesmal hast du Glück. :)

Ricky
quelle
1

Ich habe das gleiche Problem mit Ihnen und jetzt behoben.

Ich habe die Windows-Firewall (Win7) geöffnet, auf "Programm oder Funktion durch die Windows-Firewall zulassen" geklickt und dann in der Liste "Zulässige Programme und Funktionen" das Kontrollkästchen "Dateiübertragungsprogramm" aktiviert.

Öffnen Sie danach die Eingabeaufforderung und geben Sie ftp XXXX ein, melden Sie sich an und dann ls / dir / get / put. Alles funktioniert jetzt.

Ich konnte mich jedoch immer noch nicht über File Zilla und den Webbrowser verbinden. Ich hoffe, es ist nützlich für Sie.

Strahl
quelle
1

Überprüfen Sie die Zeitsynchronisierung Ihres Servers

HässlicherEugen
quelle
1

Lege nichts an deinem Setup an

Fügen Sie einfach die ausgehende Regel in der Windows-Firewall mit erweiterter Sicherheit hinzu und geben Sie den Port 20 ein.

Genießen Sie FTP auf CLI

Ravindra d
quelle
1

Das Problem war für mich der lokale PC, nicht der Remote-Host. Ich habe bestätigt, dass die Installation des FTP-Dienstes auf dem Remote-Host bereits alle erforderlichen Ports der Server-Firewall ordnungsgemäß geöffnet hat, sodass dies nicht das Problem war. Es war mein lokaler Client-PC, der nicht mitspielte. So,

  1. Ich habe die Windows Defender-Firewall geöffnet.
  2. Dann klickte ich links auf den Link "Erlaube eine App oder Funktion durch die Windows Defender Firewall":

Bildbeschreibung hier eingeben

  1. Ich bin zu File Transfer Program gescrollt und habe die Kontrollkästchen für Domain, Private und Public aktiviert:

Bildbeschreibung hier eingeben

Das hat das für mich endlich behoben! Als ich einen LS-Befehl wiederholen wollte, war die Antwort sofort und es kam zu keinem Auflegen mehr.

ShieldOfSalvation
quelle
0

Dieses Problem wurde mithilfe des Assistenten für neue eingehende Regeln der Windows-Firewall behoben. Wählen Sie Programm, dann C: \ Windows \ System32 \ ftp.exe, Verbindung zulassen, Optionen prüfen; Domäne, Privat, Öffentlich (Sie können sie später gegebenenfalls einschränken), benennen Sie die Regel, und fertig.

Gehen Sie jetzt auf eine FTP-Site und überprüfen Sie, ob dir oder ls richtig antwortet.

John Salfer
quelle
0

Ich bin auf dasselbe Problem gestoßen wie beim OP

200 PORT-Befehl erfolgreich.
150 Datenverbindung im ASCII-Modus herstellen.
425 Datenverbindung kann nicht geöffnet werden.

Beim Versuch, den passiven Modus in der Befehlszeile unter Windows zu verwenden, ist das oben genannte Problem aufgetreten.
Ich habe die gewünschten Informationen gefunden, indem ich die Materialien durchsucht habe:

IE verwendet normalerweise den passiven Modus, während das Befehlszeilendienstprogramm (FTP-Befehl) immer den aktiven Modus verwendet.

Ich habe meine vorherige Operation im IE ausprobiert und es hat funktioniert. Problem gelöst

Material-Link: https://forums.iis.net/t/1207342.aspx?150+Opening+ASCII+mode+data+connection+for+file+list+425+Can+t+open+data+connection+

jiku_wang
quelle