 Autor: [Adam Nadolny](/autorzy/adam-nadolny) Ekspert DevOps i infrastruktury · Zweryfikowano Kwiecień 2026

1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  NFS i Samba — współdzielenie plików

# NFS i Samba — współdzielenie plików między serwerami

Opublikowano: 9 kwietnia 2026 · Kategoria: Linux / Sieci

Wspólny storage między serwerami to podstawa wielu architektur: współdzielone media w WordPress, pliki konfiguracyjne między węzłami aplikacji, backupy centralne. Dwie najpopularniejsze opcje to NFS (Network File System — standard Linux-Linux) i Samba (implementacja SMB/CIFS — dla środowisk mieszanych z Windows). Oto jak skonfigurować oba protokoły od zera.

## NFS vs Samba — kiedy co wybrać?

Cecha

NFS

Samba (SMB/CIFS)

Protokół

NFS v3/v4 (standard Unix)

SMB/CIFS (standard Windows)

Klienty

Linux, macOS, FreeBSD

Windows, macOS, Linux

Wydajność

Lepsza w środowisku Linux

Dobra, nieco wyższe CPU

Uwierzytelnianie

IP-based lub Kerberos (v4)

User/password, AD, Kerberos

Szyfrowanie

Brak w v3, opcjonalne v4.2

SMB3 z szyfrowaniem

Typowe zastosowanie

VPS cluster, Kubernetes PV

Serwer plików dla biura, Windows

## NFS — instalacja i konfiguracja serwera

\# Instalacja NFS server (Ubuntu/Debian)
sudo apt update
sudo apt install nfs-kernel-server

# Utwórz katalog do eksportowania
sudo mkdir -p /export/shared
sudo chown nobody:nogroup /export/shared
sudo chmod 755 /export/shared

Konfiguracja eksportów w `/etc/exports`:

\# /etc/exports
# Format: /sciezka  klient(opcje)

# Eksport dla konkretnego IP (rekomendowane)
/export/shared  192.168.1.101(rw,sync,no\_subtree\_check)

# Eksport dla całej podsieci
/export/shared  192.168.1.0/24(rw,sync,no\_subtree\_check)

# Eksport read-only
/export/media  192.168.1.0/24(ro,sync,no\_subtree\_check)

# Eksport z all\_squash (wszyscy klienci = anonuid)
/export/public  192.168.1.0/24(rw,sync,no\_subtree\_check,all\_squash,anonuid=1000,anongid=1000)

\# Zastosuj zmiany w /etc/exports
sudo exportfs -ra

# Sprawdź aktywne eksporty
sudo exportfs -v
showmount -e localhost

# Restart usługi NFS
sudo systemctl restart nfs-kernel-server
sudo systemctl enable nfs-kernel-server

## NFS — klient (montowanie)

\# Instalacja klienta NFS
sudo apt install nfs-common

# Sprawdź dostępne eksporty serwera
showmount -e 192.168.1.100

# Tymczasowe montowanie
sudo mkdir -p /mnt/nfs-shared
sudo mount -t nfs 192.168.1.100:/export/shared /mnt/nfs-shared

# Montowanie z NFS v4 (rekomendowane)
sudo mount -t nfs4 192.168.1.100:/export/shared /mnt/nfs-shared

# Sprawdź zamontowane systemy plików
df -h | grep nfs
mount | grep nfs

Aby montowanie było trwałe (przeżywało restart), dodaj do `/etc/fstab`:

\# /etc/fstab
# Format: serwer:/eksport  punkt-montowania  typ  opcje  dump  pass

192.168.1.100:/export/shared  /mnt/nfs-shared  nfs4  defaults,nofail,\_netdev  0  0

# Opcje:
# nofail    — nie blokuj bootowania gdy serwer NFS niedostępny
# \_netdev   — montuj dopiero po uruchomieniu sieci
# soft      — timeout zamiast zawieszenia gdy serwer niedostępny
# timeo=15  — timeout w 0.1s (15 = 1.5 sekundy)

