Posez votre question Signaler

Erreur 425 FTP

JS - Dernière réponse le 20 mars 2010 à 14:05
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
Lire la suite 

Erreur 425 FTP »

14 réponses
Réponse
+5
moins plus
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...
Ajouter un commentaire
Réponse
+1
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
quel plage stp moi g ouvert de 2150 à 2200 et ça marche tjrs pas .
Ajouter un commentaire
Réponse
+0
moins plus
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????
Fluo - 24 mars 2008 à 19:03
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 !
Malynou - 11 déc. 2008 à 16:58
Bonjour !

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


Je suis désolée, je suis très nulle ...
canaille69Fluo - 12 mars 2009 à 10:31
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
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour le tuyau. L'ouverture des ports 2000-2050 a très bien fonctionné pour moi.
Ajouter un commentaire
Réponse
+0
moins plus
Merci bien Fluo,

L'ouverture de la plage de 50 ports fonctionne très bien.
Ajouter un commentaire
Réponse
+0
moins plus
Super Fluo merci marche nickel !!!
Ajouter un commentaire
Réponse
+0
moins plus
merci l'astuce sur Activer le service "server ftp" daas le 3ieme onglet du firewall XPpour moi a fait disparaitre l'erruer 425
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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(".");

}
}
Ajouter un commentaire
Réponse
+0
moins plus
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] !!
Ajouter un commentaire
Ce document intitulé « erreur 425 FTP » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?