Erreur 425 FTP [Fermé]

Signaler
-
 guigui-54 -
Bonjour a tous,

je suis en train de configurer mon server FTP, je suis derriere une freebox que j'utilise en mode routeur.

Sur mon router j'ai configuré mes redirections comme ca
redirection du protocol tcp sur le port 21 vers la machine sur laquelle le server tourne sur le port 21
redirection du protocol tcp sur le port 20 vers la machine sur laquelle le server tourne sur le port 20

j'ai demandé a ami de tester et il recoit une erreur du type "Erreur : Échec à la lecture du contenu du répertoire"
moi sur mon server j'ai une erreur "425 Can't open data connection."

Cette erreur apparait au moment ou le client envoie la commande LIST

Quelqu'un sait comment faire?

merci d'avance

JS

12 réponses

J'avais ce problème, et après avoir tout re-paramétré dans IIS, je me suis aperçu qu'il y a une page 3 du pare-feu Windows de XP Pro - onglet Avancé -> "paramètres de connexion réseau" (cadre du haut) . Il se trouve que j'avais ajouté une carte Ethernet à ma machine, la prise RJ45 intégrée de la carte mère étant fatiguée. Mais j'avais oublié de cocher le service FTPServer sur cette connexion, qui est reliée à mon routeur (Freebox) sur lequel j'avais ouvert le port 21, ce qui permettait la connexion, mais pas le transfert des données.

Il est possible que ce ne soit pas la seule solution pour l'erreur 425.

J'ai trouvé celle-ci après avoir désactivé complètement le pare-feu : l'erreur 425 disparaissait, et le FTP fonctionnait parfaitement de l'extérieur.

Si ça ne marche pas en cochant FTP Server sur la connexion reliée à Internet, ni en désactivant complètement le pare-feu, c'est que c'est autre chose...
6
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Bon j'ai trouvé tout seul,

pour ceux qui rencontrerai le meme problème que moi, il suffit d'ouvrir en plus des ports 20-21 un plage de ports dans filezilla server et donc du coup dans le routeur. J'ai ouvert une plage de 50 ports ca a l'air d'etre suffisant.
Super Fluo merci marche nickel !!!
J'AI LA REPONSE !!
j'ai pas mal galéré mais ce post ma mis sur une voi...
Il faut autoriser dans le FIREWALL [Remote Administrator] !!

quel plage stp moi g ouvert de 2150 à 2200 et ça marche tjrs pas .
moi ça marche sauf avec 2 machine sur mon intranet....une xp et une vista, la machine en server 2000 est ok et le ftp serv filezilla est lui sur une autre machine en xp il doit y avoir une config coté client mais quoi????
Salut,

- faut aller dans "Passive mode settings"
- Cocher : Use custom port range
- mettre une plage de 50 ports (par ex: 2000 à 2050)
- faire router la même plage sur ta Freebox

... et ça marche !
> Fluo
Bonjour !

Qu'entends-tu par
faire router la même plage sur ta Freebox


Je suis désolée, je suis très nulle ...
Messages postés
100
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
24 mars 2009
1 > Fluo
salut ja'i un souci au nivau de filezilla serveur j'ai le meme souci que tu avait mais je ne comprend pas comment tu la resolu merci de m'aider
Messages postés
22
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
26 octobre 2008
4
Merci pour le tuyau. L'ouverture des ports 2000-2050 a très bien fonctionné pour moi.
Merci bien Fluo,

L'ouverture de la plage de 50 ports fonctionne très bien.
merci l'astuce sur Activer le service "server ftp" daas le 3ieme onglet du firewall XPpour moi a fait disparaitre l'erruer 425
Messages postés
25
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
2 juin 2009
4
WAAAAAh moi j'ai la même erreur, j'ai suivi vos solutions mais ça marche toujours paaas !

Le problème vient sîurement de mon code, au niveau de la commande STOR (les commandes précédentes fonctionnent) :

printf("Phase 1\n");
send(sock, "USER *****\r\n", 12, 0);
for(i=-10000000.0; i<10000000.0; i=i+0.1); // tempo pour laisser le temps au serveur de recevoir le message

printf("Phase 2\n");
send(sock, "PASS *****\r\n", 12, 0);
for(i=-10000000.0; i<10000000.0; i=i+0.1);


