web-dev-qa-db-fra.com

FTP se bloque: 150 Ouverture ASCII

J'installe un serveur FTP sur mon serveur Windows 2008 (R2).

Tout semble être installé correctement mais j'ai du mal à utiliser un client FTP pour me connecter à mon serveur FTP.

Je peux bureau à distance sur le serveur et grâce aux commandes DOS, je peux me connecter assez facilement.

Mais si j'émets une commande comme "DIR", elle se bloque avec: 150 Ouverture ASCII mode connexion de données.

Tout ce que j'ai recherché et lu pointe vers les ports du pare-feu et/ou les paramètres du mode passif/actif.

Voici ce qui me dérange ... si j'utilise des commandes FTP DOS, je peux me connecter et utiliser la commande "DIR" uniquement si j'utilise "localhost" comme adresse.

Si je spécifie mon URL FTP complète, j'obtiens l'erreur de suspension.

si je spécifie l'URL "localhost", je ne reçois pas l'erreur.

Cela m'amène à croire que c'est un problème de pare-feu (ou même un problème IIS7?) Mais je ne sais pas quels ports je dois ouvrir?

J'ai les ports 20, 21 ouverts sur mon pare-feu Windows. J'ai également ouvert ces ports sur mon pare-feu AWS (Amazon).

Je crois que mon client FTP utilise un ou plusieurs numéros de port à longue portée qui sont potentiellement bloqués par l'un de mes deux pare-feu. J'ai utilisé des outils de surveillance du réseau pour essayer de voir quels ports il appelle, mais je ne peux pas comprendre cela.

Des idées, des conseils, des astuces, de l'aide?

15
D3vtr0n

Le serveur FTP et le client FTP négocient les ports qui seront utilisés pour le transfert de données (y compris la liste des répertoires lorsque vous effectuez un "dir" ou "ls") en utilisant le "canal de contrôle" de FTP. Donc, si votre "pare-feu AWS" ne fait pas d'inspection de protocole sur ce canal, il ne saura aucunement quels ports il doit ouvrir dynamiquement pour autoriser le trafic (et se fermer une fois que ces ports ne sont plus utilisés).

À mon humble avis, l'utilisation de la surveillance du réseau pour découvrir quels ports sont utilisés ne vaut pas la peine car ces ports vont changer à chaque nouvelle session FTP.

À moins que vous ne l'ayez déjà fait, ma meilleure solution pour résoudre ce problème serait de rechercher tout Tweak sur le pare-feu qui protège votre serveur FTP (si je comprends bien votre question, ce serait le "pare-feu AWS") et de voir s'il y a est n'importe quel "bouton" pour permettre l'inspection du protocole FTP.

9
jliendo

J'ai reçu le même message lorsque j'essayais d'utiliser la commande ls pour répertorier les fichiers stockés sur un serveur hôte FTP UNIX depuis ma ligne de commande Ubuntu. J'ai pu me connecter avec succès en utilisant ftp ftp.example.com et en entrant mon nom d'utilisateur et mon mot de passe lorsque vous y êtes invité. Cependant, je recevrais le 150 Opening ASCII mode data connection message et rien ne s'est jamais produit. Ensuite, j'ai simplement entré l'option -p (le change en mode "passif" pour gérer les pare-feu) avec la commande et cela a fonctionné.

 ftp -p ftp.example.com

Entrez le nom d'utilisateur et le mot de passe lorsque vous y êtes invité, puis les commandes telles que ls et cd fonctionneront. Je pense que vous pouvez également entrer cette commande et cela fera la même chose, mais je ne l'ai pas testée.

pftp ftp.example.com

Je sais que la question concerne Windows; cependant, étant donné que la même erreur a été produite, cette astuce valait la peine d'être publiée.

6
Ursus Frost

Pour obtenir des informations réelles sur la raison du blocage de la connexion, vous devrez utiliser un client qui enregistre toutes les commandes de protocole pour voir ce qui se passe réellement. Theres un bon site sur FTP avec des exemples de journaux ici .

Très probablement cependant

  1. votre client se trouve derrière un pare-feu (stupide ou bloqué par SSL) et essaie d'utiliser le FTP en mode actif
  2. votre serveur se trouve derrière un pare-feu (stupide ou bloqué par SSL) et essaie d'utiliser le FTP en mode passif

Si vous utilisez SSL, la seule réponse est d'ouvrir une plage de ports (par exemple, 10000-11000) sur le pare-feu et de configurer votre serveur FTP pour forcer le mode passif et utiliser cette plage de ports. Si votre serveur utilise NAT vous devrez également configurer l'adresse IP appropriée pour que le serveur fasse de la publicité aux clients, la plupart obéissent à tout ce que le serveur fournit comme chaîne de connexion en mode passif et si le le serveur pense que c'est 10.1.1.1, c'est ce qu'il va dire aux clients.

Si vous n'utilisez pas SSL, la meilleure réponse est de voir si vous pouvez demander à votre pare-feu d'effectuer une inspection de protocole pour FTP. Le pare-feu lira le trafic sur le port 21 et ouvrira le port que votre serveur veut ouvrir. Cela peut souvent corriger NAT également (lorsque le pare-feu gère également le NAT). Vous voudrez probablement toujours forcer le mode passif car certaines personnes ne savent pas comment configurer leur FTP client correctement et presque tout le monde est derrière un routeur/pare-feu à large bande ces jours-ci.

