Comment utiliser le mode FTP passif dans Windows command prompt?

Ubuntu ftp -p pour le mode passif fonctionne très bien.

Comment faire la même chose avec Windows?

j'ai essayé avec quote pasv mais j'obtiens l'erreur suivante:

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>

Mon pare-feu est désactivé.

38
demandé sur Martin Prikryl 2013-09-05 22:35:04

7 réponses

Windows ne supporte pas le mode passif.

Vous pouvez envoyer la commande au serveur de trois façons différentes, mais cela n'activera pas le mode passif du côté du client Windows.

ces arguments sont pour envoyer des commandes diverses et pasv n'est pas quelque chose que Microsoft pensé quand ils ont écrit.

vous devrez trouver un logiciel tiers comme WinSCP qui supporte l'utilisation de la ligne de commande et l'utiliser à la place de Windows natif un.

37
répondu transilvlad 2015-03-03 13:35:42

le client Windows FTP command-line (ftp.exe) ne supporte pas le mode passif, sur Aucune version de Windows. Il le rend assez inutile de nos jours en raison de pare-feu omniprésents et NATs.

quote pasv ne va pas aider. Il passe seulement le serveur au mode passif, mais pas le client.


utilisez un autre client de ligne de commande FTP de Windows à la place. La plupart des autres prennent en charge le mode passif.

Par exemple WinSCP par défaut au mode passif et il y a un guide disponible pour convertir Windows FTP script to WinSCP script.

(je suis l'auteur de WinSCP)

34
répondu Martin Prikryl 2016-10-28 15:22:37

bien que cela ne réponde pas directement à la question sur la ligne de commande, mais depuis Windows OS, utilisez L'Explorateur Windows ftp://username@server

ceci utilisera le Mode passif par défaut

pour la ligne de commande, le mode actif est la valeur par défaut

8
répondu Hammad 2015-06-08 18:56:38

CURL client supporte le protocole FTP et fonctionne en mode passif. Obtenez de l' Télécharger sans SSL version et vous n'avez pas besoin d'openssl.les bibliothèques dll. Juste un curl.application de la ligne de commande exe.

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

un autre est Putty psftp.l'invite de vérification de clé exe mais server nécessite un truc. Cette ligne de commande inputs NO pour la clé prompt meaning n'est pas stockée dans le registre cette fois-ci utiliser. Vous avez besoin d'un fichier de script externe mais parfois son bon si vous copiez plusieurs fichiers down.

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 (toute commande ftp peut être dactylographiée)

put "C:\test\myfile.dat" "/some/folder/myfile.dat"
quit
6
répondu Whome 2014-03-24 18:17:09

quote PASV commande n'est pas une commande à l' ftp.exe programme, c'est une commande au serveur FTP demandant un port d'ordre élevé pour le transfert de données. Un transfert passif est un transfert dans lequel les données FTP sur ces ports d'ordre élevé tandis que le contrôle est maintenu dans les ports inférieurs.

windows ftp.exe programme peut être utilisé pour envoyer les commandes du serveur FTP pour faire un transfert de données passif entre deux serveurs FTP. Une installation windows standard ne sera pas, et ne devrait probablement pas, faire fonctionner le service de serveur FTP comme un terminal pour les transferts passifs. Ainsi, si des transferts passifs sont nécessaires avec une fenêtre standard, une solution autre que ftp.exe est nécessaire car FTPing à localhost car l'une des connexions ne fonctionnera pas dans la plupart des environnements windows.

vous pouvez effectuer un transfert FTP passif entre deux hôtes différents (mais pas deux connexions sur le même hôte) comme suit:

ouvrez deux invites, utilisez une pour ftp.exe connectez-vous à votre source FTP serveur et un ftp.exe connectez-vous à votre serveur FTP de destination.

maintenant établir une connexion passive entre les serveurs en utilisant les commandes raw PASV et PORT. quote PASV la commande répondra avec un IP / port à ellipsis. L'utilisation de ces données pour l' quote PORT <data> la commande. Votre lien passif est maintenant établi en supposant que les pare-feu n'ont pas bloqué un ou plusieurs des quatre ports (2 pour le contrôle FTP, 2 pour les données FTP)

Ensuite commencer à recevoir des données avec l' quote STOR <filename> commande vers le serveur FTP récepteur puis envoyer la commande de contrôle quote RETR <filename> vers le serveur FTP source.

donc pour moi:

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: je me connecte à d'anciens serveurs FTP YMMV

6
répondu Bruce Peterson 2015-02-01 21:49:53

C'est un problème commun . lorsque nous démarrons la connexion ftp, seule l'ip externe ouvre le port de la connexion pasv. mais l'ip derrière le NAT n'ouvre pas la connexion donc la connexion passive échoue avec la commande PASV

nous devons spécifier que lors de l'ouverture de la connexion, alors ouvrez la connexion avec

ftp-p {host}

0
répondu Ashutosh Raj 2015-12-25 07:20:43

FileZilla fonctionne bien. J'utilise le Client FTP FileZilla "transfert manuel" qui supporte le mode passif.

Exemple: Ouvrez FileZilla et sélectionnez "Transfert" > > "Transfert manuel" puis, dans la fenêtre de transfert manuel, effectuez ce qui suit:

1) confirmer que L'option de téléchargement / téléchargement est sélectionnée 2) pour la télécommande: entrer le nom du répertoire où se trouve le fichier à télécharger 3) pour Remote: Saisissez le nom du fichier à télécharger 4) Pour Local: parcourir jusqu'à la destination désirée répertoire que vous souhaitez télécharger fichier à 5) Pour Local: saisissez un nom de fichier pour enregistrer le fichier téléchargé sous (utilisez le même nom de fichier que le fichier à télécharger à moins que vous ne vouliez le changer) 6) cochez la case "commencer le transfert immédiatement" et cliquez sur " OK" 7) le téléchargement devrait commencer momentanément 8) REMARQUE: Si vous avez oublié de cocher la case "commencer le transfert immédiatement"... Pas de problème: il suffit de cliquer avec le bouton droit de la souris sur le fichier à télécharger (dans la file D'attente Process (file transfer file queue) en bas du volet de la fenêtre FileZilla et de sélectionner "Le Processus De La File D'Attente" 9) le processus de téléchargement devrait commencer momentanément 10) fait

-1
répondu Ron Arndt 2015-12-02 09:10:28