Cómo instalar el servidor y el cliente NFS en Ubuntu 22.04
¿Qué es el NFS? NFS o Sistema de Archivos en Red es un protocolo que permite a los usuarios locales acceder a los datos remotos de varios discos y directorios del mismo modo que el acceso local. El protocolo NFS fue desarrollado originalmente por Sun Microsystem y se ha convertido en el protocolo estándar para compartir archivos a través de una red. Se utiliza mucho en un entorno centralizado en el que los usuarios u ordenadores cliente podrán almacenar y acceder a los datos en/hacia un servidor remoto centralizado.
En la mayoría de los sistemas Linux, NFS puede instalarse y configurarse fácilmente tanto para el servidor como para el cliente NFS. Casi todas las distribuciones de Linux proporcionan paquetes NFS por defecto en su propio repositorio. El nombre del paquete es diferente, pero la configuración sigue siendo la misma en casi todas las distribuciones de Linux.
En este tutorial, aprenderás a instalar el Servidor y el Cliente NFS en el servidor de Ubuntu 22.04. También aprenderás a montar el directorio compartido NFS automáticamente al arrancar el sistema en la máquina cliente.
Requisitos previos
Esta guía requiere los siguientes requisitos previos
- Un Servidor Ubuntu 22.04 – Para instalar el Servidor NFS.
- Una máquina cliente Linux – Este ejemplo lo utilizará la máquina cliente Ubuntu.
- Un usuario no root con privilegios de root/administrador.
Instalación y configuración del servidor NFS
Lo primero que harás aquí es instalar y configurar el Servidor NFS. Antes de empezar, inicia sesión en tu servidor y obtén los privilegios de root.
Puedes iniciar la sesión con el comando ssh que aparece a continuación. A continuación, ejecuta el comando«sudo su» para obtener los privilegios de root.
ssh user@SERVER-IP sudo su
Instalar el paquete del servidor NFS
Antes de instalar cualquier paquete, ejecuta el siguiente comando apt para actualizar y refrescar tu repositorio de Ubuntu.
sudo apt update
Ahora instala el paquete del servidor NFS con el siguiente comando. Introduce Y para confirmar la instalación y pulsa ENTER, y la instalación comenzará.
sudo apt install nfs-kernel-server
Una vez finalizada la instalación del servidor NFS, comprueba y verifica el servicio del servidor NFS mediante el siguiente comando. En la instalación de Ubuntu, el servidor NFS se habilitará automáticamente y se ejecutará automáticamente al arrancar el sistema.
sudo systemctl is-enabled nfs-server sudo systemctl status nfs-server
En el servidor Ubuntu 22.04, la configuración de NFS ha cambiado. La configuración principal para NFS se encuentra en el archivo«/etc/nfs.conf«, que te permite establecer y configurar el servidor NFS. Otra configuración para el servicio NFS se encuentra en«/etc/default/nfs-*«, que se puede utilizar para configurar el servicio NFS sobre cómo se ejecutará el servicio.
Además, las versiones de NFS habilitadas por defecto en la instalación son NFSv3 y NFSv4. Puedes comprobar las versiones NFS habilitadas por defecto utilizando el siguiente comando.
cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
Configurar el directorio compartido
Después de instalar el paquete del servidor NFS, ahora vas a configurar los directorios compartidos. Los directorios compartidos NFS pueden definirse mediante el archivo«/etc/exports«. Además, puedes especificar la dirección IP del cliente para el directorio compartido o configurar la lectura/escritura en el directorio compartido.
Ejecuta el siguiente comando para crear nuevos directorios compartidos. En este ejemplo, habrá dos directorios compartidos disponibles para los clientes,«/srv/backups» y«/mnt/shared«.
sudo mkdir -p /srv/backups /mnt/shared
Ahora cambia la propiedad y el permiso de los directorios compartidos utilizando el siguiente comando. El usuario y el grupo deben ser«nobody:nogroup» y el permiso será«777» para asegurar que los directorios compartidos son escribibles.
sudo chown -R nobody:nogroup /srv/backups /mnt/shared sudo chmod 777 /srv/backups /mnt/shared
A continuación, modifica el archivo«/etc/exports» utilizando el siguiente comando.
sudo nano /etc/exports
Añade la siguiente configuración al archivo.
/srv/backups 192.168.5.100(rw,sync,no_subtree_check) /mnt/shared 192.168.10.0/24(rw,sync,no_subtree_check)
Guarda y cierra el archivo cuando hayas terminado.
- El directorio «/srv/backups» sólo estará disponible para el cliente NFS con dirección IP«192.168.5.100«.
- El directorio » /mnt/shared » estará disponible para todos los clientes de la red completa«192.168.10.0/24«.
- rw – permitir la lectura y escritura para el directorio compartido.
- sync – permitir que NFS escriba los cambios antes de responder a las máquinas cliente y asegurar que el servidor NFS se presenta siempre a los clientes.
- no_subtree_check – desactiva la comprobación de subárboles y asegura que no habrá conflictos cuando los usuarios cambien el nombre del archivo.
A continuación, ejecuta el siguiente comando para aplicar y exportar todos los directorios. Si no recibes ningún mensaje, entonces tu configuración es correcta.
sudo exportfs -a
Ahora ejecuta el siguiente comando para reiniciar y verificar el servicio NFS. Y deberías ver que el servicio NFS se está ejecutando con un nuevo directorio exportado.
sudo systemctl restart nfs-server sudo systemctl status nfs-server
Ejecuta el siguiente comando para comprobar los directorios compartidos disponibles en el servidor NFS. Deberías ver dos directorios«/srv/backups» y«/mnt/shared» disponibles como directorios compartidos para los clientes.
sudo exportfs -v
Asegurar el servidor NFS con un cortafuegos
Después de configurar el directorio compartido NFS, es el momento de asegurar el servidor NFS mediante el Firewall, en este caso, el firewall por defecto de Ubuntu es UFW.
Como puedes ver en la parte superior, cada directorio compartido es accesible a través de una dirección IP de cliente y una red específicas. Así que tendrás que especificar la dirección IP del cliente o la red en la regla del cortafuegos UFW que tendrá permiso para acceder al puerto del servicio NFS.
Ejecuta el siguiente comando ufw para permitir que la dirección IP del cliente«192.168.5.100» y la red«192.168.10.0/24» accedan al puerto del servicio NFS.
sudo ufw allow from 192.168.5.100 to any port nfs sudo ufw allow from 192.168.10.0/24 to any port nfs
Ahora vuelve a cargar la regla del cortafuegos UFW y verifica la lista de reglas del cortafuegos con el comando siguiente. Deberías ver que el puerto de servicio NFS por defecto«2049» es accesible a través de direcciones IP y redes de clientes específicas.
sudo ufw reload sudo ufw status
Instalación y configuración del cliente NFS
Después de haber instalado el servidor NFS, ahora es el momento de configurar el cliente NFS y montar el directorio compartido en la máquina cliente. En este ejemplo, el cliente será también una máquina Ubuntu.
Accede a tu máquina cliente de Ubuntu. Si utilizas el Escritorio de Ubuntu, puedes simplemente abrir el terminal de tu sistema. Pero si estás utilizando la versión de Ubuntu Server para el cliente, puedes conectarte utilizando el comando ssh como se indica a continuación.
ssh root@CLIENT-IP
Instalar el paquete del cliente NFS
El primer paso que harás en la máquina cliente es instalar el paquete «nfs-common» que te permite montar el servidor NFS en tu máquina cliente.
Ejecuta el siguiente comando apt para actualizar y refrescar tus repositorios de Ubuntu.
sudo apt update
Ahora instala el paquete«nfs-common» con el siguiente comando. Introduce Y para confirmar la instalación y pulsa ENTER. Ahora comenzará la instalación.
sudo apt install nfs-common
Configurar el directorio de montaje
Antes de empezar a montar el directorio compartido NFS, crearás un nuevo directorio específico para el destino del montaje. En este ejemplo, el directorio de destino para montar los recursos compartidos NFS es el directorio «/mnt/data».
Ejecuta el siguiente comando para crear un nuevo directorio«/mnt/data«.
sudo mkdir -p /mnt/data
Para montar el directorio compartido NFS, ejecuta el siguiente comando de montaje. En esta demostración, montarás el directorio compartido «/srv/backups» en el directorio de destino«/mnt/data«.
sudo mount nfs_server_ip:/srv/backups /mnt/data
Ahora ejecuta el siguiente comando para comprobar y verificar la lista de discos montados en tu máquina Ubuntu. Deberías ver que el directorio compartido NFS «/srv/backups» está montado en tu máquina local en el directorio «/mnt/data«.
sudo df -h
Verificar el acceso de escritura al servidor NFS
Después de haber montado con éxito el directorio compartido NFS, es el momento de verificar el acceso de escritura al directorio compartido NFS.
Ahora ejecuta el siguiente comando para crear y escribir un nuevo archivo«write.txt» en el directorio montado del objetivo NFS«/mnt/data/«.
echo "This file from client" > /mnt/data/write.txt cat /mnt/data/write.txt
A continuación, vuelve al servidor NFS y ejecuta el siguiente comando para comprobar y verificar el archivo «write.txt«. Deberías ver exactamente el mismo archivo que acabas de crear desde la máquina cliente NFS.
cat /srv/backups/write.txt ls /srv/backups/
Montar automáticamente el Servidor NFS con /etc/fstab
En este punto, has montado con éxito el directorio compartido NFS en la máquina cliente de Ubuntu y has comprobado el acceso de escritura en el directorio compartido. Ahora vas a configurar el directorio compartido NFS para que se monte automáticamente durante el arranque del sistema, y esto puede hacerse mediante el archivo /etc/fstab.
Antes de editar el archivo /etc/fstab, ejecuta el siguiente comando para desmontar el directorio compartido NFS del destino«/mnt/data«.
sudo umount /mnt/data
Edita el archivo«/etc/fstab» con el siguiente comando.
sudo nano /etc/fstab
Añade la siguiente configuración al archivo.
nfs_server_ip:/srv/backups /mnt/data nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
Guarda y cierra el archivo cuando hayas terminado.
A continuación, ejecuta el siguiente comando de montaje para comprobar y verificar el archivo » /etc/fstab«. Si tu configuración es correcta, todos los sistemas de archivos del archivo «/etc/fstab» se montarán en tu máquina.
sudo mount -a
Comprueba la lista de discos montados en tu máquina cliente utilizando el siguiente comando. Y deberías ver que el directorio compartido NFS«/srv/backups» está montado en el directorio de destino «/mnt/data«. Si reinicias/reinicias la máquina cliente, el directorio compartido NFS se montará automáticamente en el directorio «/mnt/data«.
sudo df -h
¡Enhorabuena! Ya has instalado con éxito el Servidor NFS en el servidor de Ubuntu 22.04.