Cómo instalar el servidor NFS en Ubuntu 20.04 LTS

En este tutorial, le mostraremos cómo instalar el servidor NFS en Ubuntu 20.04 LTS. Para aquellos de ustedes que no lo sabían, NFS o Network File System es un protocolo de sistema de archivos distribuido. Puede ayudarlo a compartir archivos y directorios completos con otras personas a través de una red. Permite que los programas en sistemas remotos compartan y accedan a información entre sí como si estuviera disponible en una máquina local. Esta tecnología le brinda la flexibilidad de compartir un recurso en múltiples sistemas.

Este artículo asume que tiene al menos conocimientos básicos de Linux, sabe cómo usar el shell y, lo más importante, aloja su sitio en su propio VPS. La instalación es bastante simple y asume que está ejecutando en la cuenta de root, de lo contrario, es posible que deba agregar ‘sudo‘a los comandos para obtener privilegios de root. Le mostraré la instalación paso a paso del servidor NFS en Ubuntu 20.04 (Focal Fossa). Puede seguir las mismas instrucciones para Ubuntu 18.04, 16.04 y cualquier otra distribución basada en Debian como Linux Mint.

Usamos dos máquinas, una que ejecuta Ubuntu 20.04, que actuará como un servidor NFS, y otra que ejecuta cualquier otra distribución de Linux en la que montaremos el recurso compartido. Las maquinas en este example tener las siguientes direcciones IP:

NFS Server IP: 192.168.77.20
NFS Clients IPs: From the 192.168.77.0/24 range

Instale el servidor NFS en Ubuntu 20.04 LTS Focal Fossa

Paso 1. Primero, asegúrese de que todos los paquetes de su sistema estén actualizados ejecutando lo siguiente apt comandos en la terminal.

sudo apt update
sudo apt upgrade

Paso 2. Instalación del servidor NFS en Ubuntu 20.04.

Ahora ejecutamos el siguiente comando para instalar el paquete del servidor del kernel NFS:

sudo apt install nfs-kernel-server

Puede verificar si el nfs-server el servicio se está ejecutando como se muestra:

sudo systemctl status nfs-server

Paso 3. Creación de directorios compartidos en el host.

Crear un directorio que se compartirá entre los sistemas cliente:

sudo mkdir /var/nfs/general -p

Dado que queremos que los sistemas cliente tengan acceso completo a este directorio compartido, debemos eliminar todos los permisos de directorio que restringen el acceso:

sudo chown nobody:nogroup /var/nfs/general

Paso 4. Configure NFS en el host.

Nos sumergiremos en el archivo de configuración de NFS para configurar el uso compartido de estos recursos:

sudo nano /etc/exports

Agrega las siguientes líneas:

/var/nfs/general client_ip(rw,sync,no_subtree_check)
/home client_ip(rw,sync,no_root_squash,no_subtree_check)

Para opciones básicas de exportación:

OpciónDescripción
rwPermita solicitudes de lectura y escritura en un volumen NFS.
roPermita solo solicitudes de lectura en un volumen NFS.
sincronizarResponda a las solicitudes solo después de que los cambios se hayan comprometido en el almacenamiento estable. (Defecto)
asincrónicoEsta opción permite que el servidor NFS viole el protocolo NFS y responda a las solicitudes antes de que los cambios realizados por esa solicitud se hayan comprometido en un almacenamiento estable.
seguroEsta opción requiere que las solicitudes se originen en un puerto de Internet menor que IPPORT_RESERVED (1024). (Defecto)
inseguroEsta opción acepta todos los puertos.
wdelayRetrase un poco el envío de una solicitud por escrito a un disco si sospecha que otra solicitud de escritura relacionada puede estar en curso o puede llegar pronto. (Defecto)
no_wdelayEsta opción no tiene ningún efecto si también se establece async. El servidor NFS normalmente retrasará un poco la confirmación de una solicitud escrita en un disco si sospecha que otra solicitud de escritura relacionada puede estar en curso o puede llegar pronto. Esto permite que se envíen varias solicitudes de escritura al disco con una sola operación que puede mejorar el rendimiento. Si un servidor NFS recibió principalmente solicitudes pequeñas no relacionadas, este comportamiento podría reducir el rendimiento, por lo que no_wdelay está disponible para apagarlo.
subtree_checkEsta opción habilita la verificación de subárboles. (Defecto)
no_subtree_checkEsta opción deshabilita la verificación de subárboles, que tiene implicaciones de seguridad leves, pero puede mejorar la confiabilidad en algunas circunstancias.
root_squashAsigne solicitudes de uid / gid 0 al uid / gid anónimo. Tenga en cuenta que esto no se aplica a otros uids o gids que puedan ser igualmente sensibles, como el contenedor del usuario o el personal del grupo.
no_root_squashApague el aplastamiento de raíces. Esta opción es principalmente útil para clientes sin disco.
all_squashAsigne todos los uids y gids al usuario anónimo. Útil para directorios FTP públicos exportados a NFS, directorios de cola de noticias, etc.
no_all_squashApaga todo aplastamiento. (Defecto)
anonuid = UIDEstas opciones establecen explícitamente el uid y el gid de la cuenta anónima. Esta opción es principalmente útil para clientes PC / NFS, donde es posible que desee que todas las solicitudes parezcan ser de un usuario. Como un example, considere la entrada de exportación para / home / joe en el example sección a continuación, que asigna todas las solicitudes a uid 150.
anongid = GIDLeer arriba (anonuid = UID)

Finalmente, reinicie el servidor NFS para aplicar los cambios:

sudo systemctl restart nfs-kernel-server

Paso 5. Configuración del cortafuegos.

Debe permitir el acceso a través del firewall, de lo contrario, será imposible acceder y montar el directorio compartido. Para lograr esto, ejecute el siguiente comando:

sudo ufw allow from 192.168.77.0/24 to any port nfs
sudo ufw enable
sudo ufw status

Paso 6. Configure los clientes NFS.

En las máquinas cliente, necesitamos instalar solo las herramientas necesarias para montar un sistema de archivos NFS remoto.

  • Instale el cliente NFS en Debian y Ubuntu

Ejecute el siguiente comando para instalarlo:

sudo apt install nfs-common
  • Cree puntos de montaje en el cliente.

Ahora creamos dos directorios para montajes en el cliente:

sudo mkdir -p /nfs/general
sudo mkdir -p /nfs/home

A continuación, monte los recursos compartidos utilizando la dirección IP del host:

sudo mount host_ip:/var/nfs/general /nfs/general
sudo mount host_ip:/home /nfs/home

Verifique que los sistemas de archivos remotos estén montados correctamente utilizando el montaje o df mando:

df -h

Para que las monturas sean permanentes al reiniciar, abra el /etc/fstab archivo y agregue las siguientes líneas:

sudo nano /etc/fstab

Agregue la siguiente línea:

192.168.77.10:/var/nfs/general /nfs/general  nfs defaults,timeo=900,retrans=5,_netdev 0 0
192.168.77.10:/home /nfs/home                nfs defaults,timeo=900,retrans=5,_netdev 0 0

Paso 7. Pruebe el uso compartido de NFS.

Ahora creamos un archivo de prueba en el /var/nfs/general Cuota:

sudo touch /nfs/general/general.test

Verifique su propiedad:

$ ls -l /nfs/home/home.test
-rw-r--r-- 1 root root 0 Aug 1 13:32 /nfs/home/home.test

Paso 8. Desmontaje del sistema de archivos NFS.

Si el recurso compartido NFS remoto ya no es necesario, puede desmontarlo como cualquier otro sistema de archivos montado utilizando el umount mando:

sudo umount /general

¡Felicidades! Ha instalado correctamente el servidor NFS. Gracias por usar este tutorial para instalar el servidor NFS en el sistema Ubuntu 20.04 LTS Focal Fossa. Para obtener ayuda adicional o información útil, le recomendamos que consulte el sitio web oficial de NFS.