printf("Phase 3\n");
send(sock, "CWD /\r\n", 7, 0);
for(i=-10000000.0; i<10000000.0; i=i+0.1);

printf("Phase 4\n");
send(sock, "PWD\r\n", 5, 0);
for(i=-10000000.0; i<10000000.0; i=i+0.1);;

printf("Phase 5\n");
send(sock, "TYPE A\r\n", 8, 0);
for(i=-10000000.0; i<10000000.0; i=i+0.1);

printf("Phase 6\n");
send(sock, "PASV\r\n", 6, 0);
for(i=-10000000.0; i<10000000.0; i=i+0.1);

printf("Phase 7\n");
send(sock, "STOR fichier_telecharge.txt\r\n", 29, 0); // PROBLEME A CE NIVEAU-LA ?
for(i=-10000000.0; i<10000000.0; i=i+0.1);

/* OUVRIR ET LIRE LE FICHIER (je sais même pas si c'est utile) */

fichier = fopen("fichier_telecharge.txt", "rb");
//On fait pointer fichier vers la fin du fichier
fseek(fichier,SEEK_END,0);
/*On met la taille du fichier dans taille_fichier (car fichier pointe
vers la fin du fichier, sa position donne le nombre d'octets
pour arriver à la fin) */
taille_fichier=ftell(fichier);
//On refait pointer fichier au début du fichier
fseek(fichier,SEEK_SET,0);
//Allocation de temp avec la taille du fichier
taille_fichier_2 = sizeof(char) * taille_fichier;
temp=(char *)malloc(sizeof(char) * taille_fichier);
fscanf(fichier, "%s", temp);

/* trouver la bonne formule pour l'envoi du fichier ? */

printf("Phase 8\n");
send(sock, temp, taille_fichier_2, 0);
for(i=-10000000.0; i<10000000.0; i=i+0.1);
printf("voila ce qu'il y a dans temp: ***%s***\n", temp); // il y a bien le contenu du fichier

/* trouver la bonne formule pour l'envoi du fichier ? */

printf("Transfert reussi ?\n");
scanf("%lf", &i);
fclose(fichier);
//On libère temp
free(temp);

closesocket(sock);



return 0;

Voilà, désolé de vous envoyer le code brut, mais heureusement il est assez simple ^^.

Adez-moi, s'il vous plait, c'est un travail que je dois rendre dans 3 semaines et je sèche complètement.
Messages postés
25
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
2 juin 2009
4
Me revoilou avec un rpogramme un peu modifié. Voici ce qu'il y a après la phase 4 :

choix=2; // choix=1 pour les fichiers binaires
// choix=2 pour les fichiers textes
if(choix==1)
{
printf("Phase TYPE I\n");
send(sock, "TYPE I\r\n", 8, 0); // type I pour les fichiers binaires
}
if(choix==2)
{
printf("Phase TYPE A\n");
send(sock, "TYPE A\r\n", 8, 0); // type A pour les fichiers textes
}
for(i=-10000000.0; i<10000000.0; i=i+0.1);

printf("Phase PASV\n");
send(sock, "PASV\r\n", 6, 0);
for(i=-10000000.0; i<10000000.0; i=i+0.1);

fichier = fopen("test.txt", "rb"); // NOM DU FICHIER ICI

printf("Phase STOR\n");
send(sock, "STOR test.txt\r\n", 15, 0); // nom de la copie serveur ici
for(i=-10000000.0; i<10000000.0; i=i+0.1);

/* SOCKET DONNEES */

SOCKET sock2;

sin.sin_addr.s_addr = inet_addr("127.0.0.1");
sin.sin_family = AF_INET;
sin.sin_port = htons(xxxxx);
// => connecté sur soi-même au port data configuré par le serveur

sock2 = socket(AF_INET,SOCK_STREAM,0);
bind(sock2, (SOCKADDR *)&sin, sizeof(sin));

connect(sock2, (SOCKADDR *)&sin, sizeof(sin));


if(choix==1)
{
while (fgets(contenu_fichier, sizeof(contenu_fichier), fichier) != NULL)
{
send(sock2, contenu_fichier, sizeof(contenu_fichier), 0);//il envoi ligne par ligne en binaire
printf(".");

}
}
if(choix==2)
{
while (fgets(contenu_fichier, strlen(contenu_fichier)+1, fichier) != NULL)
{
send(sock2, contenu_fichier, strlen(contenu_fichier)+1, 0);//il envoi ligne par ligne en ASCII
printf(".");
}
}

