NFS è stato sviluppato da Sun Microsystems per condividere file e directory tra i loro sistemi. NFS consente ai sistemi su una rete di condividere file tramite la rete TCP/IP. Funziona in modo client-server in cui il sistema che ha la directory condivisa è noto come server mentre il sistema che accede alla directory condivisa è noto come client. Il client può montare la directory di condivisione dal server NFS sul proprio sistema che appare come una partizione del disco locale. Un client può quindi leggere/scrivere file sul server NFS remoto in base alle autorizzazioni assegnate dal server NFS. Alcune delle caratteristiche di NFS sono le seguenti:
- L'utente può accedere a file remoti in locale
- Non è necessario che entrambe le macchine abbiano lo stesso sistema operativo
- Offre una soluzione di archiviazione centralizzata
- L'utente può archiviare i propri dati in una posizione centrale, quindi consente di risparmiare spazio di archiviazione locale.
In questo post, ti mostreremo come installare il server e il client NFS, esportare condivisioni e montare/smontare la condivisione NFS sul client.
Nota:
Per la dimostrazione, utilizzeremo le due macchine con i seguenti dettagli:
Host NFS (Debian 10)
- Nome host:nfs
- IP:192.168.72.158
Client NFS (Debian 10)
- Nome host:cliente
- IP:192.168.72.159
Nota:i passaggi qui menzionati sono stati testati su Debian 10 (sistema Buster).
Installazione e configurazione del server NFS
Nella sezione seguente, installeremo prima il server NFS sulla nostra macchina host. Quindi imposteremo due directory di condivisione che sono /var/nfs-public e /var/nfs-docs per la condivisione su macchine client. Iniziamo.
Fase 1:installa il server NFS sulla macchina host
Affinché un sistema possa essere configurato come server NFS, dovrai installare nfs-kernel-server pacchetto su di esso. Sul computer host NFS, innanzitutto, aggiorna l'indice del repository locale utilizzando il comando seguente in Terminale:
$ sudo apt update
Quindi installa nfs-kernel-server utilizzando il comando seguente:
$ sudo apt install nfs-kernel-server
Ora ti potrebbe essere fornito il s/n opzione per continuare l'installazione. Premi y per continuare, dopodiché il sistema inizierà l'installazione del nfs-kernel-server .
Una volta che il nfs-kernel-server è installato, puoi verificare l'installazione utilizzando il comando seguente in Terminale:
$ dpkg -l | grep nfs-kernel-server
Fase 2:crea una directory condivisa sull'host
Ora, crea una directory sull'host che desideri impostare per la condivisione con i client. Abbiamo creato due directory /var/nfs –documenti e /var/nfs-public con diverse impostazioni di configurazione.
$ sudo mkdir -p /var/nfs-docs
$ sudo mkdir -p /var/nfs-public
Per il /var/nfs-public directory, ne modificheremo la proprietà in nobody:nogroup utilizzando il comando seguente:
$ sudo chown nobody:nogroup /var/nfs-public
Per verificare se la proprietà è cambiata, utilizza il comando seguente:
$ ls -la /var/nfs-public
Per /var/nfs-docs , non cambieremo la proprietà.
Fase 3:esporta le condivisioni
Ora configureremo il file di esportazione del server NFS per la condivisione delle risorse. Il file di esportazione NFS è /etc/exports che può essere modificato come segue:
$ sudo nano /etc/exports
Ora in questo file specificheremo le directory che vogliamo condividere e il client che può accedervi. Puoi aggiungere voci nel file di esportazione NFS utilizzando la sintassi seguente:
directory host1(options) host2(options)...hostN(options)...
Dove
- directory è la directory che vuoi condividere con i client.
- ospite è l'indirizzo IP/sottorete del client/sottorete con cui si desidera condividere. Per trovare l'indirizzo IP della tua macchina client, puoi visitare la nostra guida su Come trovare il tuo indirizzo IP.
- opzioni sono alcune delle opzioni di configurazione che specificano come condividere le risorse.
Per entrambe le nostre directory /var/nfs-docs e /var/nfs-public , abbiamo aggiunto le seguenti voci in /etc/exports file:
/var/nfs-public 192.168.72.159(rw,sync,no_subtree_check) /var/nfs-docs 192.168.72.159(rw,sync, no_root_squash,no_subtree_check)
Nel file di configurazione sopra, entrambe le voci indicano al server NFS di condividere il /var/nfs-public e /var/nfs-docs directory con il client NFS 192.168.72.159 con rw (lettura e scrittura) autorizzazione. Nella seconda voce, abbiamo aggiunto il no_root_squash che consente al client di avere i permessi di root anche sul server NFS. Una volta terminate le configurazioni di esportazione, salva e chiudi /etc/exports file.
Ora per esportare le condivisioni, dovrai riavviare il server NFS. Ecco il comando per farlo:
$ sudo systemctl restart nfs-kernel-server
Ogni volta che apporti modifiche in /etc/exports file, assicurati di riavviare il servizio per applicare le modifiche alla configurazione.
In alternativa, puoi utilizzare questo comando per esportare le condivisioni:
$ sudo exportfs -a
Per verificare se il server NFS è in esecuzione senza problemi, controlla il suo stato utilizzando il comando seguente in Terminale:
$ sudo systemctl status nfs-kernel-server
Fase 4:imposta il firewall sul server NFS
Se un firewall è abilitato sul server NFS, dovrai configurarlo per consentire ai client di connettersi alla porta NFS 2049 . Per verificare se il firewall è abilitato sul server NFS, immetti il comando seguente in Terminale:
$ sudo ufw status
Nel seguente output, puoi vedere il attivo stato che mostra che il firewall è abilitato.
Ora per consentire ai clienti di portare NFS 2049 , dovrai aggiungere una regola nel firewall. Emetti il comando seguente in Terminale per farlo:
$ sudo ufw allow from client_ip/subnet_ID to any port nfs
Ad esempio, per consentire l'intera sottorete 192.168.72.0/24 accesso alla porta NF 2049 , il comando sarebbe:
$ sudo ufw allow from 192.168.72.0/24 to any port nfs
Quindi per verificare se la regola è stata aggiunta correttamente, controlla lo stato del firewall:
$ sudo ufw status
La voce evidenziata nell'output seguente mostra la connessione da 192.168.72.0/24 è consentito alla porta 2049 .
Ora abbiamo completato le configurazioni sul Server NFS. Passiamo all'installazione e alla configurazione del client NFS.
Installazione e configurazione del client NFS
Nella sezione seguente, installeremo prima il client NFS sul nostro computer client. Quindi imposteremo due punti di montaggio che sono /media/public e /media/docs per il montaggio delle condivisioni NFS remote /var/nfs-public e /var/nfs-docs . Iniziamo.
Fase 1:installa il pacchetto client NFS sulla macchina client
Affinché un sistema possa essere configurato come client NFS, dovrai installare nfs-common pacchetto su di esso. Sul computer client NFS, innanzitutto, aggiorna l'indice del repository locale utilizzando il comando seguente in Terminale:
$ sudo apt update
Quindi installa nfs-common utilizzando il comando seguente:
$ sudo apt install nfs-common
Ora ti potrebbe essere fornito il s/n opzione per continuare l'installazione. Premi y per continuare, dopodiché il sistema inizierà l'installazione di nfs-common pacchetto.
Fase 2:crea punti di montaggio
Sul sistema client, sarà necessario creare un punto di montaggio per montare le condivisioni che si trovano sul server NFS. Sul nostro client, abbiamo creato le due directory in /media per i nostri punti di montaggio:
$ sudo mkdir -p /media/docs $ sudo mkdir -p /media/public
Fase 3:monta manualmente le condivisioni NFS sul client
Ora monteremo le condivisioni NFS sui punti di montaggio che abbiamo creato nel passaggio precedente. Ecco la sintassi per farlo:
$ sudo mount NFS_server_IP:NFS_share client_mountpoint
Dove :
IP_server_NFS è l'indirizzo IP del server NFS
Condivisione_NFS è la condivisione situata sul server NFS
punto di montaggio_client è il punto di montaggio in cui vuoi montare la condivisione.
Dal nostro server NFS, abbiamo esportato due directory condivise che erano :/var/nfs-docs e /var/nfs-public . Sul nostro computer client monteremo una condivisione /var/nfs-docs su un punto di montaggio /media/documenti mentre l'altro condivide /var/nfs-public sul secondo punto di montaggio /media/public .
Abbiamo utilizzato i seguenti comandi per montare le condivisioni NFS sul client NFS.
$ sudo mount 192.168.72.158:/var/nfs-docs /media/docs $ sudo mount 192.168.72.158:/var/nfs-public /media/public
Ora per verificare se le directory condivise NFS sono state montate correttamente, emetti il comando "df –h" nel Terminale:
$ df -h
Ecco l'output del comando "df -h" che mostra due condivisioni NFS in basso.
Poiché abbiamo montato le condivisioni su /media directory, puoi anche accedere alle directory montate da File Manager.
Fase 4:montaggio automatico delle condivisioni NFS sul client all'avvio
Ogni volta che si riavvia il sistema client, sarà necessario montare manualmente la condivisione NFS utilizzando il comando mount. Questo va bene per una volta o per un uso occasionale. Tuttavia, se vuoi che le condivisioni NFS accedano continuamente, dovrai rendere permanente il montaggio usando /etc/fstab file.
Modifica /etc/fstab file:
$ sudo nano /etc/fstab
Ora aggiungi le voci per la tua condivisione NFS che desideri montare automaticamente:
192.168.72.158:/var/nfs-docs /media/docs nfs rw,sync,hard,intr 0 0 192.168.72.158:/nfs-public /media/public nfs rw,sync,hard,intr 0 0
Quindi salva e chiudi /etc/fstab file.
La prossima volta, al riavvio del sistema, il client monterà automaticamente le condivisioni NFS.
Test dell'accesso NFS
Ora testeremo l'accesso alle directory condivise NFS creando un nuovo file in ciascuna directory.
Nella macchina client, innanzitutto, crea un test1 file come sudo nel punto di montaggio locale /media/public :
$ sudo touch /media/public/test1
Ora controlla la proprietà del nuovo file:
$ ls -l /media/public/test1
Vedrai che la proprietà del file è nessuno utente e nessun gruppo gruppo. Anche se abbiamo creato il file come sudo sul computer client, ma il server NFS lo ha tradotto nella proprietà dell'host nobody:nogroup . Ciò significa che un utente root sul client non può eseguire l'attività amministrativa sulla directory condivisa del server.
Ora crea un test1 file come sudo nel secondo punto di montaggio locale /media/docs :
$ sudo touch /media/docs/test1
Se controlliamo la proprietà di questo file, vedrai che è di proprietà dell'utente root e del gruppo root. Questo perché abbiamo impostato no_root_squash opzione che consente all'utente root sulla macchina client di agire come root nella directory del server e può eseguire attività amministrative.
Ora sulla macchina del server NFS, controlla se puoi visualizzare entrambi i file.
Smontaggio della condivisione NFS dal computer client
Se non hai più bisogno della condivisione NFS, puoi smontarla dal sistema client. Per smontare le condivisioni NFS, digita umount seguito dal nome della directory in cui è montata la condivisione NFS.
$ umount /media/docs $ umount /media/public
Ecco come puoi configurare server e client NFS nel sistema Debian 10. In questo articolo, abbiamo spiegato come installare il server e il client NFS, configurare le directory condivise NFS e montare/smontare le condivisioni NFS sul sistema client. Potresti visitare il nostro post su Come configurare server e client NFS su Linux Mint 20.