FTP «425 Impossible d'ouvrir la connexion de données» ne se produit que lors de l'utilisation de l'invite de commande

8

Tout mon ordinateur est derrière un seul routeur. J'ai un serveur FileZilla exécuté sur l'un d'eux. J'essaie d'automatiser un téléchargement sur le serveur à l'aide d'un script de commandes et du ftp.exe intégré de Windows. J'ai configuré un service DNS dynamique pour pouvoir accéder à mon serveur depuis l'extérieur du routeur et j'ai configuré la redirection de port dans le routeur vers mon serveur. Je peux très bien me connecter et transférer à l'aide de Google Chrome, de l'Explorateur Windows et du client FileZilla. Cependant, chaque fois que j'essaie d'utiliser ftp.exe (manuellement ou dans un script de traitement par lots), je peux me connecter au serveur, mais si j'essaie de faire quoi que ce soit qui ouvrirait une connexion de données (LIST, STOR ou RETR), j'obtiens l'erreur suivante: 425 Impossible d'ouvrir la connexion de données. J'ai autorisé ftp.exe dans les pare-feu des deux ordinateurs. Des idées sur ce qui se passe ou comment je pourrais y remédier? Je n'ai pas besoin d'utiliser ftp.

EDIT Je sais que mon FAI bloque de nombreux ports dont 21 et plusieurs autres dans cette gamme. Tout cela est configuré sur le port 2121, avec les ports passifs configurés pour être 2122-2142, tous ont été transférés dans le routeur. Ftp.exe n'utilisera peut-être qu'un certain port pour la connexion de données, que mon FAI a bloqué? Si oui, comment pourrais-je changer cela?

Garrett
la source

Réponses:

5

Le protocole FTP actif normal utilise une connexion de données distincte lancée par le serveur pour les transferts et utilise uniquement la connexion du port 21 standard comme canal de contrôle. Cependant, lorsque le client se trouve derrière un pare-feu, le pare-feu est susceptible de bloquer cette connexion. Je suppose que Chrome, Explorer, FireZilla, etc. sont suffisamment intelligents pour essayer le mode passif, dans lequel la connexion initiée par le client d'origine est utilisée à la fois comme canal de contrôle et de données.

Il semble que le client FTP CLI par défaut de Windows ne prend pas en charge le mode passif. Vous devrez donc passer à NcFTP . Alternativement, et je pense que la meilleure option est probablement d'utiliser SFTP à la place. Le FTP n'est pas sécurisé et ne doit vraiment être utilisé que sur des réseaux locaux. SFTP est entièrement crypté et n'utilise également qu'un seul canal pour les données et les commandes. Si vous avez besoin d'un client CLI SFTP, PSFTP est une bonne option.

Lèse majesté
la source
J'ai déjà essayé ça sans chance
Garrett
@ Garrett: Hrmm ... il semble que l'article de blog auquel j'ai lié est incorrect, et le client FTP CLI par défaut ne prend pas en charge le mode passif. Dans ce cas, vous devrez changer de client FTP. NcFTP est une option, et il prend définitivement en charge le mode passif.
Lèse majesté
J'ai regardé la demande / réponse lors du transfert via l'Explorateur Windows, utilisé le devis pour envoyer manuellement les mêmes commandes exactes, mais j'ai toujours la même erreur
Garrett
@ Garrett: Je pensais que l'explorateur Windows fonctionnait? Si le client ne prend pas en charge le mode passif, il ne sera pas important de dire au serveur de basculer vers celui-ci.
Lèse majesté
Prend-il en charge la ligne de commande et est-ce un exe indépendant?
Garrett
0

Windows FTP CLI ne prend pas en charge le mode PASSIF. Utilisez "quote pasv" pour entrer en mode passif.

George Rios
la source
2
Je ne pense pas que cela fonctionne réellement . Pouvez-vous confirmer que quote pasvfait réellement quelque chose dans ftp.exe et n'est pas seulement une commande fictive?
Lèse majesté
0

J'ai aussi eu ce problème. La solution était d'arrêter le pare-feu de l'antivirus (dans mon cas le McAfee), il bloquait les ports FTP.

Sfalcini
la source
Ce n'est pas vraiment une solution.
ivan_pozdeev