problème transfert de fichier avec filezilla ou en commande

Bonsoir

Voila j’ai un problème de transfert de fichier par ftp.

Je dois transférer un fichier.txt vers un serveur ftp/tls d’un site externe (qui ne m’appartient pas que j’appelle serveur A).

Avec filezilla depuis mon poste fixe je me connecte sans problème :
Le contenu du dossier s’affiche, puis deux cas :

  • le fichier fait moins d’environ 89000 octets -> ça passe
  • le fichier fait plus -> erreur de timeout -> message me demandant si je veux remplacer le fichier, je dis ok -> au final le fichier transféré fait 89000 octets

En ligne de commande depuis mon poste fixe, j’arrive à me connecter :
Puis après impossible de faire quoi que ce soit, exemple :

ftp> dir 500 Illegal PORT command

J’ai essayé le mode passive qui n’a rien arrangé.

J’ai également essayé avec filezilla vers un ftp(simple) sur autre serveur qui lui m’appartient (que j’appelle serveur B).
Et la je transfert ce que je veux.

Si je me connecte en ligne de commande du serveur B vers le serveur A, je me connecte également mais la j’obtient par exemple :

ftp> dir 200 PORT command successful 425 Unable to build data connection: Connection refused

Le propriétaire du serveur me dit que le problème vient probablement de moi.

J’espère avoir été clair en détaillant tous ces cas.

Si quelqu’un a une idée de l’origine de ces problèmes ça me ferait plaisir

a+

C’est dommage qu’on ne puisse pas vérifier par nous même avec l’adresse de ce serveur, plusieurs personnes pourraient confirmer/infirmer les résultats que tu obtiens.
C’est vraiment une histoire de type secret militaire ou un truc de ce genre ?

À première vue, il semblerait effectivement que le serveur A ou un des intermédiaires entre le serveur A et ton PC suspends son transfert en fonction de la quantité transférée, mais ça tu l’a déjà constaté.
Peut-être que l’option “verbose” de ftp pourrait en dire plus, quand à Filezilla, je suppose que l’“erreur de time-out” proviens des messages affichés par filezilla.

si le port ftp de ton serveur distant est autre que le port 21 alors remet le à 21 et essaye de nouveau.J’ai souvenir d’avoir eu des problèmes semblables en déportant le port 21 et en ligne de commande ça ne marchait plus avec la même erreur "500 Illegal PORT command"Filezilla acceptait mais pas la ligne de commande,jamais compris pourquoi.Tu peux aussi essayer de te connecter avec ton navigateur.

Ton poste client est derrière un dispositif NAT (box internet, routeur avec NAT).
Le mode actif ne fonctionnera pas avec une connexion TLS sans une configuration spéciale du client FTP et du NAT.
[quote="christov"]
J'ai essayé le mode passive qui n'a rien arrangé.[/quote]
Mais encore ?
[code]200 PORT command successful
425 Unable to build data connection: Connection refused[/code]
La machine cliente a probablement un pare-feu qui bloque la connexion de données entrante.
[quote="marcastro"]jamais compris pourquoi[/quote]
FTP est un protocole compliqué qui nécessite une prise en charge specifique par les pare-feux à état et les dispositifs NAT qui truffent l'internet actuel. Or cette prise en charge ne fonctionne qu'avec les connexions FTP en clair (sans TLS) utilisant le port 21. Ce n'est pas comme si je ne passais pas mon temps à répéter à longueur de forum qu'utiliser FTP sur un autre port est une mauvaise idée.

Ton poste client est derrière un dispositif NAT (box internet, routeur avec NAT).
Le mode actif ne fonctionnera pas avec une connexion TLS sans une configuration spéciale du client FTP et du NAT.

[quote=“christov”]
J’ai essayé le mode passive qui n’a rien arrangé.[/quote]
Mais encore ?

