NFS (Network File System) maakt het mogelijk om mappen via het netwerk te delen, zodat andere machines ze kunnen koppelen alsof het lokale schijven zijn. Handig voor homelabs, NAS-achtige opstellingen en gedeelde opslag tussen servers.
sudo dnf install nfs-utils
sudo systemctl enable --now nfs-server
sudo apt install nfs-kernel-server
sudo systemctl enable --now nfs-kernel-server
Maak de map aan die je wilt delen en stel de rechten in:
sudo mkdir -p /srv/nfs/data
sudo chown nobody:nobody /srv/nfs/data
sudo chmod 755 /srv/nfs/data
Gebruik
nogroupin plaats vannobodyop Debian-gebaseerde systemen:sudo chown nobody:nogroup /srv/nfs/data
Voeg de map toe aan /etc/exports:
sudo nano /etc/exports
Eén specifiek IP-adres toegang geven:
/srv/nfs/data 192.168.1.10(rw,sync,no_subtree_check)
Heel subnet toegang geven:
/srv/nfs/data 192.168.1.0/24(rw,sync,no_subtree_check)
Alleen-lezen voor iedereen op het subnet:
/srv/nfs/data 192.168.1.0/24(ro,sync,no_subtree_check)
Meerdere mappen:
/srv/nfs/data 192.168.1.0/24(rw,sync,no_subtree_check)
/srv/nfs/backup 192.168.1.5(rw,sync,no_subtree_check,no_root_squash)
| Optie | Betekenis |
|---|---|
rw | Lezen én schrijven |
ro | Alleen lezen |
sync | Schrijf direct naar schijf (veiliger) |
async | Schrijf gebufferd (sneller, minder veilig) |
no_subtree_check | Minder strikte padcontrole, voorkomt problemen bij hernoemen |
no_root_squash | Root op de client behoudt root-rechten op de server |
root_squash | Root op de client wordt omgezet naar nobody (standaard) |
all_squash | Alle gebruikers worden omgezet naar nobody |
Na het bewerken van /etc/exports:
sudo exportfs -arv
-a — exporteer alles in /etc/exports-r — herlaad de exports-v — toon wat er geëxporteerd wordtControleer de actieve exports:
sudo exportfs -v
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=rpcbind
sudo firewall-cmd --reload
sudo ufw allow from 192.168.1.0/24 to any port nfs
sudo ufw reload
Fedora / RHEL:
sudo dnf install nfs-utils
sudo mount -t nfs 192.168.1.1:/srv/nfs/data /mnt/nfs
Debian / Ubuntu:
sudo apt install nfs-common
sudo mount -t nfs 192.168.1.1:/srv/nfs/data /mnt/nfs
/etc/fstabVoeg toe aan /etc/fstab:
192.168.1.1:/srv/nfs/data /mnt/nfs nfs defaults,_netdev 0 0
De optie _netdev zorgt ervoor dat de koppeling pas plaatsvindt nadat het netwerk beschikbaar is.
Test de fstab-regel zonder te herstarten:
sudo mount -a
Op de client, om te zien wat een server aanbiedt:
showmount -e 192.168.1.1
Verbinding geweigerd of time-out:
# Controleer of de service draait
sudo systemctl status nfs-server # Fedora
sudo systemctl status nfs-kernel-server # Debian
# Controleer actieve exports
sudo exportfs -v
# Controleer RPC-services
rpcinfo -p
Rechtenprobleem op de client:
NFS werkt op basis van UID/GID. Zorg dat de gebruiker op client en server dezelfde UID heeft, of gebruik all_squash in combinatie met anonuid/anongid:
/srv/nfs/data 192.168.1.0/24(rw,sync,no_subtree_check,all_squash,anonuid=1000,anongid=1000)
Vergeet daarna niet opnieuw te exporteren:
sudo exportfs -arv