printf("\n");
fclose(fichier);

printf("Transfert reussi ?\n");
scanf("%lf", &i);

closesocket(sock2);
closesocket(sock);


return 0;


Alors, j'arrive à envoyer parfaitement un fichier texte (choix=2) mais je n'arrive pas à envoyer de fichier binaire (choix=1)
Le problème vient sûrement de la manière dont j'envoie les données :
if(choix==1)
{
while (fgets(contenu_fichier, sizeof(contenu_fichier), fichier) != NULL)
{
send(sock2, contenu_fichier, sizeof(contenu_fichier), 0);//il envoi ligne par ligne en binaire
printf(".");

}
}
Sur mon client j'obtiens ça:
Statut : Connexion à xx.xxx.xxx.xx:21...
Statut : Connexion établie, attente du message d'accueil...
Réponse : 220-FileZilla Server version 0.9.41 beta
Réponse : 220-written by Tim Kosse (***@***)
Réponse : 220 Please visit http://sourceforge.net/projects/filezilla/
Commande : USER Aide
Réponse : 331 Password required for aide
Commande : PASS ***************
Réponse : 230 Logged on
Commande : SYST
Réponse : 215 UNIX emulated by FileZilla
Commande : FEAT
Réponse : 211-Features:
Réponse : MDTM
Réponse : REST STREAM
Réponse : SIZE
Réponse : MLST type*;size*;modify*;
Réponse : MLSD
Réponse : UTF8
Réponse : CLNT
Réponse : MFMT
Réponse : 211 End
Statut : Connecté
Statut : Récupération du contenu du dossier...
Commande : PWD
Réponse : 257 "/" is current directory.
Commande : TYPE I
Réponse : 200 Type set to I
Commande : PASV
Réponse : 227 Entering Passive Mode (xx,xxx,xxx,xx,206,111)
Commande : MLSD
Réponse : 425 Can't open data connection.
Erreur : Impossible de récupérer le contenu du dossier

Et sur mon serveur ça:
(000003)10/12/2013 23:10:04 - (not logged in) (192.168.0.254)> Connected, sending welcome message...
(000003)10/12/2013 23:10:04 - (not logged in) (192.168.0.254)> 220-FileZilla Server version 0.9.41 beta
(000003)10/12/2013 23:10:04 - (not logged in) (192.168.0.254)> 220-written by Tim Kosse (***@***)
(000003)10/12/2013 23:10:04 - (not logged in) (192.168.0.254)> 220 Please visit http://sourceforge.net/projects/filezilla/
(000003)10/12/2013 23:10:04 - (not logged in) (192.168.0.254)> USER Aide
(000003)10/12/2013 23:10:04 - (not logged in) (192.168.0.254)> 331 Password required for aide
(000003)10/12/2013 23:10:04 - (not logged in) (192.168.0.254)> PASS ***************
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> 230 Logged on
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> SYST
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> 215 UNIX emulated by FileZilla
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> FEAT
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> 211-Features:
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> MDTM
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> REST STREAM
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> SIZE
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> MLST type*;size*;modify*;
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> MLSD
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> UTF8
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> CLNT
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> MFMT
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> 211 End
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> PWD
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> 257 "/" is current directory.
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> TYPE I
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> 200 Type set to I
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> PASV
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> 227 Entering Passive Mode (192,168,0,10,206,111)
(000003)10/12/2013 23:10:04 - aide (192.168.0.254)> MLSD
(000003)10/12/2013 23:10:15 - aide (192.168.0.254)> 425 Can't open data connection.
(000003)10/12/2013 23:12:04 - aide (192.168.0.254)> 421 No-transfer-time exceeded. Closing control connection.
(000003)10/12/2013 23:12:04 - aide (192.168.0.254)> disconnected.

J'ai essayé toutes vos solutions mais ca ne marche toujours pas, j'ai un ordinateur hp pavillon g7 sous windows 7 avec aucun ajout d'électronique (mémoire, wifi,...) et j'ai une freebox v5. Donc si quelqu'un avait les mêmes conditions que moi et réussissait à résoudre le problème je lui serait très reconnaissant de m'aider (en espérant que parce que ce post est vieux il y ait des solutions trouvées).