FTP se bloque: 150 Ouverture de la connexion de données en mode ASCII

15

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 de la connexion de données en mode ASCII.

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 réseau pour essayer de voir quels ports il appelle, mais je n'arrive pas à comprendre cela.

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

D3vtr0n
la source

Réponses:

9

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 ajustement 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.

jliendo
la source
6

J'ai reçu le même message lorsque j'essayais d'utiliser la lscommande 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.comet en saisissant mon nom d'utilisateur et mon mot de passe lorsque vous y êtes invité. Cependant, je recevrais le 150 Opening ASCII mode data connectionmessage et rien ne s'est jamais produit. Ensuite, j'ai simplement entré l'option -p(la 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 lset cdfonctionneront. 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.

Ursus Frost
la source
Génial ..
M'a
5

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 serveur pense que c'est 10.1.1.1, c'est ce que ça 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 aussi souvent corriger les adresses NAT (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 correctement leur client FTP 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 groupe de ports" (ou passer à un protocole qui n'a pas besoin d'ouvrir un groupe de ports aléatoires comme sftp de ssh).

DerfK
la source
4

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 d'aller plus loin, mais il se bloque à l' ouverture de la connexion de données en mode 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 du serveur de l'arborescence (c'est-à-dire le nœud supérieur), 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. Veillez à redémarrer le service de service FTP Microsoft pour récupérer la nouvelle plage de ports. Fermez FireFTP / client et réessayez et cette fois vous aurez de la chance. :)

Ricky
la source
1

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 XXXX, 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.

Rayon
la source
1

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

UglyEugen
la source
1

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

ravindra d
la source
1

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":

entrez la description de l'image ici

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

entrez la description de l'image ici

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.

ShieldOfSalvation
la source
0

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.

John Salfer
la source
0

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

Commande 200 PORT réussie.
150 Ouverture de la connexion de données en mode 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 dans IE et cela a fonctionné.

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+connection+

jiku_wang
la source