Si vous ne pouvez pas obtenir un pare-feu plus intelligent, alors vous devrez vous en tenir à l'option "ouvrir un tas de ports" (ou passer à un protocole qui n'a pas besoin d'ouvrir un tas de ports aléatoires comme sftp de ssh).

5
DerfK

J'ai eu ce problème et il a été résolu en procédant comme suit.

J'utilisais FireFTP qui se connecte par défaut via le mode passif. Lors de la configuration d'un FTP dans IIS le port par défaut sera 21. J'ai dû ouvrir le port 21 dans le pare-feu, ce qui m'a permis de franchir une étape supplémentaire mais il se bloquait à Opening = ASCII.

Il s'avère qu'il choisit ensuite d'autres ports dynamiques. Je savais que c'était un problème de pare-feu car avec le pare-feu, le FTP se connecte bien. Également localement sur le serveur - aucun problème.

Pour résoudre ce problème, j'ai chargé IIS (en utilisant la version 8.0, je pense que c'est la même chose en 7.5), au niveau serveur de l'arborescence (c'est-à-dire le nœud supérieur) single cliquez dessus et sélectionnez "Prise en charge du pare-feu FTP". Chaque site FTP que vous utilisez utilisera ces plages de ports, les sites FTP individuels auront cette option grisée car elle est héritée de cette section.

Dans la plage de ports du canal de données, spécifiez x quantité de ports, dans mon cas 10000-10125.

Maintenant, dans votre pare-feu, ouvrez cette plage de ports TCP en tant que "plage de ports passifs FTP").

J'ai alors pensé que le problème serait résolu, mais pas tout à fait. Assurez-vous de redémarrer le service Microsoft FTP service pour récupérer la nouvelle plage de ports. Fermez FireFTP/client et réessayez et cette fois vous aurez de la chance. :)

4
Ricky

Vérifiez la synchronisation de l'heure de votre serveur

1
UglyEugen

Le problème pour moi était sur le PC local, pas sur l'hôte distant. J'ai confirmé que l'installation du service FTP sur l'hôte distant avait déjà correctement ouvert tous les ports du pare-feu du serveur dont il avait besoin, ce n'était donc pas le problème. C'était mon PC client local qui ne jouait pas. Donc,

  1. J'ai ouvert le pare-feu Windows Defender.
  2. J'ai ensuite cliqué sur le lien à gauche, "Autoriser une application ou une fonctionnalité via le pare-feu Windows Defender":

enter image description here

  1. J'ai fait défiler la liste jusqu'au programme de transfert de fichiers et j'ai coché les cases pour Domaine, Privé et Public:

enter image description here

Cela a finalement corrigé cela pour moi! Lorsque je suis allé réessayer une commande LS, la réponse a été instantanée et il n'y a plus de blocage.

1
ShieldOfSalvation

Ne gâchez rien sur votre configuration

Ajoutez simplement la règle sortante dans le pare-feu Windows avec une sécurité avancée et mettez le port n ° 20.

Profitez de FTP sur CLI

1
ravindra d

J'ai le même problème avec vous et résolu maintenant.

J'ai ouvert le pare-feu Windows (Win7), cliquez sur `` Autoriser un programme ou une fonctionnalité via le pare-feu Windows '', puis dans la liste `` Programmes et fonctionnalités autorisés '', recherchez `` Programme de transfert de fichiers '' et cochez la case.

Après cela, ouvrez l'invite de commande et entrez ftp X.X.X.X, connectez-vous puis ls/dir/get/put, tout fonctionne maintenant.

Mais je n'ai toujours pas réussi à me connecter depuis File Zilla et le navigateur Web, j'espère que cela vous sera utile.

1
Ray

Nous avons résolu ce problème à l'aide de l'Assistant Nouvelle règle de pare-feu Windows. Sélectionnez Programme, puis C:\Windows\System32\ftp.exe, Autoriser la connexion, Vérifier les options; Domaine, privé, public (vous pouvez restreindre plus tard si nécessaire), nommez la règle et vous avez terminé.

Maintenant, ftp vers un site ftp et vérifiez que dir ou ls répondent correctement.

0
John Salfer

J'ai rencontré le même problème que l'OP

200 PORT commande réussie.
150 Ouverture ASCII.
425 Impossible d'ouvrir la connexion de données.

J'ai rencontré le problème ci-dessus lorsque j'ai essayé d'utiliser le mode passif sur la ligne de commande sous Windows.
J'ai trouvé les informations que je recherchais en fouillant les documents:

IE utilise généralement le mode passif, tandis que l'utilitaire de ligne de commande (commande ftp) utilise toujours le mode actif.

J'ai essayé ma précédente opération en IE et cela a fonctionné. Problème résolu

lien vers les matériaux: https://forums.iis.net/t/1207342.aspx?150+Opening+ASCII+mode+data+connection+for+file+list+425+Can+t+open+data + connexion +

0
jiku_wang