\# Przetestuj wpis fstab bez restartu
sudo mount -a
# Sprawdź czy zamontowane
df -h /mnt/nfs-shared

## Samba — instalacja i konfiguracja serwera

\# Instalacja Samba
sudo apt update
sudo apt install samba

# Utwórz katalog współdzielony
sudo mkdir -p /samba/shared
sudo chown root:sambashare /samba/shared
sudo chmod 2775 /samba/shared

Edytuj konfigurację Samba w `/etc/samba/smb.conf`:

\# /etc/samba/smb.conf

\[global\]
   workgroup = WORKGROUP
   server string = Serwer Plików
   security = user
   map to guest = Bad User
   log file = /var/log/samba/log.%m
   max log size = 1000

# Udział z uwierzytelnianiem (tylko zalogowani użytkownicy)
\[shared\]
   path = /samba/shared
   browseable = yes
   read only = no
   guest ok = no
   valid users = @sambashare
   create mask = 0664
   directory mask = 0775
   force group = sambashare

# Udział publiczny (bez hasła — tylko do odczytu)
\[public\]
   path = /samba/public
   browseable = yes
   read only = yes
   guest ok = yes

\# Zweryfikuj konfigurację smb.conf
testparm

# Dodaj użytkownika do Samba (musi mieć konto systemowe)
sudo adduser uzytkownik
sudo usermod -aG sambashare uzytkownik
sudo smbpasswd -a uzytkownik      # Ustaw hasło Samba (oddzielne od systemowego)
sudo smbpasswd -e uzytkownik      # Włącz konto

# Restart Samba
sudo systemctl restart smbd nmbd
sudo systemctl enable smbd nmbd

## Samba — klient (Linux i Windows)

\# Instalacja klienta CIFS (Linux)
sudo apt install cifs-utils smbclient

# Lista dostępnych udziałów Samba
smbclient -L //192.168.1.100 -U uzytkownik

# Interaktywne połączenie przez smbclient (jak FTP)
smbclient //192.168.1.100/shared -U uzytkownik
# Komendy: ls, get plik, put plik, cd katalog, quit

# Montowanie udziału Samba na Linux
sudo mkdir -p /mnt/samba-shared
sudo mount -t cifs //192.168.1.100/shared /mnt/samba-shared \\
  -o username=uzytkownik,password=haslo,uid=1000,gid=1000

\# Bezpieczniejsze montowanie — hasło w pliku zamiast w linii poleceń
sudo nano /etc/samba/credentials-shared
# Zawartość:
# username=uzytkownik
# password=haslo
sudo chmod 600 /etc/samba/credentials-shared

# /etc/fstab z credentials file
# //192.168.1.100/shared  /mnt/samba-shared  cifs  credentials=/etc/samba/credentials-shared,uid=1000,gid=1000,nofail,\_netdev  0  0

\# Windows — mapowanie dysku sieciowego
# W Eksploratorze: Komputer > Mapuj dysk sieciowy
# Ścieżka: \\\\192.168.1.100\\shared

# Lub przez wiersz poleceń:
# net use Z: \\\\192.168.1.100\\shared /user:uzytkownik haslo /persistent:yes

## AutoFS — automontowanie na żądanie

AutoFS montuje udziały automatycznie gdy są potrzebne i odmontowuje po czasie bezczynności — oszczędza zasoby i eliminuje problemy z bootowaniem gdy serwer NFS/Samba jest niedostępny:

\# Instalacja autofs
sudo apt install autofs

# Konfiguracja master map
sudo nano /etc/auto.master
# Dodaj linię:
# /mnt/auto  /etc/auto.nfs  --timeout=60

# Konfiguracja udziałów NFS
sudo nano /etc/auto.nfs
# Format: punkt-montowania  opcje  serwer:/eksport
# shared  -fstype=nfs4,rw  192.168.1.100:/export/shared
# media   -fstype=nfs4,ro  192.168.1.100:/export/media

# Restart autofs
sudo systemctl restart autofs

