Introduzione
FTP (File Transfer Protocol) è un protocollo di rete utilizzato per trasferire file da un sistema informatico a un altro. Anche se la sicurezza dell'FTP tende a suscitare molte discussioni, è comunque un metodo efficace per trasferire file all'interno di una rete sicura.
In questo tutorial, ti mostreremo come utilizzare il ftp
comando per connettersi a un sistema remoto, trasferire file e gestire file e directory.
Prerequisiti
- Accesso a un sistema locale e a un server FTP remoto (scopri come installare un server FTP su Ubuntu, CentOS 7 o Raspberry Pi).
- Una connessione Internet funzionante.
- Accesso alla finestra del terminale.
IMPORTANTE: Il traffico FTP non è crittografato ed è quindi considerato non sicuro. Non è consigliabile trasferire file su Internet tramite FTP. Per ulteriori informazioni sulle alternative sicure all'FTP, dai un'occhiata ai nostri articoli su SFTP e TSL rispetto a SSL.
Sintassi del comando ftp Linux
Il ftp
di Linux comando utilizza la seguente sintassi di base:
ftp [options] [IP]
Il IP
è l'indirizzo IP del sistema a cui ti stai connettendo.
Le opzioni disponibili per ftp
comando sono:
Opzioni comando FTP | Descrizione |
---|---|
-4 | Usa solo IPv4. |
-6 | Utilizza solo IPv6. |
-e | Disabilita la modifica dei comandi e il supporto della cronologia. |
-p | Utilizza la modalità passiva per il trasferimento dei dati, consentendoti di utilizzare FTP nonostante un firewall che potrebbe impedirlo. |
-i | Disattiva la richiesta interattiva durante i trasferimenti di file multipli. |
-n | Disabilita i tentativi di accesso automatico alla connessione iniziale. |
-g | Disabilita il globbing dei nomi dei file. |
-v | Abilita output dettagliato. |
-d | Abilita il debug. |
Il ftp
comando ti connette a un sistema remoto e avvia l'interfaccia FTP. L'interfaccia FTP utilizza i seguenti comandi per gestire e trasferire file al sistema remoto:
Comando | Descrizione |
---|---|
! | Sfuggi temporaneamente alla shell locale. |
$ | Esegui una macro. |
? | Visualizza il testo della guida. |
account | Fornire una password per il sistema remoto. |
append | Aggiungi un file locale a un file sul sistema remoto. |
ascii | Imposta il tipo di trasferimento file su ASCII di rete (tipo predefinito). |
bell | Abilita un avviso sonoro al termine di ogni trasferimento. |
binary | Imposta il tipo di trasferimento file sul trasferimento di immagini binarie. |
bye | Esci dall'interfaccia FTP. |
case | Attiva/disattiva la sensibilità alle maiuscole/minuscole durante la mappatura dell'ID durante il mget comando. |
cd | Cambia la directory di lavoro corrente sul sistema remoto. |
cdup | Passa al genitore della directory di lavoro corrente sul sistema remoto. |
chmod | Modifica i permessi dei file sul sistema remoto. |
close | Esci dall'interfaccia FTP. |
cr | Attiva/disattiva lo stripping del ritorno a capo sui trasferimenti di file ASCII. |
debug | Attiva/disattiva la modalità di debug. |
delete | Cancella un file dal sistema remoto. |
dir | Elenca il contenuto di una directory sul sistema remoto. |
disconnect | Termina la sessione FTP. |
exit | Termina la sessione FTP ed esci dall'interfaccia FTP. |
form | Imposta il formato di trasferimento file. |
get | Trasferisci un file dal sistema remoto al computer locale. |
glob | Attiva/disattiva l'espansione dei metacaratteri dei nomi dei file locali. |
hash | Attiva/disattiva la visualizzazione del segno cancelletto ("# ") per ogni blocco di dati trasferito. |
help | Visualizza il testo della guida. |
idle | Imposta un timer di inattività per il sistema remoto. |
image | Imposta il tipo di trasferimento file sul trasferimento di immagini binarie. |
ipany | Consenti qualsiasi tipo di indirizzo IP. |
ipv4 | Consenti solo indirizzi IPv4. |
ipv6 | Consenti solo indirizzi IPv6. |
lcd | Cambia la directory di lavoro corrente sulla macchina locale. |
ls | Elenca il contenuto di una directory sul sistema remoto. |
macdef | Definisci una macro. |
mdelete | Elimina più file sul sistema remoto. |
mdir | Elenca il contenuto di più directory sul sistema remoto. |
mget | Trasferisci più file dal sistema remoto al computer locale. |
mkdir | Crea una directory sul sistema remoto. |
mls | Elenca il contenuto di più directory sul sistema remoto. |
mode | Imposta la modalità di trasferimento file. |
modtime | Mostra l'ultima volta che un file sul sistema remoto è stato modificato. |
mput | Trasferisci più file dalla macchina locale al sistema remoto. |
newer | Trasferisci un file dal sistema remoto alla macchina locale solo se l'ora di modifica del file remoto è più recente di quella del file locale (se non esiste una versione locale del file, il file remoto viene automaticamente considerato più recente). |
nlist | Elenca il contenuto di una directory sul sistema remoto. |
<a href="https://phoenixnap.com/kb/nmap-scan-open-ports" target="_blank" rel="noreferrer noopener">nmap</a> | Imposta modelli per la mappatura dei nomi file predefinita. |
ntrans | Imposta la tabella di traduzione per la mappatura dei nomi file predefinita. |
open | Stabilire una connessione con un server FTP. |
passive | Abilita la modalità di trasferimento passivo. |
prompt | Forza prompt interattivi durante il trasferimento di più file. |
proxy | Esegui comando su una connessione (proxy) alternativa. |
put | Trasferisci un file dalla macchina locale al sistema remoto. |
pwd | Visualizza la directory di lavoro corrente sul sistema remoto. |
qc | Attiva/disattiva la visualizzazione di un carattere di controllo ("? ") nell'output dei comandi di tipo ASCII. |
close | Termina la sessione FTP ed esci dall'interfaccia FTP. |
quote | Specificare un comando come argomento e inviarlo al server FTP. |
recv | Trasferisci un file dal sistema remoto al computer locale. |
reget | Trasferisci un file dal sistema remoto alla macchina locale se il file locale è più piccolo del file remoto. Il trasferimento inizia alla fine del file locale. Se non esiste una versione locale del file, il comando non viene eseguito. |
rename | Rinomina un file sul sistema remoto. |
reset | Cancella le risposte ai comandi in coda. |
restart | Riavvia un comando di trasferimento file in corrispondenza di un marker impostato. |
help | Visualizza il testo della guida per il sistema remoto. |
rmdir | Rimuove una directory sul sistema remoto. |
rstatus | Mostra lo stato del sistema remoto. |
runique | Attiva/disattiva la memorizzazione dei file sul computer locale con nomi di file univoci. |
send | Trasferisci un file dalla macchina locale al sistema remoto. |
sendport | Attiva/disattiva l'uso dei comandi PORT. |
site | Specificare un comando come argomento e inviarlo al server FTP come comando SITE. |
size | Visualizza la dimensione di un file sul sistema remoto. |
status | Mostra lo stato dell'interfaccia FTP. |
struct | Imposta la struttura di trasferimento dei file. |
sunique | Attiva/disattiva la memorizzazione dei file sul sistema remoto con nomi di file univoci. |
system | Mostra il sistema operativo sul sistema remoto. |
tenex | Imposta il tipo di trasferimento file per consentire la connessione a macchine TENEX. |
tick | Attiva/disattiva il contatore dei byte di stampa durante i trasferimenti. |
trace | Attiva/disattiva la traccia dei pacchetti. |
type | Imposta un tipo di trasferimento file. |
umask | Imposta una maschera di autorizzazione predefinita per la macchina locale. |
user | Fornire nome utente e password per il server FTP remoto. |
verbose | Attiva/disattiva output dettagliato. |
Come usare il comando ftp in Linux
Il ftp
comando connette un sistema informatico a un server remoto utilizzando il protocollo FTP. Una volta connesso, consente inoltre agli utenti di trasferire file tra la macchina locale e il sistema remoto e di gestire file e directory sul sistema remoto.
Stabilire una connessione FTP
Per stabilire una connessione FTP a un sistema remoto, utilizzare il ftp
comando con l'indirizzo IP del sistema remoto:
ftp [IP]
Ad esempio, la connessione a un server remoto con l'indirizzo IP 192.168.100.9 :
ftp 192.168.100.9
Accedi al server FTP
Dopo aver avviato una connessione a un sistema remoto utilizzando il ftp
comando, l'interfaccia FTP richiede di inserire un nome utente e una password per accedere:
Inserendo le credenziali richieste si accede e si avvia l'interfaccia FTP. In questo esempio, stiamo effettuando l'accesso come phoenixnap utente:
L'interfaccia FTP è ora attiva e pronta per eseguire i comandi:
Lavorare con le directory su un sistema remoto
Utilizzando FTP, puoi eseguire la gestione delle directory di base sul sistema remoto, come la creazione di directory, lo spostamento da una directory di lavoro a un'altra e l'elenco dei contenuti delle directory.
Elenca directory
L'interfaccia FTP consente di elencare il contenuto di una directory su un sistema remoto utilizzando ls
comando:
ls
Utilizzando il comando senza alcuna opzione viene visualizzato il contenuto della directory di lavoro corrente del sistema remoto. In questo esempio, quella è la Casa directory:
Specificando il percorso di una directory come argomento per ls
comando mostra il contenuto di quella directory:
ls [path to directory]
Ad esempio, elencare il contenuto dell'Esempio directory:
ls Example
Aggiungendo il nome di un file di testo alla fine di ls
Il comando salva il contenuto di una directory in quel file:
ls [path to directory] [file name]
Ad esempio:
ls Example listing.txt
Questa sintassi del comando richiede di digitare Y
e premi Invio per confermare il salvataggio del file di testo:
L'apertura del file di testo rivela il contenuto della directory:
La dir
e nlist
i comandi sono alternativi a ls
comandare e lavorare allo stesso modo. L'interfaccia FTP consente inoltre di elencare il contenuto di più directory utilizzando il mls
comando:
mls [directory 1] [directory 2] .. [directory n]
Ad esempio, l'esempio seguente elenca il contenuto di Esempio e Esempio2 :
mls Example Example2 -
Come ls
comando, il mls
comando consente agli utenti di salvare il contenuto in un file di testo. Questo comando considera l'ultimo argomento come il nome del file di testo. Se desideri elencare i contenuti della directory senza salvarli in un file di testo, sostituisci il nome del file con un trattino (-
).
Il mdir
il comando funziona come mls
comando ma offre un output più dettagliato:
mdir Example Example2 -
Cambia directory
Usa il cd
comando per cambiare la directory di lavoro corrente sul sistema remoto:
cd [path to directory]
Ad esempio, passando all'Esempio directory:
cd Example
Usa il cdup
comando per passare al genitore della directory di lavoro corrente. In questo esempio, ci spostiamo dall'Esempio directory nella Home directory:
cdup
Crea directory
Usando il mkdir
comando consente di creare una directory sul sistema remoto:
mkdir [directory name]
Nell'esempio seguente, creiamo una directory denominata Example3 :
mkdir Example3
Scarica file tramite FTP
Per trasferire un file da un sistema remoto alla macchina locale, usa il get
o recv
comando.
get [remote file name]
O
recv [remote file name]
Nell'esempio seguente, trasferiamo file_esempio.txt alla macchina locale.
get example_file.txt
Per trasferire file_esempio.txt e salvalo come example.txt sul computer locale, utilizzare:
get example_file.txt example.txt
Il trasferimento di un file da una directory specifica richiede di spostarti in quella directory:
cd Example
get test01.txt
Il mget
Il comando consente di trasferire più file contemporaneamente. Ad esempio, il trasferimento di test01.txt , test02.txt e test03.txt dall'Esempio directory:
mget test01.txt test02.txt test03.txt
Carica file tramite FTP
Usa il put
o send
comando per trasferire un file dalla macchina locale a un sistema remoto. Entrambi i comandi utilizzano la stessa sintassi di base:
put [local file name]
send [local file name]
Per trasferire example01.txt al sistema remoto, utilizzare:
put example01.txt
Per caricare example01.txt al sistema remoto come sample01.txt , usa:
put example01.txt sample01.txt
Spostarsi in una directory specifica ti consente di trasferire file da quella directory:
cd Directory
put example.txt
Usa il mput
comando per trasferire più file al sistema remoto. Ad esempio, trasferisci test04.txt , test05.txt e test06.txt con:
mput test04.txt test05.txt test06.txt
Rinomina file
Usa il rename
comando per rinominare i file sul server remoto. Il rename
comando utilizza la seguente sintassi:
rename [old file name] [new file name]
Ad esempio, rinominando sample01.txt a file_campione01.txt :
rename sample01.txt sample_file01.txt
L'esecuzione corretta del comando produce il seguente output:
Usa il rename
comando per cambiare anche i nomi delle directory.
Nell'esempio seguente, l'Esempio3 la directory viene rinominata in Esempio03 :
rename Example3 Example03
Elimina file
Il delete
comando consente di eliminare un file sul sistema remoto. Utilizza la seguente sintassi:
delete [file name]
Ad esempio, eliminando file_campione01.txt :
delete sample_file01.txt
Usando il mdelete
comando consente di eliminare più file contemporaneamente aggiungendo i nomi dei file dopo il comando:
mdelete test04.txt test05.txt test06.txt
Un altro metodo consiste nell'usare mdelete
comando con un carattere jolly. Ad esempio, per eliminare tutti i .txt file, usa:
mdelete *.txt
Chiudi la connessione FTP
Usa il bye
, exit
o close
comando per terminare la connessione FTP e uscire dall'interfaccia.
Usando il disconnect
il comando chiude la connessione senza uscire dall'interfaccia.