Comment utiliser le mode FTP passif dans l’invite de commande Windows?

Dans Ubuntu, ftp -p pour le mode passif fonctionne bien.

Comment faire la même chose sous Windows?

J’ai essayé avec quote pasv mais quote pasv erreur suivante:

 230 OK. Current ressortingcted 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é.

Windows ne prend pas en charge le mode passif.

Vous pouvez envoyer la commande au serveur de trois manières différentes, mais cela ne permettra pas d’activer le mode passif sur le client Windows.

Ces arguments servent à envoyer diverses commandes et Microsoft ne pense pas à cela quand ils l’ont écrit.

Vous devrez trouver un logiciel tiers tel que WinSCP qui prend en charge l’utilisation de la ligne de commande et l’utilise au lieu de Windows natif.

Le client de ligne de commande Windows FTP ( ftp.exe ) ne prend pas en charge le mode passif, quelle que soit la version de Windows. Cela le rend plutôt inutile de nos jours en raison des pare-feu et des NAT omniprésents.

Utiliser le quote pasv aide pas. Il bascule uniquement le serveur en mode passif, mais pas le client .


Utilisez plutôt un autre client de ligne de commande Windows FTP. La plupart des autres supportent le mode passif.

Par exemple, WinSCP utilise par défaut le mode passif et un guide est disponible pour convertir le script FTP Windows en script WinSCP .

(Je suis l’auteur de WinSCP)

Bien que cela ne réponde pas directement à la question concernant la ligne de commande, mais à partir du système d’exploitation Windows, utilisez l’explorateur Windows ftp: // nom_utilisateur @ serveur

cela utilisera le mode passif par défaut

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

Le client CURL prend en charge le protocole FTP et fonctionne en mode passif. Télécharger le logiciel SANS la version SSL et vous n’avez pas besoin de bibliothèques openssl.dll. Juste une application en ligne de commande curl.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.exe mais l’invite de vérification de la clé du serveur nécessite une astuce. Cette entrée de ligne de commande NO pour l’invite signifiant clé n’est pas stockée dans le registre cette fois-ci étant utilisée. Vous avez besoin d’un fichier de script externe mais parfois c’est bien si vous copiez plusieurs fichiers de haut en bas.
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 saisie)

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

La commande quote PASV n’est pas une commande du programme ftp.exe , il s’agit d’une commande ftp.exe au serveur FTP demandant un port de niveau élevé pour le transfert de données. Un transfert passif est un transfert dans lequel les données FTP sur ces ports de niveau élevé, tout en étant contrôlées, sont conservées dans les ports inférieurs.

Le programme Windows ftp.exe peut être utilisé pour envoyer les commandes du serveur FTP afin d’effectuer un transfert de données passif entre deux serveurs FTP. Une installation standard de Windows ne doit pas, et ne devrait probablement pas, exécuter le service de serveur FTP comme sharepoint terminaison pour les transferts passifs. Donc, si des transferts passifs sont nécessaires avec une fenêtre Windows standard, une solution autre que ftp.exe est nécessaire, car la connexion FTP à 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 serveur FTP source et une autre pour ftp.exe connectez-vous à votre serveur FTP de destination.

Maintenant, établissez une connexion passive entre les serveurs en utilisant les commandes brutes PASV et PORT. La commande quote PASV répondra par un IP / port par points de suspension. Utilisez ces données pour la commande de quote PORT . 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, commencez à recevoir les données avec la commande quote STOR du quote STOR sur le serveur FTP récepteur, puis envoyez la commande de contrôle quote RETR au 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

C’est un problème commun . Lorsque nous démarrons la connexion ftp, seule l’ip externe ouvre le port pour la connexion pasv. mais l’IP derrière le NAT n’ouvre pas la connexion si la connexion passive échoue avec la commande PASV

nous devons spécifier que tout en ouvrant la connexion afin d’ouvrir la connexion avec

ftp -p {hôte}

FileZilla Fonctionne bien. J’utilise le client FTP FileZilla “Transfert manuel” qui prend en charge le mode passif.

Exemple: Ouvrez FileZilla et sélectionnez “Transférer” >> “Transfert manuel”, puis dans la fenêtre de transfert manuel, procédez comme suit:

1) Confirmez que l’option de téléchargement / téléchargement est correcte. 2) Pour Remote: entrez le nom du répertoire où se trouve le fichier à télécharger. 3) Pour Remote: entrez le nom du fichier à télécharger. vouloir télécharger le fichier à 5) Pour le local: Entrez 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, sauf si vous souhaitez le modifier) ​​6) “7) Le téléchargement devrait commencer momentanément 8) Remarque: Si vous avez oublié de cocher la case” Lancer le transfert immédiatement “… Pas de problème: cliquez avec le bouton droit de la souris sur le fichier à télécharger (queue de transfert de fichiers) à le bas de la fenêtre de FileZilla et sélectionnez “Process Queue” 9) Le processus de téléchargement devrait commencer momentanément 10) Terminé