200 PORT command successful 425 Unable to build data connection: Connection refused
La machine cliente a probablement un pare-feu qui bloque la connexion de données entrante.

FTP est un protocole compliqué qui nécessite une prise en charge specifique par les pare-feux à état et les dispositifs NAT qui truffent l’internet actuel. Or cette prise en charge ne fonctionne qu’avec les connexions FTP en clair (sans TLS) utilisant le port 21. Ce n’est pas comme si je ne passais pas mon temps à répéter à longueur de forum qu’utiliser FTP sur un autre port est une mauvaise idée.

C’est sûr que connaître la ligne de commande détaillée qui a donné ces retour serait un plus,
mais bon…avec un bonne boule de cristal ou en listant toutes les possibilités on va (peut-être) y arriver,
c’est qu’une question de temps, et puis on est nombreux, alors ça devrait (peut-être) être possible. :slightly_smiling:

Merci de vos réponses

a priori dans la doc du serveur je dois utiliser le port 21

je ne peux pas essayer avec un navigateur à cause du tls

en effet mon poste fixe est derrière une box internet

c’est j’ai l’impression en lisant un peu partout qu’il est question de firewall mais que faut il autoriser ?

par contre je trouve curieux qu’un serveur plus securisé avec tls oblige les clients à ouvrir des ports …

Tente une connexion avec l’option “verbose” de ftp (-v) pour visualiser déjà où ça coince.
Suivre les recommandations de la documentation du serveur concernant l’utilisation du port 21 me semble quand même indispensable.

je me connecte déjà en verbose de façon assez classique :

ftp -v -i -n -z ssl ftp.***.*** 21 quote USER **** quote PASS ****

puis j’essaye un “ls” par exemple

500 Illegal PORT command ftp: bind: Address already in use

pas plus verbeux …

TLS empêche le pare-feu/NAT d’intercepter le contenu de la connexion de commande et d’ouvrir/rediriger les ports qui vont bien à la volée.
Tu as tout intérêt à utiliser le mode passif qui n’a pas cet inconvénient, il suffit d’autoriser les connexions sortantes.
Tu n’as toujours pas dit ce qui se passe exactement avec le mode passif en ligne de commande.

J’ai essayé deux choses pour le mode passif

1.- Je me connecte puis demande le mode passif

[code]ftp -v -i -n -z ssl ftp..*** 21

ftp> quote pasv
227 Entering Passive Mode (
,
,
,,,*).

ftp> ls
500 Illegal PORT command
ftp: bind: Address already in use[/code]

2.- Je me connecte direct en mode passif

ftp -v -p -i -n -z ssl ftp.***.*** 21 ... ftp> ls 227 Entering Passive Mode (*,*,*,*,*,*). ftp: connect: Connection timed out

Il ne faut pas envoyer directement une commande PASV au serveur avec “quote”, car le client ignore que tu veux qu’il utilise le mode passif, d’où la commande PORT qui correspond forcément au mode actif. Il faut utiliser la commande du client, généralement “passive”, ou bien l’option qui va bien lors de l’invocation du programme client FTP (-p ici).

Par contre, “Connection timed out” indique soit que la communication vers le port passif est bloquée (côté client ou serveur, donc vérifie ton pare-feu), soit que le client ne se connecte pas à la bonne adresse ou au bon port. Dans la réponse “Entering passive mode”, c’est bien l’adresse IP du serveur qui suit entre parenthèses ?

oui c’est bien l’adresse du serveur entre parenthèses

mais que faut il vérifier dans le par feu, j’ai les installations par défaut

est-ce au niveau de la box ou de la debian ?

Cela peut être n’importe où. Tu peux vérifier les règles de filtrage de ton côté (iptables sur la machine cliente, box). Je ne sais pas ce que tu veux dire par “installations par défaut”.

Néanmoins je suis étonné car filezilla en mode passif n’a pas ce problème, alors qu’au niveau réseau il fait a priori la même chose.