Konfigurer NFS-mounts i macOS til netværkslagring
Har du nogensinde bandet over langsomme filoverførsler, ustabile SMB-shares eller Finder-vinduer, der fryser midt i arbejdet? Så er det tid til at give Network File System - bedre kendt som NFS - en chance
NFS er en gammel traver fra UNIX-verdenen, men med de rette indstillinger på macOS kan protokollen levere uhyggeligt hurtig, stabil og sikker adgang til dit NAS- eller Linux-drevede lagringsmiljø.
I denne guide på IT Forum Danmark viser vi, hvordan du på få minutter kan:
- Teste et NFS-share direkte fra Terminalen,
- Automatisere permanente mounts med autofs,
- Undgå klassiske faldgruber som Permission denied og Stale file handle,
- Finpudse sikkerhed, firewall-porte og performance-tweaks, så både M-chips og Intel-Macs kører problemfrit.
Uanset om du er udvikler med behov for lynhurtige builds, videoredaktør på jagt efter jævne 4K-afspilninger eller bare vil dele filer på hjemmenetværket uden bøvl, finder du svarene her. Spænd sikkerhedsselen - vi dykker ned i NFS-verdenen og viser, hvordan du får mest muligt ud af din macOS-maskine.
Hvad er NFS på macOS – forudsætninger, anvendelser og faldgruber
NFS (Network File System) har været en hjørnesten i UNIX-verdenen siden 1980’erne, og i macOS følger der både en klient og en række administrationsværktøjer med out-of-the-box. Selvom Apple i dag promoverer SMB som standard for fildeling, er NFS stadig uundværlig til POSIX-korrekte workflows, store mediearkiver, datalagring i klynge-miljøer og når du har brug for en lettilgængelig måde at dele filsystemer mellem Linux-, BSD- og macOS-maskiner.
Nfs v3 vs. Nfs v4 på macos
| Funktion | NFS v3 | NFS v4 |
|---|---|---|
| Transport | UDP eller TCP | Kun TCP (bedre stabilitet) |
| Portmapper (RPC 111) | Påkrævet | Ikke nødvendig - én port (2049) |
| Stateful/Stateless | Stateless | Stateful (lock-tracking, delegation) |
| Sikkerhed | UID/GID + resvport
|
Kerberos, ACL’er, fsid + strong security |
| Ydelse | Lav overhead, men ingen bundtet I/O | Bedre pipelining og caching |
macOS monterer som udgangspunkt v3, men du kan tvinge v4 med mount-optionen vers=4. Vælg v4 når du har brug for Kerberos-autentificering, firewall-venlig én-portsdrift eller mere avancerede fil-locks. Til ældre NAS’er eller blandede miljøer kan v3 stadig være det mest kompatible valg.
Hvornår giver nfs mere mening end smb?
- Høj I/O-gennemstrømning: videoredigering, scientific computing eller virtualiserings-backends med sekventiel adgang.
-
UNIX-rettigheder: når korrekte
uid/gidog chmod/chown er kritisk. -
Automatiseret mounting: kombinationen af
autofsog NFS minimerer “server not available”-popups i Finder. - Enkelhed: færre tunables end SMB og ingen behov for NetBIOS eller mDNS for at annoncere shares.
Omvendt er SMB ofte bedre til heterogene miljøer med Windows-klienter, avancerede ACL’er eller hvis du har brug for indlejret kryptering, som først kommer i NFS v4.2 (ikke understøttet af macOS per skrivende stund).
Nødvendige forudsætninger
- Stabilt netværk på mindst gigabit - TCP-baseret NFS lider mindre under pakketab, men latency bliver stadig hurtigt en flaskehals.
-
Serverkonfiguration: eksportér stier med korrekt
rw/ro,no_root_squash-overvejelse og evt.fsidfor v4. -
UID/GID-mapping: macOS bruger som standard lokale UID’er. Sørg for enten konsistent /etc/passwd eller en central directory-tjeneste (LDAP/AD) - ellers ender filer med forkerte ejere (
nobody). - Firewall-porte: 2049/TCP og 111/TCP+UDP (v3) skal være åbne. Ved v4 kan du nøjes med 2049.
-
Kerberos-infrastruktur (valgfrit): For
sec=krb5kræver server og klient korrekt tidssynkronisering (NTP) og adgang til KDC.
Centrale begreber i macos-implementeringen
-
Exports: linjer i
/etc/exports(på serveren) som definerer hvem der må mounte hvad og med hvilke rettigheder. -
Mount point: en tom mappe på klienten, typisk under
/Volumes, hvor filsystemet bliver tilgængeligt. -
autofs: macOS’ automatiske mount-dæmon. Ved at redigere
/etc/auto_masterkan du sørge for at NFS-shares monteres on-demand og forsvinder, når de ikke bruges.
Nyttige værktøjer til diagnosticering
| Kommando | Hvad den gør | Eksempel |
|---|---|---|
showmount -e server | Viser eksporterede NFS-shares samt adgangs-kontrol | showmount -e nas.local |
rpcinfo -p server | Lister RPC-tjenester (inkl. NFS) og tilhørende porte/versioner | rpcinfo -p 10.0.0.5 |
nfsstat -m | Viser aktive mounts og de options der er brugt | nfsstat -m | grep /Volumes/media |
Typiske faldgruber
-
“Permission denied”: klientens IP eller subnet er ikke godkendt i
/etc/exports, ellerroot_squashforhindrer root-skrivning. -
UID-mismatch: filer vises som
501ellernobody. Løsning: synkronisér bruger- og gruppe-ID’er mellem server og klient. - Stale file handle: opstår når filer slettes/omdøbes på serveren, mens klienten har dem åbne, eller når serveren genstarter uden at klienten remounter.
-
Resvport-krav: nogle servere kræver
resvport(privilegieret port < 1024). macOS bruger det ikke per default; angiv optionen manuelt.
Med ovenstående på plads er du rustet til at gå videre til selve mounting-kommandoerne og den permanente integration via autofs, som vi dækker i de næste afsnit.
Midlertidig NFS-mount fra Terminalen (test og engangsbrug)
Følg guiden herunder, når du hurtigt vil teste en NFS-share eller lave et engangs-mount, som ikke skal overleve en genstart.
1. Opret et midlertidigt mount-punkt
- Åbn Terminal (Applications ▸ Utilities).
- Opret en mappe i
/Volumes(kun root kan skrive her):
sudo mkdir -p /Volumes/testshare
2. Mount filsystemet
macOS har to indgange til NFS:
-
mount_nfs- den “rå” kommando med alle NFS-options. -
mount- wrapper, som automatisk kaldermount_nfsved-t nfs.
Typisk syntax:
sudo mount -t nfs -o vers=3,tcp,rsize=65536,wsize=65536,resvport \servernavn.eksempel.com:/export/data /Volumes/testshare| Option | Forklaring |
|---|---|
vers=3 |
Brug NFSv3 (til ældre NAS’er). Sæt vers=4 for NFSv4. |
tcp |
Tving TCP i stedet for UDP - mere stabilt på moderne net. |
rsize/wsize=65536 |
Bufferstørrelser (læse/skrive) for bedre performance. |
resvport |
Gør klienten til at bruge en “privileged” port (<1024) - flere servere kræver det. |
NFSv4-eksempel med Kerberos på port 2049:
sudo mount_nfs -o vers=4,sec=krb5p,tcp,resvport 10.0.0.20:/srv/media /Volumes/testshare3. Verificér at mountet virker
-
Disk-oversigt:
df -h /Volumes/testshare -
Aktive NFS-mounts:
nfsstat -m
4. Afmontering
sudo umount /Volumes/testsharesudo rmdir /Volumes/testshare # Oprydning (valgfrit)5. Hurtig fejlfinding
| Symptom | Årsag & løsning |
|---|---|
mount_nfs: Permission denied |
|
Operation not permitted |
|
Stale file handle |
|
Med ovenstående trin kan du hurtigt be- eller afkræfte om både netværk, rettigheder og performance er som forventet, før du sætter et permanent mount op med autofs.
Permanente NFS-mounts med autofs i macOS
macOS har siden 10.11 (El Capitan) haft en strammere fortolkning af /etc/fstab og System Integrity Protection (SIP). Selv om /etc/fstab stadig virker til enkelte formål, frarådes den til NFS, fordi:
- Posterne fortolkes kun ved boot - et fejlbehæftet mount kan give lang opstartstid.
- macOS kan ignorere eller omskrive
fstab, når systemopdateringer køres. - autofs håndterer tidsudløb, netværkssøvn og «on-demand» mounts langt mere elegant.
Skridt-for-skridt: Konfigurer autofs
-
Åbn /etc/auto_master
sudo nano /etc/auto_master
Tilføj (eller fjern kommentartegn fra) linjen:/-auto_nfs-nobrowse
Direkte-mappet «/-» betyder, at vi selv bestemmer absolutte mount-punkter. -nobrowse skjuler dem i Finder sidepanelet.
-
Opret hjælpe-mappingen /etc/auto_nfs
sudo nano /etc/auto_nfs
Læg én linje pr. share; eksempel:/Volumes/media-fstype=nfs,resvport,vers=3,tcp,rw,rsize=65536,wsize=65536,nosuid,nodev,nobrowse10.0.0.5:/export/media
- /Volumes/media - lokalt mount-punkt.
- -fstype=nfs,… - options (se forklaring nedenfor).
- 10.0.0.5:/export/media - serverens eksport.
-
Genindlæs tabellerne
sudo automount -vcDu bør se beskeder som mount_nfs: ... mounted. Hvis intet mountes, forsøger autofs først ved adgang - fx
ls /Volumes/media.
Valg af nøgle-options
-
vers=3/vers=4: Vælg v3 for maksimal kompatibilitet, v4 for bedre sikkerhed og færre porte. -
tcp: Anvendes som standard; giver stabilitet, især på Wi-Fi. -
resvport: Kræver, at klienten bruger en privilegeret port (<1024). Mange NFS-servere nægter ellers adgang. -
rsize/wsize=65536: Bufferstørrelser; 64 kB er ofte et sikkert valg på gigabit-netværk. -
nosuid,nodev: Deaktiverer SUID-bits og enheds-filer = mindre angrebsflade. -
nobrowse: Mountet ses ikke i Finders sidepanel, men er stadig tilgængeligt via ⇧⌘G eller sti.
Verifikation & daglig brug
-
df -h | grep /Volumes/media- bekræfter, at mountet er aktivt. -
nfsstat -m- viser aktuelle parametre, statistik og eventuelle fejl. - Finder cachetømning: Hvis mappen ikke dukker op, tryk ⌘⌥⎋ > Finder > Genstart.
- Spotlight indekserer som standard NFS-shares. Ekskludér evt. via Systemindstillinger > Spotlight > Fortrolighed.
Typiske fejlkilder
-
Permission denied: Serveren accepterer ikke din
resvporteller dit UID/GID. -
Stale NFS file handle: Serveren er genstartet eller export er ændret - kør
sudo automount -vc. - Operation not permitted: SIP blokering - sikre dig, at du ikke skriver direkte i beskyttede systemstier.
Når du skal redigere eller fjerne mounts
Ret blot linjerne i /etc/auto_nfs og genindlæs med sudo automount -vc. Hvis du fjerner et mount-punkt, så umount /Volumes/media først - ellers kan Finder/Spotlight holde et åbent «greb», som forhindrer af-montering.
Med autofs får du altså dynamiske, sikre og robuste NFS-mounts, der overlever både netværkssøvn og macOS-opdateringer - uden at rode i systemets inderste.
Fejlfinding, sikkerhed og ydelsesoptimering
Når et NFS-share pludselig hænger eller nægter at mounte, er den hurtigste vej til ro i sindet at samle fakta fra både klient og server.
-
Live-logs på macOS
Ovenstående viser, hvad$ log stream --predicate 'subsystem == "com.apple.nfs"' --info$ log stream --predicate 'subsystem == "com.apple.Automount"' --infomount_nfsogautomountdreelt forsøger, og hvorfor de evt. fejler. -
Tjek eksporten på serveren
Får du “RPC: Program not registered”, tyder det på, at$ showmount -e nfs-server.localExport list for nfs-server.local:/srv/media 192.168.1.0/24rpcbind/ port 111 er blokeret på serveren. -
Er serverens NFS-tjenester i luften?
Mangler port 2049 (nfs) eller 20048/38843 (mountd) får klienten ingen svar.$ rpcinfo -p nfs-server.local program vers proto port 100003 3 tcp 2049 nfs 100005 3 tcp 38843 mountd -
Hvad siger klienten om sine mounts?
Bemærk$ nfsstat -m/Volumes/media from nfs-server.local:/srv/media Flags: vers=4,proto=tcp,rsize=65536,wsize=65536,hard, ...vers,protoog evt.resvport- netop de felter giver ofte fejl, hvis server og klient er uenige. -
Typiske fejl og årsager
-
Permission denied - IP eller UID/GID er ikke tilladt i serverens
/etc/exports. -
Operation not permitted - prøver du at mounte uden
resvport, mens serveren kræver det. -
Stale file handle - share er re-eksporteret eller rebootet;
umountog montér igen.
-
Permission denied - IP eller UID/GID er ikke tilladt i serverens
Sikkerhedshensyn
NFS er som standard langt fra “nul-konfigureret sikkert”. Du bør som minimum overveje følgende:
-
Begræns eksportstier - lad aldrig
/eller/homevære tilgængelig ukritisk. Brug præcise stier og CIDR/IP-ranges. -
ro vs. rw - sæt shares til
ro, medmindre skriveadgang er påkrævet. Kombinér evt. medmaproot=nobody. - nosuid,nodev - macOS respekterer disse mount-flags, der forhindrer kørsel af setuid-binærer og blok-/tegn-devices fra sharet.
-
Firewall - åbne porte 111/tcp+udp (rpcbind) og 2049/tcp. Brug faste
mountd/lockdporte hvis din firewall kræver det. -
Kerberos-autentificering
macOS understøttersec=krb5(auth),krb5i(auth+integrity) ogkrb5p(auth+privacy).
Ulempe: krypteret trafik koster CPU og kan barbere 10-30 % af throughput. -
reserved port - Mange servere kræver
mount -o resvport; macOS sætter den ikke implicit for NFSv4.
Ydelsesoptimering
- Brug TCP, ikke UDP - på moderne netværk giver TCP færre retransmissions og ingen fragmentering.
- rsize/wsize=65536 (eller højere på 10G-net) - større blokke reducerer roundtrips; check at serveren accepterer.
-
actimeo vs.
noac
noacslår cache helt fra (tungt, men konsistent). Ofte rækkeractimeo=2for næsten realtime opdateringer. -
Locks - NFSv3 kræver separate
lockd/statd, NFSv4 har indbygget lock-manager. Badlocks = hængende apps. -
netværkssøvn på bærbare - brug
soft,intr,timeo=20,retrans=3så macOS giver slip i stedet for at fryse ved vågning. -
Stabile mounts
- Fast IP til serveren, ingen mDNS afhængighed.
- Placér mounts under
/Volumesviaautofs; Finder reagerer hurtigere og Spotlight forstår, at det er et “udefra” drev. - Hold klient og server på samme NFS-version for at undgå feature mismatch (f.eks. delegations eller ACLs).
Med ovenstående tjekliste kommer du langt med at holde NFS-shares stabile, sikre og hurtige på macOS - uden at skulle ty til mere eksotiske løsninger.
Indholdsfortegnelse
- Hvad er NFS på macOS – forudsætninger, anvendelser og faldgruber
- Nfs v3 vs. Nfs v4 på macos
- Hvornår giver nfs mere mening end smb?
- Nødvendige forudsætninger
- Centrale begreber i macos-implementeringen
- Nyttige værktøjer til diagnosticering
- Typiske faldgruber
- Midlertidig NFS-mount fra Terminalen (test og engangsbrug)
- 1. Opret et midlertidigt mount-punkt
- 2. Mount filsystemet
- 3. Verificér at mountet virker
- 4. Afmontering
- 5. Hurtig fejlfinding
- Permanente NFS-mounts med autofs i macOS
- Skridt-for-skridt: Konfigurer autofs
- Valg af nøgle-options
- Verifikation & daglig brug
- Typiske fejlkilder
- Når du skal redigere eller fjerne mounts
- Fejlfinding, sikkerhed og ydelsesoptimering