Cuando se trata de compartir archivos en entornos puramente Linux o Unix, el Network File System (NFS) es el estándar de oro. A diferencia de Samba, que prioriza la interoperabilidad con Windows, NFS está diseñado para ofrecer el máximo rendimiento y eficiencia, lo que lo hace ideal para montajes de directorios de inicio, clusters o cualquier tarea que requiera baja latencia.
En este tutorial, te guiaremos a través del proceso completo para configurar un Servidor NFS en Ubuntu 24.04 y montar el recurso compartido en un cliente, asegurando un flujo de trabajo rápido y seguro.
Paso 1: Instalación de los Paquetes del Servidor NFS
Comenzaremos en la máquina que actuará como Servidor (la que aloja los archivos). Necesitamos instalar el paquete que contiene el kernel server.
Actualizar e Instalar: Abre la terminal en el Servidor y ejecuta:
sudo apt update
sudo apt install nfs-kernel-server
Crear la Carpeta a Exportar: Crea el directorio que deseas compartir y ajusta sus propiedades. Para NFS, a menudo se usa la propiedad de nadie:nogroup para evitar problemas de mapeo de UID/GID iniciales:
sudo mkdir /nfs_compartido
sudo chown -R nobody:nogroup /nfs_compartido
sudo chmod 0777 /nfs_compartido
Paso 2: Definición de las Exportaciones en /etc/exports
El archivo /etc/exports es donde se define qué directorios se comparten, y lo más importante, qué clientes tienen permiso para acceder a ellos.
Editar el Archivo: Abre el archivo de configuración con nano o tu editor preferido:
sudo nano /etc/exports
Añadir la Línea de Exportación: Agrega la siguiente línea al final del archivo, reemplazando IP_DEL_CLIENTE con la dirección IP de la máquina cliente que accederá al recurso:
/nfs_compartido IP_DEL_CLIENTE(rw,sync,no_subtree_check)
rw: Permite acceso de lectura y escritura.sync: Asegura que los cambios se escriban de forma inmediata en el disco.no_subtree_check: Deshabilita la verificación de subárboles para mejorar el rendimiento.
Paso 3: Aplicar Cambios y Configurar el Firewall (UFW)
Una vez guardado el archivo /etc/exports, debemos aplicar la nueva configuración y abrir el firewall.
Aplicar Exportaciones: Ejecuta este comando para exportar el sistema de archivos sin necesidad de un reinicio completo del sistema:
sudo exportfs -a
Reiniciar el Servicio: Asegúrate de que el servicio NFS se reinicie correctamente:
sudo systemctl restart nfs-kernel-server
Configurar Firewall (Seguridad): Limita el acceso NFS estrictamente a la IP de tu cliente.
sudo ufw allow from IP_DEL_CLIENTE to any port nfs
sudo ufw reload
Paso 4: Instalación de Paquetes en el Cliente y Montaje
Ahora cambiamos a la máquina Cliente para configurar el acceso.
Instalar Paquetes de Cliente: Instala las utilidades necesarias para montar NFS:
sudo apt update
sudo apt install nfs-common
Verificar Exportaciones (Opcional): Confirma que el servidor está exportando el directorio correctamente:
showmount -e IP_DEL_SERVIDOR
Montaje Temporal: Crea un punto de montaje local y monta el recurso compartido:
sudo mkdir /mnt/nfs_server
sudo mount IP_DEL_SERVIDOR:/nfs_compartido /mnt/nfs_server
Verifica la conexión creando un archivo en /mnt/nfs_server. Debería aparecer inmediatamente en la carpeta /nfs_compartido del Servidor.
Paso 5: Montaje Persistente con /etc/fstab
Para que el montaje se mantenga después de cada reinicio, añade una línea al archivo /etc/fstab del cliente:
Editar fstab:
sudo nano /etc/fstab
Añadir la Línea de Montaje: Agrega la siguiente línea al final:
IP_DEL_SERVIDOR:/nfs_compartido /mnt/nfs_server nfs defaults 0 0
¡Listo! Has configurado un servidor NFS de alto rendimiento, optimizando la compartición de archivos en tus entornos Linux.