Dans cette leçon, tu vas découvrir comment partager des fichiers entre machines Linux sur un réseau local grâce à NFS (Network File System). C'est l'équivalent Linux du partage Windows SMB, mais bien plus simple et efficace entre systèmes Unix.
NFS est un protocole de partage de fichiers en réseau. Il permet à une machine (le serveur) d'exporter un dossier, et à d'autres machines (clients) de le monter localement comme s'il était sur leur propre disque.
Cas d'usage courants :
💡 Note : NFS est conçu pour les réseaux locaux (LAN). Pour un accès depuis Internet, utilise VPN + NFS ou préfère un protocole sécurisé comme SSHFS/SFTP.
# Ubuntu / Debian
sudo apt update && sudo apt install nfs-kernel-server# Fedora / CentOS / RHEL
sudo dnf install nfs-utilssudo mkdir -p /srv/nfs/partage
sudo chown nobody:nogroup /srv/nfs/partage
sudo chmod 755 /srv/nfs/partageLe fichier /etc/exports définit quels dossiers sont partagés et à qui :
sudo nano /etc/exportsAjouter une ligne par partage :
# Format : dossier_client IP_client(options)
# Exemple : partage accessible en lecture/écriture pour 192.168.1.0/24
/srv/nfs/partage 192.168.1.0/24(rw,sync,no_subtree_check)Options principales :
rw — lecture et écriture (par défaut : read-only)ro — lecture seule uniquementsync — écrit sur le disque avant de confirmer (plus sûr)no_subtree_check — évite des vérifications qui peuvent causer des lenteursno_root_squash — root du client a les droits root sur le partage (⚠️ sécurité)⚠️ Sécurité : Par défaut,
root_squashest activé : l'utilisateur root du client est converti ennobody. C'est bien pour la sécurité. N'utiliseno_root_squashque dans un réseau de confiance.
# Exporter les partages et redémarrer le service
sudo exportfs -a
sudo systemctl restart nfs-kernel-serversudo exportfs -v# Ubuntu / Debian
sudo apt update && sudo apt install nfs-common# Fedora / CentOS / RHEL
sudo dnf install nfs-utils# Créer le point de montage local
sudo mkdir -p /mnt/nfs/partage
# Monter le partage NFS
sudo mount 192.168.1.100:/srv/nfs/partage /mnt/nfs/partageRemplace 192.168.1.100 par l'adresse IP réelle de ton serveur NFS.
df -h | grep nfs# Tester l'accès
ls -la /mnt/nfs/partage/Pour monter automatiquement au démarrage, ajoute une ligne dans /etc/fstab :
sudo nano /etc/fstab# Ajouter cette ligne :
192.168.1.100:/srv/nfs/partage /mnt/nfs/partage nfs defaults,_netdev 0 0_netdev = attend que le réseau soit prêt avant de monter (important pour NFS).
# Démonter le partage
sudo umount /mnt/nfs/partage
# Forcer si ocupado (si des fichiers sont ouverts)
sudo umount -f /mnt/nfs/partage
# Lazy unmount (détache immédiatement, processus continuent)
sudo umount -l /mnt/nfs/partage| Commande | Description |
|---|---|
showmount -e localhost | Lister les exports sur le serveur |
showmount -e 192.168.1.100 | Voir les partages NFS d'un serveur distant |
mount | grep nfs | Voir tous les montages NFS actifs |
sudo exportfs -v | Détails des exports actifs (serveur) |
sudo exportfs -ra | Réappliquer tous les exports après modification |
Objectif : Partager un dossier entre deux machines sur ton réseau local.
Sur la machine SERVEUR :
nfs-kernel-server/srv/nfs/public/etc/exports :/srv/nfs/public 192.168.1.0/24(ro,sync,no_subtree_check)sudo systemctl restart nfs-kernel-serverecho "Salut depuis le serveur NFS" | sudo tee /srv/nfs/public/test.txtSur la machine CLIENT :
nfs-commonsudo mount 192.168.1.XX:/srv/nfs/public /mnt/nfs/publiccat /mnt/nfs/public/test.txtsudo umount /mnt/nfs/public| Concept | Récapitulatif |
|---|---|
| NFS | Network File System — partage de fichiers via réseau local |
| Paquet serveur | nfs-kernel-server |
| Paquet client | nfs-common |
| Config serveur | /etc/exports |
| Montage manuel | mount IPserveur:/dossier /point/montage |
| Montage auto | Ligne dans /etc/fstab avec _netdev |
| Options courantes | rw/ro, sync, no_subtree_check |
NFS est un outil essentiel pour tout environnement Linux multi-machines. Simple, rapide et bien intégré — il remplace avantageusement les clés USB pour partager des fichiers entre serveurs ! 🚀