# Testuj — wejdź do katalogu (automontowanie na żądanie)
ls /mnt/auto/shared
# AutoFS automatycznie zamontuje i odmontuje po 60 sekundach bezczynności

## Bezpieczeństwo NFS i Samba

-   **NFS: ogranicz /etc/exports do konkretnych IP** — nigdy `*(rw,...)`.
-   **NFS: UFW** — zezwól na port 2049/tcp tylko z zaufanych IP.
-   **Samba: valid users** — ogranicz dostęp do konkretnych użytkowników/grup.
-   **Samba: hosts allow** — dodaj `hosts allow = 192.168.1.0/24` do `[global]`.
-   **Obie technologie: VPN** — jeśli serwery są w różnych lokalizacjach, użyj WireGuard lub OpenVPN zamiast eksponowania portów na internet.

## Najczęstsze pytania

Kiedy używać NFS, a kiedy Samba? +

NFS (Network File System) to wybór gdy wszystkie maszyny to Linux/Unix — wydajniejszy, prostszy w konfiguracji, lepsza integracja z prawami unixowymi (uid/gid). Samba (implementacja protokołu SMB/CIFS) gdy musisz obsłużyć Windows lub macOS. Samba działa też na Linuxie (klienty Linux mogą montować przez mount -t cifs). Dla środowisk mieszanych (Linux serwer + Windows klienty): Samba. Dla środowisk czysto linuxowych (VPS, Kubernetes shared storage): NFS.

Czy NFS jest bezpieczny do użytku przez internet? +

NIE. NFS v3/v4 nie ma własnego szyfrowania — dane są przesyłane tekstem. Używaj NFS WYŁĄCZNIE w sieci lokalnej (prywatna sieć VPS, VPN). Jeśli musisz współdzielić pliki przez internet, użyj SSHFS (rsync/SFTP over SSH) lub Samby z tunelem VPN. Ogranicz dostęp w /etc/exports do konkretnych IP lub podsieci — NIGDY nie eksportuj do 0.0.0.0/0.

Jakie są różnice między NFS v3 a NFS v4? +

NFS v4 (rekomendowana) to znacząca modernizacja: jeden port TCP 2049 (v3 potrzebuje portmapper i wiele losowych portów), wbudowane ACL, lepsza obsługa przez firewall, stateful protokół, Kerberos authentication. NFS v3 to stary standard — prosty, ale mniej bezpieczny. Użyj nfsvers=4 w /etc/fstab. NFS v4.1 i v4.2 dodają pNFS (parallel NFS) i server-side copy.

Jak debugować problemy z montowaniem NFS? +

Krok 1: Sprawdź czy serwer eksportuje: showmount -e IP\_SERWERA. Krok 2: Sprawdź logi serwera: journalctl -u nfs-kernel-server -f. Krok 3: Test połączenia: nc -zv IP\_SERWERA 2049. Krok 4: Montuj z verbose: mount -t nfs -v IP\_SERWERA:/export /mnt/. Krok 5: Sprawdź uprawnienia uid/gid — użytkownik na kliencie musi mieć ten sam uid co właściciel pliku na serwerze (lub użyj all\_squash i anonuid).

## Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.

Contabo

VPS w prywatnej sieci — idealny do konfiguracji NFS między serwerami

Private network

[Aktywuj rabat →](/out/contabo)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo)

Mikrus

Tani VPS do testowania NFS i Samba — środowisko dev bez ryzyka

Dev/Test

[Aktywuj rabat →](/out/mikrus)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/mikrus)

LH.pl

Hosting współdzielony — gotowe środowisko bez potrzeby zarządzania NFS/Samba

Managed

[Aktywuj rabat →](/out/lh-pl)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/lh-pl)

## Powiązane strony

-   [rsync — synchronizacja i backup plików](/baza-wiedzy/rsync-synchronizacja-plikow)
-   [Docker na VPS — volumes i bind mounts](/baza-wiedzy/docker-na-vps)
-   [SSH — bezpieczna konfiguracja serwera](/baza-wiedzy/ssh-penetration-testing)
-   [Wszystkie artykuły](/baza-wiedzy/)