{ "meta": { "title": "NFS server i LXC | ProxMenux Dokumentation", "description": "Dela mappar via NFS från en Proxmox LXC-container med ProxMenux. Installerar nfs-kernel-server automatiskt och konfigurerar den gemensamma gruppen sharedfiles, /etc/exports, nätverks-ACL:er och fullständig avinstallation. Kräver en privilegierad container.", "ogTitle": "NFS server i LXC | ProxMenux Dokumentation", "ogDescription": "Kör en NFS-server i en privilegierad LXC med den gemensamma gruppen sharedfiles, nätverks-ACL:er och fullständig avinstallation." }, "header": { "title": "NFS server i LXC", "description": "Kör en NFS-kärnserver i en Proxmox LXC-container och dela mappar med andra datorer i nätverket. ProxMenux installerar nfs-kernel-server, konfigurerar den gemensamma gruppen sharedfiles så att flera privilegierade CT:er kan dela filer med samma grupp-ID, hanterar /etc/exports och erbjuder fullständig avinstallation.", "section": "Lagring & Dela · LXC" }, "privReq": { "title": "Privilegierad container krävs", "body": "nfs-kernel-server måste montera kärnans filsystem nfsd på /proc/fs/nfsd. Det kräver CAP_SYS_ADMIN i värdkärnans namnrymd, inte bara i containerns användarnamnrymd. Oprivilegierade LXC-containrar saknar denna förmåga: rpc.nfsd: Unable to access /proc/fs/nfsd errno 2 (No such file or directory); systemd markerar nfs-server.service som misslyckad på grund av ett beroende. Skriptet kräver därför en privilegierad CT och avbryter för oprivilegierade CT:er. Ett alternativ är att köra NFS-servern i en VM." }, "what": { "heading": "Vad detta gör", "body": "Detta är motsatsen till sidan om NFS-klienten: CT:n blir en NFS-server och delar en egen mapp med andra CT:er, Proxmox-värden, VM:ar eller fysiska datorer.", "diagramServerLabel": "LXC (privilegierad) - NFS server", "diagramServerDetail": "/mnt/data\n(mappen du delar)\n\nchown root:sharedfiles\nchmod 2775 (SGID)\n\nnfs-kernel-server\n+ rpcbind körs", "diagramClientLabel": "Valfri klient", "diagramClientDetail": "En annan CT, värden,\nVM, en fysisk maskin.", "diagramArrow": "NFS-export" }, "shared": { "heading": "Den gemensamma gruppen ”sharedfiles”", "body": "Innan du exporterar mappen skapar ProxMenux en grupp som heter sharedfiles med GID 101000 inuti containern, lägger till varje vanlig användare till den och ställer sedan in exportkatalogen till root:sharedfiles med läge 2775. 2 på framsidan är SGID-biten - varje fil eller mapp som skapas inuti ärver automatiskt sharedfiles-gruppen.", "gidTitle": "Varför GID 101000", "gidBody": "Med LXC:s standardmappning (+100000) visas värdens GID 101000 som GID 1000 i en oprivilegierad CT. Detta serverflöde använder en privilegierad CT utan förskjutning. Två privilegierade CT:er med sharedfiles på GID 101000 har därför samma numeriska grupp-ID.", "remapTitle": "Äldre skapande av ”remap_*”-användare hoppas över för privilegierade CT:er", "remapBody": "Den äldre grenen för oprivilegierade CT:er skulle skapa remap_<uid>-användare med UID <uid> + 100000, alla i sharedfiles, för vanliga användare och vanliga UID:n (33, 1000, 1001, 1002). Denna +100000-förskjutning gäller inte de privilegierade CT:er som krävs här, så skriptet hoppar över grenen. Det är väntat att remap_*-konton saknas i getent passwd och betyder inte att något är fel." }, "defaults": { "heading": "Standardexportalternativ - läs detta första", "warnTitle": "Standardalternativ inkluderar no_root_squash", "warnBody": "ProxMenux använder som standard rw,sync,no_subtree_check,'<'strong'>'no_root_squash'<'/strong'>'. Varje root-användare på en klient kan skriva som root på exporten. Använd detta endast i ett betrott hemnätverk. Om CT:n kan nås från ett obetrott nätverk (VPS eller obetrott VLAN), byt alternativet till root_squash i dialogen för egna alternativ." }, "opening": { "heading": "Öppna verktyget", "body": "Öppna Storage & Share Manager → Configure NFS Server in LXC i huvudmenyn. Endast privilegierade CT:er visas. Välj mål-CT:n; skriptet startar den om den är stoppad och avvisar oprivilegierade CT:er. Menyn har fem alternativ.", "imageAlt": "NFS Server Manager-menyn - Skapa / Visa / Ta bort / Status / Avinstallera" }, "howRuns": { "heading": "Hur manuset går (Skapa flöde)" }, "network": { "heading": "Nätverks-ACL — vilka klienter får montera?", "intro": "/etc/exports styr vilka klienter som får montera exporten. Dialogen har tre lägen:", "headerMode": "Läge", "headerValue": "Värde skrivet till /etc/exports", "headerWhen": "När man väljer den", "rows": [ { "mode": "Lokalt nätverk", "value": "192.168.0.0/16", "whenRich": "För vanliga hem- och småföretagsnät. Omfattar alla adresser under 192.168.*.*." }, { "mode": "Anpassad subnet", "value": "din CIDR (t.ex. 10.0.0.0/24)", "when": "När ditt LAN inte är i 192.168.x.x eller om du vill ha en hårdare omfattning." }, { "mode": "Ensam värd", "value": "din IP (till exempel 10.0.0.42)", "when": "Endast en viss dator får montera exporten. Mest begränsande." } ] }, "options": { "heading": "Exportalternativ förklarade", "headerOption": "Alternativ", "headerEffect": "Vad det gör", "rows": [ { "option": "rw / ro", "effect": "Tillåt läsning och skrivning eller endast läsning för anslutande klienter." }, { "option": "sync", "effectRich": "Bekräftar skrivbegäranden först när data finns på disk. Säkrare än async, men med lägre genomströmning." }, { "option": "no_subtree_check", "effect": "Hoppar över kontrollen vid varje begäran att filen fortfarande ligger i det exporterade underträdet. Det går snabbare och undviker problem när filer byter namn under pågående åtkomst." }, { "option": "no_root_squash", "effectRich": "Lita på root på klienten. En klient som monterar som root skriver som root på servern. Passar betrodda LAN, exempelvis när säkerhetskopieringsverktyg måste bevara ägare. Ersätt med root_squash om du inte litar helt på varje dator som nätverkets ACL tillåter." } ] }, "manual": { "heading": "Manuell motsvarande", "body": "Utför hela flödet manuellt. Varje kommando körs inne i CT:n via pct exec <ctid> -- eller pct enter <ctid>:" }, "view": { "heading": "Visa aktuell export", "body": "Visar /etc/exports inifrån CT:n utan kommentarer och tomma rader, med nätverks-ACL och alternativ för varje export. Användbart för att kontrollera delade mappar innan du lämnar ut CT:ns IP-adress." }, "delete": { "heading": "Ta bort en export", "body": "Listar varje rad i /etc/exports för val, tar bort den valda (sed -i), kör exportfs -ra och startar om nfs-kernel-server. Mappen själv och dess innehåll lämnas intakt." }, "status": { "heading": "Kontrollera NFS status", "body": "Diagnostik: kontrollerar att nfs-kernel-server och rpcbind är installerade och aktiva, visar utdata från exportfs -v, aktiva NFS-sessioner (showmount -a) och aktuella klientanslutningar." }, "uninstall": { "heading": "Avinstallera NFS server", "body": "Fullständig rensning efter bekräftelse: stoppar och inaktiverar nfs-kernel-server och rpcbind, tömmer /etc/exports, tar bort NFS-paketen med apt-get purge, gruppen sharedfiles och användarna remap_* samt avslutar kvarvarande processer. De exporterade mapparna raderas inte; endast NFS-konfigurationen och paketen tas bort.", "warnTitle": "Skriptet stannar vid exportlinjen, inte vid data", "warnBody": "Både Ta bort export och Avinstallera NFS-server tar bort exportkonfigurationen. Data i den delade mappen bevaras. Om även data ska tas bort, gör det uttryckligen med rm -rf efter att skriptet har avslutats och säkerhetskopiera först om någon kan behöva dem." }, "troubleshoot": { "heading": "Felsökning", "privTitle": "Privilegierad container krävs (skriptet avbryter)", "privBody": "Den valda CT är oprivilegierad. nfs-kernel-server kan inte starta där eftersom montering /proc/fs/nfsd behöver CAP_SYS_ADMIN i värdkärnans namnrymd, och nfsd-modulen inte heller är tillgänglig i containerns namnrymd (modprobe nfsd inifrån returnerar FATAL: Module nfsd not found). Om du kringgår kontrollen ser du rpc.nfsd: Unable to access /proc/fs/nfsd errno 2 (No such file or directory) i journalen och inga NFS-portar kommer någonsin att öppnas. De enda användbara alternativen är: konvertera CT till privilegierad, eller flytta NFS-servern till en VM.", "aptTitle": "apt-get install misslyckas", "aptIntro": "Manuset antar en Debian-familj CT. På Alpine / Arch / Rocky / Alma, installera NFS serverpaket för hand:", "aptItems": [ "Alpine: apk add nfs-utils", "Arch: pacman -S nfs-utils", "Rocky / Alma: dnf install nfs-utils" ], "aptOutro": "Kör sedan ProxMenux-skriptet igen; installationen hoppas över om verktygen redan finns.", "aclTitle": "Kunden kan inte montera: \"åtkomst nekas av servern\"", "aclBody": "Klientens IP ligger utanför nätverkets ACL. Skapa exporten på nytt med ett större undernät eller lägg till klientens exakta IP. Vanlig fallgrop: via router-NAT kan klienten visas med routerns WAN-IP i stället för sin LAN-IP. Kontrollera på servern med tcpdump -n port 2049.", "ownTitle": "Filer skrivna av kunden visas med konstig ägande på servern", "ownIntro": "Två möjligheter:", "ownItems": [ "Med no_root_squash (standard) skriver klientrot som rot på servern. Filer ägs av root:sharedfiles tack vare SGID på mappen.", "Icke-root klient användare skriver som sin egen UID / GID. Om deras UID inte finns på servern visas filer med råa nummer (t.ex. 1234:1234). Använd sharedfiles-gruppen på klienten också, eller anpassa UID över de system som delar filer." ], "noShowTitle": "Servern kan nås men showmount returnerar inget", "noShowBody": "Efter att du redigerat /etc/exports måste du ladda om exporttabellen med exportfs -ra och starta om nfs-kernel-server. Skriptet gör båda, men efter manuell redigering måste du göra det själv. Kontrollera även att brandväggen i CT:n och på Proxmox-värden tillåter TCP/UDP 2049 och rpcbind-porten (111)." }, "related": { "heading": "Relaterad", "items": [ { "href": "/docs/storage-share/lxc-nfs-client", "label": "NFS klient i LXC", "tail": " — omvänt: montera externa NFS-delningar i en CT." }, { "href": "/docs/storage-share/lxc-samba-server", "label": "Samba server i LXC", "tail": " — syskonsidan, samma mönster med SMB / CIFS istället för NFS." }, { "href": "/docs/storage-share/host-nfs", "label": "NFS-delning som Proxmox-lagring", "tailRich": " — när CT:n delar ut via NFS, registrera NFS-delningen i Proxmox så att den visas under Datacenter → Storage." } ] } }