Compartición de archivos con NFS

Introducción

NFS (Network File System) es el protocolo nativo de Unix/Linux para compartir directorios en red. A diferencia de Samba, está orientado a entornos donde todos los sistemas son Linux o Unix. El servidor exporta directorios mediante /etc/exports y los clientes los montan como si fueran sistemas de archivos locales.

Configuración del servidor NFS

Instalación:


# apt install nfs-kernel-server    # Debian/Ubuntu
# dnf install nfs-utils            # RHEL/Rocky
# systemctl enable --now nfs-server
          

Definir exportaciones en /etc/exports:


# /etc/exports
/srv/nfs/datos   192.168.1.0/24(rw,sync,no_subtree_check)
/srv/nfs/publico *(ro,sync,no_subtree_check)
/home            cliente1.ejemplo.com(rw,sync,no_root_squash)
          

Opciones de exportación más usadas:

  • rw / ro → lectura-escritura / solo lectura
  • sync → confirmar escrituras en disco antes de responder al cliente (más seguro)
  • async → mejor rendimiento, pero riesgo de pérdida de datos en caída
  • no_subtree_check → desactiva la comprobación de subdirectorios (recomendado)
  • root_squash → el root del cliente se mapea al usuario nfsnobody (por defecto)
  • no_root_squash → el root del cliente conserva privilegios de root en el servidor (¡usar con cuidado!)
  • all_squash → todos los usuarios del cliente se mapean a nfsnobody

Aplicar cambios sin reiniciar:


# exportfs -ra                     # releer /etc/exports y aplicar
$ exportfs -v                      # mostrar exportaciones activas
$ showmount -e localhost           # listar exportaciones disponibles
          

Configuración del cliente NFS

Instalación:


# apt install nfs-common            # Debian/Ubuntu
# dnf install nfs-utils             # RHEL/Rocky
          

Montar un recurso NFS manualmente:


$ showmount -e 192.168.1.10        # ver qué exporta el servidor
# mkdir -p /mnt/nfs/datos
# mount -t nfs 192.168.1.10:/srv/nfs/datos /mnt/nfs/datos
$ df -h /mnt/nfs/datos             # verificar el montaje
          

Montaje permanente en /etc/fstab:


192.168.1.10:/srv/nfs/datos  /mnt/nfs/datos  nfs  defaults,_netdev  0  0
          

La opción _netdev indica que el montaje requiere red, evitando fallos en el arranque si la red no está disponible aún.

Desmontar:


# umount /mnt/nfs/datos
          

autofs — Montaje automático bajo demanda

autofs monta los recursos NFS automáticamente cuando se accede a ellos y los desmonta tras un periodo de inactividad, ahorrando recursos.


# apt install autofs
          

/etc/auto.master — mapa maestro:


/mnt/nfs  /etc/auto.nfs  --timeout=60
          

/etc/auto.nfs — mapa de montajes:


datos  -rw,sync  192.168.1.10:/srv/nfs/datos
          

# systemctl enable --now autofs
# ls /mnt/nfs/datos                # el acceso dispara el montaje automático
          

NFS vs Samba: cuándo usar cada uno

  • Usa NFS en entornos donde todos los sistemas son Linux/Unix: mejor rendimiento y menor complejidad.
  • Usa Samba cuando hay clientes Windows en la red o se necesita integración con dominios Active Directory.

NFS es el protocolo de compartición de archivos nativo de Linux, ideal para entornos homogéneos donde todos los equipos ejecutan sistemas Unix/Linux.

Servidor web: Apache y Nginx

Índice de la sección

Índice del curso