web-dev-qa-db-fra.com

La fonction FTP en ligne de commande ne fonctionne pas

J'utilise Windows 7 et plusieurs applications client FTP fonctionnent sans problème. Cependant, lorsque j'utilise le FTP en ligne de commande, je peux me connecter, me connecter (après avoir saisi le nom d'utilisateur et le mot de passe), mais il est toujours déconnecté lorsque la commande dir ou ls est utilisée. La réponse est:

Connexion fermée par l'hôte distant.

Comment puis-je résoudre ce problème?

11
Hong

Vous verrez généralement ce genre de chose se produire lorsque le serveur tente de vous reconnecter mais ne le peut pas. FTP utilisait à l'origine deux _ TCP canaux. L'un était destiné aux commandes et l'autre au transfert de données. Lorsque vous exécutez la commande dir, elle utilise un canal de données. Le canal de données est établi à la demande et le serveur essaie de se reconnecter.

Cela est probablement bloqué par votre routeur ou votre pare-feu Windows. Vous avez besoin d'un client qui supporte le mode PASV .

Vous pouvez activer le mode PASV dans Internet Explorer . Ou utilisez un autre client. Je ne sais pas si la version en ligne de commande peut utiliser le mode PASV. C'est un client très basique.

13
Matt H

Le client de ligne de commande FTP Windows ftp.exe prend uniquement en charge le mode FTP actif.

Configurer le FTP en mode actif peut être fastidieux de nos jours à cause des pare-feu et des NAT.

C'est probablement à cause de votre pare-feu local ou NAT que le serveur n'a pas été en mesure de se reconnecter à votre client pour établir une connexion de transfert de données pour la liste des répertoires (commandes ls ou dir).

Ou bien votre client n'a pas connaissance de son adresse IP externe et fournit une adresse interne au serveur (dans la commande PORT), que le serveur n'est évidemment pas en mesure d'utiliser.

Voir mon article Configuration réseau pour le mode actif .


Si possible, utilisez un mode passif, car il ne nécessite généralement aucune configuration supplémentaire du côté client.

Malheureusement, le client de ligne de commande FTP Windows (le ftp.exe) ne prend pas du tout en charge le mode passif. Cela le rend plutôt inutile de nos jours.

Utilisez un autre client de ligne de commande FTP Windows à la place. La plupart des autres supportent le mode passif.

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

(je suis l'auteur de WinSCP)

5
Martin Prikryl

J'ai eu un problème avec la transmission de fichiers via FTP une fois que je suis connecté à la boîte en question. Cela créerait le nom du fichier, mais le fichier était vide. Je l'ai résolu en procédant comme suit:

  • Sélectionnez Panneau de configuration → Pare-feu Windows → Paramètres avancés → Règles de trafic entrant.
  • Double-cliquez sur la colonne Name pour trier par nom.
  • Faites défiler la liste jusqu'à ce que vous voyiez deux règles appelées "Programme de transfert de fichier"; ceux-ci ont été mis à Bloquer sur mon PC (grand cercle rouge traversé par une ligne)
  • Double-cliquez sur la règle
  • Sur l'onglet Général, sous Action, définissez la valeur sur Autoriser la connexion
  • Cliquez sur OK
  • Faites ceci pour l'autre règle

Il devrait être bon d'y aller maintenant.

4
Keljo

J'ai rencontré ce problème sur un serveur Windows 2008.

Cet article suggère d'activer le service de passerelle de couche d'application. Cela n'a pas résolu le problème pour moi.

Le problème a été résolu en ajoutant une exception dans le Pare-feu Windows pour C:\Windows\system32\ftp.exe.

3
pants

Je rencontrais le même problème avec un logiciel tiers POS sur un ordinateur Windows 7 qui transfère les données de transaction client sur un serveur SQL.

Cela a bien fonctionné jusqu'à ce que l'emplacement du client change , les fournisseurs de services Internet et, par conséquent, les adresses IP statiques. Les commandes FTP en ligne de commande ne fonctionnaient pas au-delà de la connexion initiale et aucune des solutions que j'ai trouvées en ligne ou ce fil de discussion ne fonctionnait.

Juste pour le plaisir, j'ai recréé la règle FTP dans le pare-feu, un routeur/pare-feu cheap D-Link et alto, il semble fonctionner encore.

0
Plexus Sage