NFS o Network File System es un protocolo de sistema de archivos distribuido, originalmente creado, por Sun Microsystems. A través de NFS, se puede permitir que un sistema comparta directorios y archivos con otros a través de una red.
En el intercambio de archivos NFS, los usuarios e incluso los programas pueden acceder a la información en sistemas remotos casi como si estuvieran residiendo en una máquina local.
NFS opera en un entorno cliente-servidor donde el servidor es responsable de administrar la autenticación, autorización y administración de los clientes, así como todos los datos compartidos dentro de un sistema de archivos específico.
Tras la autorización, cualquier número de clientes puede acceder a los datos compartidos como si estuvieran presentes en su almacenamiento interno.
Configurar un servidor NFS en tu sistema Ubuntu es muy simple. Todo lo que necesita hacer es realizar algunas instalaciones y configuraciones necesarias, tanto en el servidor como en las máquinas cliente, y estará listo.
En este artículo, explicaremos paso a paso cómo configurar un servidor y un cliente NFS que les permitirá compartir archivos de un sistema Ubuntu a otro.
Configurando el servidor NFS
Para configurar el sistema host para compartir directorios, necesitaremos instalar el servidor NFS Kernel y luego crear y exportar los directorios a los que queremos que accedan los sistemas cliente.
Ahora, vamos a abrir una terminal con Ctrl + Alt + T y en ella vamos a ejecutar el siguiente comando:
sudo apt install nfs-kernel-server -y
Hecha la instalación, ahora vamos a crear una carpeta que queremos compartir con el sistema cliente, este será una carpeta de exportación.
En este ejemplo vamos a crear la carpeta en el directorio actual en el que nos encontramos, pero puedes elegir la ruta que más te agrade.
En la terminal teclearemos:
sudo mkdir -p carpeta-compartida
Como queremos que todos los clientes accedan al directorio, eliminaremos los permisos restrictivos de la carpeta de exportación a través de los siguientes comandos:
sudo chown nobody: nogroup carpeta-compartida sudo chmod 777 carpeta-compartida
Es importante que si esta en otra ruta, coloques está bien, ya que si dejas un solo espacio podrías cambiar los permisos de los directorios de tu sistema.
Ahora todos los usuarios de todos los grupos en el sistema cliente podrán acceder a nuestra «carpeta compartida».
Ahora en esta carpeta creada podrás colocar todo el contenido que deseas compartir.
Exportar el directorio compartido
Después de crear la carpeta de exportación, deberemos proporcionar a los clientes el permiso para acceder a la máquina del servidor host.
Este permiso se define a través del archivo de exportaciones ubicado en la carpeta /etc de tu sistema.
Utilicen el siguiente comando para abrir este archivo con Nano:
sudo nano /etc/ exports
Una vez que haya abierto el archivo, puede permitir el acceso a la carpeta que crearon con el siguiente comando:
/ruta/de/la/ carpeta-compartida ip-de-cliente (rw, sync, no_subtree_check)
O puedes añadir múltiples clientes agregando las siguientes líneas en el archivo:
/ruta/de/la/carpeta-compartida ip-de-cliente-1 (rw, sync, no_subtree_check)
/ruta/de/la/carpeta-compartida ip-de-cliente-2 (rw, sync, no_subtree_check)
O puedes colocar un rango de IP de la siguiente forma:
/ruta/de/la/carpeta-compartida ip-de-cliente1/24 (rw, sync, no_subtree_check)
Los permisos «rw, sync, no_subtree_check» definidos en este archivo significan que los clientes pueden realizar:
rw : operaciones de lectura y escritura
sync : escriba cualquier cambio en el disco antes de aplicarlo
no_subtree_check : evita la comprobación de subárbol
Después de realizar todas las configuraciones anteriores en el sistema host, ahora es el momento de exportar el directorio compartido:
sudo exportfs -a
Finalmente, para que todas las configuraciones tengan efecto, reinicie el servidor del núcleo de NFS de la siguiente manera:
sudo systemctl restart nfs-kernel-server
Un paso importante es verificar que el servidor de seguridad del servidor esté abierto a los clientes para que puedan acceder al contenido compartido.
sudo ufw allow from ip/rango to any port nfs
Quedando algo así:
sudo ufw allow from 192.168.1.1/24 to any port nfs
Ahora, cuando verifique el estado de su firewall de Ubuntu a través del siguiente comando, podrá ver el estado de Acción como «Permitir» para la IP del cliente.
sudo ufw status
Su servidor host ahora está listo para exportar la carpeta compartida a los clientes especificados a través del servidor de Kernel NFS.
Configurando la máquina cliente
Ahora es el momento de realizar algunas configuraciones simples en la máquina cliente, de modo que la carpeta compartida desde el host se pueda montar en el cliente y luego acceder sin problemas.
Para ello vamos a instalar el cliente de NFS con el siguiente comando:
sudo apt-get install nfs-common
El sistema de su cliente necesita un directorio donde se pueda acceder a todo el contenido compartido por el servidor host en la carpeta de exportación.
Pueden crear esta carpeta en cualquier parte de su sistema.
sudo mkdir -p carpeta-cliente
Ahora la carpeta que crearon en el paso anterior es como cualquier otra carpeta en su sistema a menos que monte el directorio compartido desde su host a esta carpeta recién creada.
Usen el siguiente comando para montar la carpeta compartida desde el host a una carpeta de montaje en el cliente:
sudo mount IPdelserivdor:/ruta/de/la/carpeta-compartida /ruta/carpeta-cliente
Quedando el comando más o menos de la siguiente forma:
sudo mount 192.168.1.1:/home/servidor/carpeta-compartida /home/cliente/carpeta-cliente
Ahora llego el momento de probar la conexión dirigiéndose al folder desde la maquina o maquinas cliente y verificar que el contenido compartido se encuentra ahí.
cual protocoo es mas rapido para la transferencia de archivos? NFS o samba
cual protocolo es mas rapido para la transferencia de archivos? NFS o samba
Hola Luis, realmente la velocidad depende de tu red.
Samba y NFS son dos protocolos distintos.
Samba sirve para compartir carpetas que puedan ser accedidas desde cualquier otro sistema (Android, windows, linux, etc)
NFS es un protocolo que se instala en modo servidor en la maquina donde tengas la carpeta que desees compartir y como cliente en la maquina linux donde quieras montarla como si de un filesystem local mas se tratase (lo puedes montar en cada sesion o configurarlo en el fichero fstab para que se monte cada vez que inicias).
Espero haber aclarado un poco la diferencia.
Me da error, no has puesto ejemplos, sintax error. Dejas espacios erróneos, así que no sé donde están los errores.
No me vale para nada.