La commande ls dans ftp> ne fonctionne pas!

17

Je pratiquais le ftp mais j'ai rencontré un problème: la commande ls ne fonctionne pas sur ftp>. Pourquoi? J'ai vérifié sur 2 serveurs distants mais ls ne fonctionnait pas non plus et a donné une sortie différente lorsque ls a été exécuté. Veuillez voir ci-dessous pour les 2 boîtiers distants.

Ce qui suit montre mon serveur distant sur lequel j'ai installé vsftpd aujourd'hui.

ravbholua@ravbholua-Aspire-5315:~$ ftp rs
Connected to ravi.com.
220 (vsFTPd 3.0.2)
Name (rs:ravbholua): 
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/home/ravbholua"
ftp> ls
500 Illegal PORT command.
ftp: bind: Address already in use
ftp> 

Ce qui suit est pour une machine distante différente où je dois envoyer des fichiers. Mais comme ls sur ftp> ne fonctionne pas, comment vais-je transférer des fichiers de ma boîte locale vers cette boîte parce que je ne peux pas être confirmé sans ls si les fichiers ont été transférés ou non.

ravbholua@ravbholua-Aspire-5315:~$ ftp 125.21.153.140
Connected to 125.21.153.140.
220---------- Welcome to Pure-FTPd [TLS] ----------
220-You are user number 1 of 10 allowed.
220-Local time is now 04:34. Server port: 21.
220-This server supports FXP transfers
220 You will be disconnected after 2 minutes of inactivity.
Name (125.21.153.140:ravbholua): peacenews
331 User peacenews OK. Password required
Password:
230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200-FXP transfer: from 123.63.112.168 to 10.215.10.80
200 PORT command successful

Veuillez noter que pour la machine ci-dessus, une fois que j'ai exécuté ls sur ftp>, l'invite n'est pas revenue.

Sur les deux machines distantes, j'ai obtenu une sortie différente lors de l'exécution de ls sur ftp>

Ravi
la source
3
utiliser le mode passif. Consultez la page de manuel de votre client ftp pour savoir comment l'activer.
Stéphane Chazelas
Comment savoir quel client ftp fonctionne de mon côté?
Ravi
@stephane merci! J'ai couru man ftpet trouvé l' -poption à utiliser pour le mode passif. Comme man ftpmentionne que ftp est une interface utilisateuri au protocole de transfert de fichiers standard Internet: c'est donc l'interface et non le client ftp !!! Ce que je comprends, c'est que le client ftp utilise cette interface (ftp) pour transférer des fichiers.
Ravi

Réponses:

26

FTP est un ancien protocole. Il s'appuie sur deux connexions TCP: une connexion de contrôle sur laquelle les commandes sont échangées et des connexions de données pour le contenu des fichiers et également pour la sortie de commandes telles que ls. Ce qui se passe ici, c'est que la connexion de contrôle est établie, mais les connexions de données ne passent pas.

Par défaut (mode actif), les connexions de données sont établies de l'expéditeur au récepteur. Pour la sortie de ls, les données sont envoyées par le serveur, de sorte que le serveur tente d'ouvrir une connexion avec le client. Cela a bien fonctionné lorsque le FTP a été inventé, mais de nos jours, les clients sont souvent derrière un pare-feu ou un NAT qui peut ou non prendre en charge le FTP actif. Passez en mode passif, où le client lance toujours la connexion de données.

Consultez le manuel de votre ftpcommande pour voir comment passer en mode passif par défaut. Pour une chose unique, taper la commande fait passivegénéralement l'affaire.

Vous souhaiterez peut-être passer à un client FTP plus agréable tel que ncftp ou lftp .

Gilles 'SO- arrête d'être méchant'
la source
Merci!! Mais pourquoi tout d'un coup, ce problème est survenu. Eariler J'ai pu exécuter ls sur ftp>. Mais hier, j'ai installé vsftpd sur mon serveur distant (mon VPS) et j'ai également édité le fichier .netrcsur ma box locale (j'avais simplement mis du hachage au début de la ligne en .netrc). C'est tout, puis après la question de ls que j'ai rencontrée. Quelle peut être la raison pour laquelle ls fonctionnait bien plus tôt et depuis hier ne fonctionnait pas?
Ravi
Vous avez raison de suggérer lftp. J'ai de l'expérience avec cela. lftpest vraiment incroyable. Je voudrais également ajouter que je viens de vérifier lftpet qu'il fonctionne parfaitement bien sans problème de ls. lsici (en lftp) affiche correctement la sortie.
Ravi
3

Solution complète complète pour "ftp 500 Illegal PORT command". Cliquez sur le lien suivant: http://www.ucodice.com/articles/ftp-500-illegal-port-command/ .

Extrait

Essayer de connecter le serveur ftp et obtenir la commande 500 Illegal port. Ce problème peut se produire lorsque le programme ftp n'est pas configuré pour le mode passif.

Vous pouvez obtenir un extrait d'erreur tel que:

COMMAND:>              [3/11/2015 1:17:05 PM] PORT 192,168,0,101,196,215    
                       [3/11/2015 1:17:05 PM] 500 Illegal PORT command.    
ERROR:>                [3/11/2015 1:17:05 PM] Syntax error: command unrecognized.    
ERROR:>                [3/11/2015 1:17:05 PM] Failed to establish data socket.

Pour résoudre ce problème, vous pouvez définir le port ou ftp dans le fichier de configuration du serveur ftp et définir l'adresse IP ou le serveur PASV.

Vérifiez le fichier de configuration pour les paramètres ci-dessous.

pasv_enable=YES
pasv_promiscuous=YES
pasv_max_port=Enter the max port range allowed on your server.
pasv_min_port=Enter the min port range allowed on your server.
pasv_address=Ip Address of your server.

Après cela, redémarrez le service ftp et vérifiez la connexion ftp.

Manoj Kumar
la source