it-swarm.com.de

Verwendung des passiven FTP-Modus in der Windows-Eingabeaufforderung

In Ubuntu funktioniert ftp -p für den passiven Modus einwandfrei. 

Wie mache ich dasselbe in Windows? 

Ich habe es mit quote pasv versucht, erhalte aber folgende Fehlermeldung:

230 OK. Current restricted directory is /
ftp> quote pasv 
227 Entering Passive Mode (31,170,167,221,116,239)    
ftp> cd os    
250 OK. Current directory is /os    
ftp> dir    
500 I won't open a connection to 10.23.16.248 (only to 113.193.128.177)    
425 No data connection    
ftp>

Meine Firewall ist deaktiviert.

41
user2737208

Windows unterstützt eigentlich nicht den passiven Modus.

Sie können den Befehl auf drei verschiedene Arten an den Server senden, jedoch wird der passive Modus auf der Windows-Client-Seite nicht aktiviert. 

Diese Argumente sind für das Senden verschiedener Befehle und pasv ist nicht etwas, an das Microsoft gedacht hat, als sie es geschrieben haben.

Sie müssen eine Software von Drittanbietern wie WinSCP finden, die die Verwendung der Befehlszeile unterstützt, und diese anstelle der nativen Windows-Software verwenden.

38
transilvlad

Der Windows-FTP-Befehlszeilenclient (ftp.exe) unterstützt in keiner Windows-Version den passiven Modus. Aufgrund allgegenwärtiger Firewalls und NATs ist es heutzutage ziemlich nutzlos.

Die Verwendung von quote pasv wird nicht helfen. Es wechselt nur den Server in den passiven Modus, nicht jedoch den Client.


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

Beispiel: WinSCP 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)

35
Martin Prikryl

Obwohl dies die Frage nicht direkt über die Befehlszeile beantwortet, verwenden Sie unter Windows das Windows Explorer ftp: // Benutzername @ Server

dies verwendet standardmäßig den Passivmodus

Für die Befehlszeile ist der aktive Modus die Standardeinstellung

9
Hammad

Der Befehl quote PASV ist kein Befehl für das Programm ftp.exe. Er ist ein Befehl an den FTP-Server, der einen übergeordneten Port für die Datenübertragung anfordert. Eine passive Übertragung ist eine Übertragung, bei der die FTP-Daten über diese Ports höherer Ordnung geführt werden, während die Kontrolle in den unteren Ports erhalten bleibt.

Mit dem Windows-Programm ftp.exe können Sie die FTP-Server-Befehle senden, um eine passive Datenübertragung zwischen zwei FTP-Servern durchzuführen. Bei einer Standard-Windows-Installation wird der FTP-Serverdienst nicht als Endpunkt für passive Übertragungen ausgeführt und sollte dies auch nicht sein. Wenn also passive Übertragungen mit einer Standard-Windows-Box erforderlich sind, ist eine andere Lösung als ftp.exe erforderlich, da FTP-Verbindungen zu localhost erforderlich sind, da eine der Verbindungen in den meisten Windows-Umgebungen nicht funktioniert. 

Sie können eine passive FTP-Übertragung zwischen zwei verschiedenen Hosts (aber nicht zwei Verbindungen auf demselben Host) wie folgt durchführen:

Öffnen Sie zwei Eingabeaufforderungen, verwenden Sie eine, um ftp.exe eine Verbindung zu Ihrem Quell-FTP-Server herzustellen, und eine, um ftp.exe eine Verbindung zu Ihrem Ziel-FTP-Server herzustellen. 

Stellen Sie nun eine passive Verbindung zwischen den Servern her, indem Sie die Rohbefehle PASV und PORT verwenden. Der quote PASV-Befehl antwortet mit einer IP/einem Port in Ellipsis. Verwenden Sie diese Daten für den Befehl quote PORT <data>. Ihre passive Verbindung ist jetzt hergestellt, vorausgesetzt, dass Firewalls keinen oder mehrere der vier Ports blockiert haben (2 für FTP-Steuerung, 2 für FTP-Daten).

Starten Sie anschließend den Datenempfang mit dem Befehl quote STOR <filename> an den empfangenden FTP-Server, und senden Sie dann den Steuerbefehl quote RETR <filename> an den Quell-FTP-Server.

also für mich:

client 1
> ftp.exe server1
ftp> quote PASV
227 Entering Passive Mode (10,0,3,1,54,161)

client 2 
> ftp.exe server2
ftp> quote PORT 10,0,3,1,54,54,161
ftp> quote STOR myFile

client 1
ftp> quote RETR myFile

Cavet: Ich verbinde mich mit einigen alten FTP-Servern YMMV

6
Bruce Peterson

Der CURL-Client unterstützt das FTP-Protokoll und arbeitet im passiven Modus. Erhalten Sie Download WITHOUT SSL -Version, und Sie benötigen keine openssl.dll-Bibliotheken. Nur eine curl.exe-Befehlszeilenanwendung.
http://www.paehl.com/open_source/?CURL_7.35.0

curl.exe -T c:\test\myfile.dat ftp://ftp.server.com/some/folder/myfile.dat --user myuser:mypwd

Ein anderes ist PuTTY psftp.exe, aber die Eingabeaufforderung für die Überprüfung des Server-Schlüssels erfordert einen Trick. Diese Befehlszeileneingaben NO für Prompt bedeutet, dass der Schlüssel nicht gerade in der Registrierung gespeichert wird. Sie benötigen eine externe Skriptdatei, aber manchmal ist es gut, wenn Sie mehrere Dateien auf und ab kopieren.
http://www.chiark.greenend.org.uk/~sgtatham/PuTTY/download.html

echo n | psftp.exe ftp.server.com -l myuser -pw mypwd -b script.txt

script.txt (jeder ftp-Befehl kann eingegeben werden)

put "C:\test\myfile.dat" "/some/folder/myfile.dat"
quit
6
Whome

Dies ist ein häufiges Problem. Wenn wir die FTP-Verbindung starten, öffnet nur die externe IP-Adresse den Port für die pasv-Verbindung. Die IP hinter dem NAT öffnet jedoch die Verbindung nicht, so dass die passive Verbindung mit dem PASV-Befehl fehlschlägt

wir müssen das beim öffnen der Verbindung angeben, also mit offener Verbindung 

ftp -p {Host}

0
Ashutosh Raj

Wenn Sie Windows 10 verwenden, installieren Sie das Windows-Subsystem für Linux, WSL und Ubuntu.

$ ftp 192.168.1.39
Connected to 192.168.1.39.
............
230 Logged in successfully
Remote system type is MSDOS.
ftp> passive
Passive mode on.
ftp> passive
Passive mode off.
ftp>
0
JaeMann Yeh