FTP
protocolli
reti
comandi
trasferimento-file
30 apr 2026
Comandi Base FTP
FTP (File Transfer Protocol) è un protocollo di rete standard per il trasferimento di file tra client e server. Funziona sul modello client-server e utilizza due connessioni TCP separate: una per i comandi (porta 21) e una per i dati (porta 20 in modalità attiva).
Avviare il client FTP
ftp # Apre il client FTP interattivo
ftp nomehostserver # Apre il client e si connette direttamente
ftp 192.168.1.10 # Connessione tramite indirizzo IP
Comandi di connessione
| Comando | Descrizione |
|---|
open <host> | Apre una connessione verso il server specificato |
user <username> | Specifica il nome utente per l’autenticazione |
pass <password> | Specifica la password (sconsigliato in chiaro) |
bye / quit | Chiude la connessione e termina il client FTP |
close | Chiude la connessione con il server ma mantiene il client aperto |
disconnect | Sinonimo di close |
ftp> open ftp.esempio.it
Connected to ftp.esempio.it.
Name (ftp.esempio.it:utente): mario
Password: ****
230 Login successful.
Navigazione remota e locale
| Comando | Descrizione |
|---|
ls / dir | Elenca i file nella directory remota corrente |
ls -la | Elenco dettagliato (inclusi file nascosti) |
cd <dir> | Cambia la directory remota |
cd .. | Sale di un livello nella directory remota |
pwd | Mostra la directory remota corrente |
mkdir <dir> | Crea una directory sul server remoto |
rmdir <dir> | Elimina una directory sul server remoto |
delete <file> | Elimina un file sul server remoto |
rename <old> <new> | Rinomina un file sul server remoto |
lcd <dir> | Cambia la directory locale (sul proprio PC) |
!pwd | Mostra la directory locale corrente |
Download (dal server al client)
| Comando | Descrizione |
|---|
get <file> | Scarica un singolo file dal server |
get <file> <nome_locale> | Scarica e rinomina il file localmente |
mget <pattern> | Scarica più file (es. mget *.txt) |
recv <file> | Sinonimo di get |
ftp> get documento.pdf
ftp> get relazione.docx bozza_relazione.docx
ftp> mget *.jpg
Con mget il client chiede conferma per ogni file. Per disabilitare la conferma: prompt off
Upload (dal client al server)
| Comando | Descrizione |
|---|
put <file> | Carica un singolo file sul server |
put <file> <nome_remoto> | Carica e rinomina il file sul server |
mput <pattern> | Carica più file (es. mput *.csv) |
send <file> | Sinonimo di put |
append <file> | Aggiunge il file locale in coda a un file remoto |
ftp> put report.pdf
ftp> put bozza.txt definitivo.txt
ftp> mput *.log
Modalità di trasferimento
FTP supporta due modalità di trasferimento che devono essere selezionate correttamente prima di caricare/scaricare file.
| Comando | Modalità | Uso |
|---|
ascii | Testo ASCII | File di testo (.txt, .csv, .html) |
binary | Binario (raw) | Qualsiasi altro file (.pdf, .zip, .jpg, .exe) |
ftp> ascii
200 Switching to ASCII mode.
ftp> get readme.txt
ftp> binary
200 Switching to Binary mode.
ftp> get archivio.zip
Attenzione: trasferire file binari in modalità ASCII li corrompe. Usare sempre binary quando si è in dubbio.
Gestione della sessione
| Comando | Descrizione |
|---|
prompt | Attiva/disattiva la conferma interattiva per mget/mput |
prompt off | Disabilita le conferme (scarica/carica tutto senza chiedere) |
status | Mostra lo stato della connessione e le impostazioni correnti |
hash | Attiva/disattiva la visualizzazione di # durante il trasferimento |
verbose | Attiva/disattiva la visualizzazione dei messaggi del server |
help / ? | Mostra l’elenco dei comandi disponibili |
help <comando> | Mostra l’aiuto per un comando specifico |
Esecuzione comandi locali
Tutti i comandi preceduti da ! vengono eseguiti sulla macchina locale senza uscire da FTP:
ftp> !ls # elenca file locali
ftp> !pwd # directory locale corrente
ftp> !mkdir nuova_cartella # crea cartella locale
ftp> !cat file.txt # mostra contenuto file locale
Esempio di sessione completa
$ ftp ftp.esempio.it
Connected to ftp.esempio.it.
Name: mario
Password:
230 Login successful.
ftp> ls
200 PORT command successful.
226 Directory send OK.
archivio/ documenti/ readme.txt
ftp> cd documenti
250 Directory successfully changed.
ftp> binary
200 Switching to Binary mode.
ftp> get relazione.pdf
226 Transfer complete.
ftp> lcd /home/mario/upload
ftp> put progetto.zip
226 Transfer complete.
ftp> mget *.csv
prompt off
ftp> mget *.csv
226 Transfer complete.
ftp> bye
221 Goodbye.
Riepilogo comandi essenziali
| Categoria | Comandi |
|---|
| Connessione | open, user, bye, close |
| Navigazione remota | ls, dir, cd, pwd, mkdir |
| Navigazione locale | lcd, !pwd, !ls |
| Download | get, mget |
| Upload | put, mput |
| Modalità trasferimento | ascii, binary |
| Utilità | prompt, hash, status, help |
Note sulla sicurezza
FTP trasmette credenziali e dati in chiaro sulla rete. Per ambienti di produzione è preferibile usare:
- SFTP (SSH File Transfer Protocol) — trasferimento sicuro su SSH, porta 22
- FTPS (FTP over SSL/TLS) — FTP cifrato, porta 990 (implicito) o 21 (esplicito)
- SCP (Secure Copy) — copia sicura via SSH