ls befehl in ftp> funktioniert nicht!

17

Ich habe FTP geübt, aber es gab ein Problem: Der Befehl ls funktioniert nicht mit FTP>. Warum? Ich habe 2 entfernte Server überprüft, aber ls funktionierte auch nicht und gab bei der Ausführung von ls eine andere Ausgabe aus. Nachfolgend finden Sie die 2 Remote-Boxen.

Die folgende Abbildung zeigt meinen Remote-Server, auf dem ich heute vsftpd installiert habe.

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> 

Das Folgende ist für eine andere entfernte Maschine, auf der ich einige Dateien senden muss. Da ls auf ftp> nicht funktioniert, wie kann ich Dateien von meiner lokalen Box auf diese Box übertragen, da ich ohne ls nicht bestätigt werden kann, ob die Dateien übertragen wurden oder nicht.

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

Bitte beachten Sie, dass die Eingabeaufforderung für die oben genannte Maschine nicht zurückkam, sobald ich ls auf ftp> ausgeführt habe.

Auf beiden Remote-Rechnern wurde bei der Ausführung von ls auf ftp> eine unterschiedliche Ausgabe ausgegeben

Ravi
quelle
3
Verwenden Sie den passiven Modus. Überprüfen Sie die Manpage Ihres FTP-Clients, um zu erfahren, wie Sie sie aktivieren können.
Stéphane Chazelas
Woher weiß ich, welcher FTP-Client an meinem Ende ausgeführt wird?
Ravi
@stephane danke! Ich lief man ftpund fand die -pOption für den passiven Modus. Als man ftpErwähnung, dass FTP eine Benutzerschnittstelle zum Internet-Standard-Dateiübertragungsprotokoll ist: Es ist also eine Schnittstelle und nicht der FTP-Client !!! Ich verstehe, dass der FTP-Client diese Schnittstelle (FTP) zum Übertragen von Dateien verwendet.
Ravi

Antworten:

26

FTP ist ein altes Protokoll. Es setzt zwei TCP-Verbindungen voraus: eine Steuerverbindung, über die Befehle ausgetauscht werden, und Datenverbindungen für den Inhalt von Dateien sowie für die Ausgabe von Befehlen wie ls. Was hier passiert, ist, dass die Steuerverbindung hergestellt wird, aber die Datenverbindungen nicht durchlaufen werden.

Standardmäßig (aktiver Modus) werden Datenverbindungen vom Absender zum Empfänger hergestellt. Für die Ausgabe von lswerden die Daten vom Server gesendet, sodass der Server versucht, eine Verbindung zum Client herzustellen. Dies hat gut funktioniert, als FTP erfunden wurde, aber heutzutage befinden sich Clients häufig hinter einer Firewall oder einem NAT, die / das möglicherweise aktives FTP unterstützt. Wechseln Sie in den passiven Modus, in dem der Client die Datenverbindung immer initiiert.

Lesen Sie im Handbuch Ihres ftpBefehls nach, wie Sie standardmäßig in den passiven Modus wechseln. Für eine einmalige Sache reicht es passivenormalerweise aus , den Befehl einzugeben.

Möglicherweise möchten Sie zu einem besseren FTP-Client wie ncftp oder lftp wechseln .

Gilles 'SO - hör auf böse zu sein'
quelle
Vielen Dank!! Aber warum plötzlich dieses Problem aufgetreten ist. Eariler Ich konnte ls auf ftp ausführen. Aber gestern habe ich vsftpd auf meinem Remote-Server (meinem VPS) installiert und auch die Datei .netrcauf meiner lokalen Box bearbeitet (habe Hash einfach am Anfang der Zeile in .netrc gesetzt). Das ist alles und dann, nach der Ausgabe von ls, vor der ich gestanden habe. Was mag der Grund sein, warum ich früher und seit gestern nicht mehr gut gearbeitet habe?
Ravi
Sie haben Recht vorzuschlagen lftp. Ich habe Erfahrung damit. lftpist wirklich unglaublich. Außerdem möchte ich hinzufügen, dass ich mich gerade erkundigt habe lftpund es einwandfrei läuft, ohne dass es Probleme mit ls gibt. lshier (in lftp) wird die ausgabe richtig angezeigt.
Ravi
3

Vollständig Vollständige Lösung für "ftp 500 Illegal PORT command". Klicken Sie auf den folgenden Link: http://www.ucodice.com/articles/ftp-500-illegal-port-command/ .

Auszug

Es wurde versucht, eine Verbindung zum FTP-Server herzustellen, und der Befehl 500 Illegal Port wurde abgerufen. Dieses Problem kann auftreten, wenn das FTP-Programm nicht für den passiven Modus konfiguriert ist.

Möglicherweise erhalten Sie einen Fehlerauszug wie:

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.

Um dieses Problem zu beheben, können Sie den Port oder FTP in der Konfigurationsdatei des FTP-Servers und die IP-Adresse oder den PASV-Server definieren.

Überprüfen Sie die Konfigurationsdatei auf die folgenden Einstellungen.

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.

Starten Sie danach den FTP-Dienst neu und überprüfen Sie die FTP-Verbindung.

Manoj Kumar
quelle