Originariamente sviluppato da Sun's Microsystems, NFS è l'acronimo di Network File System. È un protocollo distribuito che consente a un utente su un PC client di accedere ai file condivisi da un server remoto più o meno allo stesso modo in cui accederebbe ai file che si trovano localmente sul proprio PC. Il protocollo NFS fornisce un modo conveniente per condividere file su una rete locale (LAN). In questa guida, ti guideremo attraverso l'installazione del Server NFS su Ubuntu 20.04 LTS (Focal Fossa). Dimostreremo quindi come accedere ai file sul server da un sistema client.
Configurazione del laboratorio
NFS Server IP: 192.168.2.103 Ubuntu 20.04 Client System IP: 192.168.2.105 Ubuntu 20.04
Passaggio 1) Installa il pacchetto del server del kernel NFS
Per iniziare installeremo il pacchetto del server del kernel NFS su Ubuntu che, in effetti, lo trasformerà in un server NFS. Ma prima, aggiorniamo l'elenco dei pacchetti come mostrato.
$ sudo apt update
Successivamente, esegui il comando seguente per installare il pacchetto del server del kernel NFS.
$ sudo apt install nfs-kernel-server
Questo installa pacchetti aggiuntivi come keyutils, nfs-common, rpcbind e altre dipendenze necessarie affinché il server NFS funzioni come previsto.
Puoi verificare se il servizio nfs-server è in esecuzione come mostrato
$ sudo systemctl status nfs-server
Passaggio 2) Crea una condivisione di directory NFS
Il passaggio successivo sarà creare una condivisione di directory NFS. Questa è la directory in cui collocheremo i file da condividere nella rete locale. Lo creeremo nella directory /mnt/ come mostrato di seguito. Qui, la nostra directory di condivisione NFS si chiama /my_shares. Sentiti libero di assegnare qualsiasi nome alla tua directory.
$ sudo mkdir /mnt/my_shares
Poiché vogliamo che tutti i file siano accessibili a tutti i client, assegneremo la proprietà e le autorizzazioni della directory seguenti.
$ sudo chown nobody:nogroup /mnt/my_shares $ sudo chmod -R 777 /mnt/my_shares
Queste autorizzazioni sono ricorsive e si applicheranno a tutti i file e le sottodirectory che creerai.
Passaggio 3) Concedi al server NFS l'accesso ai client
Dopo aver creato la condivisione di directory NFS e aver assegnato le autorizzazioni e la proprietà richieste, è necessario consentire ai sistemi client di accedere al server NFS. Ci riusciremo modificando il file /etc/exports che è stato creato durante l'installazione del pacchetto nfs-kernel-server.
Quindi, apri il file /etc/exports.
$ sudo vi /etc/exports
Per consentire l'accesso a un singolo client, aggiungi la riga seguente e sostituisci il parametro client-IP con l'IP effettivo del client.
/mnt/my_shares client-IP(rw,sync,no_subtree_check)
Per aggiungere più clienti all'elenco, è sufficiente specificare più righe come mostrato:
/mnt/my_shares client-IP-1(rw,sync,no_subtree_check) /mnt/my_shares client-IP-2(rw,sync,no_subtree_check) /mnt/my_shares client-IP-3(rw,sync,no_subtree_check)
Inoltre, puoi specificare un'intera sottorete mostrata.
/mnt/my_shares 192.168.0.0/24 (rw,sync,no_subtree_check)
Ciò consente a tutti i client nella sottorete 192.168.0.0 di accedere al server. Nel nostro caso, concederemo a tutti i client l'accesso al server NFS come mostrato
/mnt/my_shares 192.168.2.0/24(rw,sync,no_subtree_check)
Esaminiamo brevemente le autorizzazioni e ciò che rappresentano.
- rw (Leggi e scrivi)
- sync (scrivi le modifiche sul disco prima di applicarle)
- no_subtree_check (Evita il controllo del sottoalbero)
Fase 4) Esporta la directory condivisa
Per esportare la directory e renderla disponibile, invocare il comando:
$ sudo exportfs -a
Passaggio 5) Configura la regola del firewall per il server NFS
Se sei dietro un firewall UFW, devi consentire il traffico NFS attraverso il firewall usando la sintassi mostrata.
$ sudo ufw allow from [client-IP o client-Subnet-IP] a qualsiasi porta nfs
Nel nostro caso, il comando apparirà come segue:
$ sudo ufw allow from 192.168.2.0/24 to any port nfs
Ora siamo tutti a posto con la configurazione del server NFS. Il passaggio successivo consiste nel configurare il client e verificare se la configurazione funziona. Quindi, procediamo e configuriamo il client.
Fase 5) Configura il sistema client
Ora accedi al sistema client e aggiorna l'indice del pacchetto come mostrato.
$ sudo apt update
Quindi, installa il pacchetto nfs-common come mostrato.
$ sudo apt install nfs-common
Quindi crea una directory nella cartella /mnt su cui monterai la condivisione NFS dal server.
$ sudo mkdir -p /mnt/client_shared_folder
Infine, monta la directory di condivisione NFS remota nella directory del client come segue.
$ sudo mount 192.168.2.103:/mnt/my_shares /mnt/client_shared_folder
Passaggio 6) Testare la configurazione della condivisione NFS
Per verificare se la nostra configurazione funziona, creeremo un file di test nella directory NFS come mostrato
$ cd /mnt/my_shares $ touch nfs_share.txt
Ora torniamo al nostro client e vediamo se riusciamo a vedere il file nella nostra directory montata
$ ls /mnt/client_shared_folder/
E voilà! Ecco il nostro file come mostrato nello snippet qui sotto. Questa è la conferma che la nostra configurazione è andata a buon fine.
Questo è tutto per oggi. Ci auguriamo che questa guida sia stata utile per te e che tu possa condividere comodamente i file utilizzando NFS sulla tua rete.