Comando ls in ftp> non funzionante!


17

Stavo praticando ftp ma ho riscontrato un problema: il comando ls non funziona su ftp>. Perché? Ho controllato 2 server remoti, ma non ha funzionato su nessuno dei due e ho dato un output diverso quando è stato eseguito. Vedi sotto per le 2 scatole remote.

Di seguito mostra il mio server remoto su cui ho installato vsftpd oggi.

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> 

Di seguito è per un altro computer remoto in cui devo inviare alcuni file. Ma poiché ls su ftp> non funziona, come trasferirò i file dalla mia casella locale a quella casella perché non posso essere confermato senza il fatto che i file siano stati trasferiti o meno.

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

Si noti che per la macchina sopra, una volta eseguito ls su ftp>, il prompt non è tornato.

Su entrambe le macchine remote, ho ottenuto un output diverso quando eseguito ls su ftp>


3
usa la modalità passiva. Controlla la pagina man del tuo client ftp per come abilitarlo.
Stéphane Chazelas,

Come sapere quale client ftp è in esecuzione alla mia fine?
Ravi,

@stephane grazie! Ho corso man ftpe ho trovato l' -popzione da utilizzare per la modalità passiva. Come man ftpmenziona che ftp è un'interfaccia utente al protocollo di trasferimento file standard di Internet: quindi è un'interfaccia e non il client ftp !!! Quello che ho capito è che il client ftp utilizza questa interfaccia (ftp) per il trasferimento di file.
Ravi,

Risposte:


26

FTP è un protocollo antico. Si basa su due connessioni TCP: una connessione di controllo su cui vengono scambiati i comandi e connessioni dati per il contenuto dei file e anche per l'output di comandi come ls. Ciò che sta accadendo qui è che la connessione di controllo è stata stabilita, ma le connessioni dati non stanno attraversando.

Per impostazione predefinita (modalità attiva), le connessioni dati vengono stabilite dal mittente al destinatario. Per l'output di ls, i dati vengono inviati dal server, quindi il server tenta di aprire una connessione al client. Questo ha funzionato bene quando è stato inventato FTP, ma al giorno d'oggi, i client sono spesso protetti da un firewall o NAT che può o meno supportare FTP attivo. Passa alla modalità passiva, in cui il client avvia sempre la connessione dati.

Controlla il manuale del tuo ftpcomando per vedere come passare alla modalità passiva per impostazione predefinita. Per una volta, digitare il comando di passivesolito fa il trucco.

Potresti voler passare a un client FTP più bello come ncftp o lftp .


Grazie!! Ma perché all'improvviso si è verificato questo problema. Eariler Sono stato in grado di eseguire ls su ftp>. Ma ieri ho installato vsftpd sul mio server remoto (il mio VPS) e ho anche modificato il file .netrcsulla mia casella locale (semplicemente avevo messo l'hash all'inizio della riga in .netrc). Questo è tutto e poi dopo il problema di Ls ho dovuto affrontare. Quale potrebbe essere la ragione per cui stava lavorando bene prima e da ieri non funzionava?
Ravi,

Hai ragione a suggerire lftp. Sto avendo esperienza di lavoro con quello. lftpè davvero sorprendente. Vorrei anche aggiungere che ho appena verificato lftpe funziona perfettamente bene senza problemi di ls. lsqui (in lftp) viene visualizzato correttamente l'output.
Ravi,

3

Full Soluzione completa per "ftp 500 Illegal PORT command". Fare clic sul seguente collegamento: http://www.ucodice.com/articles/ftp-500-illegal-port-command/ .

Estratto

Prova di connettere il server ftp e ottieni il comando porta illegale 500. Questo problema può verificarsi quando il programma ftp non è configurato per la modalità passiva.

È possibile che venga visualizzato un frammento di errore come:

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.

Per risolvere questo problema è possibile definire la porta o ftp nel file di configurazione del server ftp e definire l'indirizzo IP o il server PASV.

Controllare il file di configurazione per le impostazioni seguenti.

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.

Successivamente riavviare il servizio ftp e verificare la connessione ftp.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.