Internet, Informática y Tecnología

Compartir archivos con NFS servidor Ubuntu y Windows 10

Linux NFS Share

En esta breve guía les hablaré sobre cómo montar una unidad compartida que se encuentre en una instalación de Ubuntu o Debian, que será el servidor con la unidad NFS (Network File System), en una unidad de red accesible desde Windows 10 que jugará el rol de cliente. Si necesitamos solamente instalar NFS podemos usar esta guía.

Instalación y configuración en Ubuntu o Debian como servidor

En el caso de Debian, quitar sudo en cada comando (incluso se puede ejecutar igual).

Instalamos el paquete "nfs-kernel-server":

sudo apt install nfs-kernel-server

Opciones de la unidad

Luego editamos el archivo /etc/exports con nano o con el editor de nuestra preferencia.

sudo nano /etc/exports

El archivo contiene comentarios como los siguientes:

# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).

Agregamos una línea al final con lo siguiente:

/home/user/folder 192.168.0.10(rw,sync,all_squash,anonuid=1000,anongid=1000)

En el ejemplo anterior:

/home/user/folder es la carpeta que será compartida por la red.

192.168.0.10 es la IP del cliente o, clientes que van a acceder al recurso de red. Se muestra únicamente una IP estática, pero podemos usar 192.168.0.1/24 que abarca desde la IP 192.168.0.1 hasta 192.168.0.254.

Las opciones de montaje son las siguientes.

  • rw es para permitir lectura y escritura.
  • sync es opcional en caso de que queramos un poco más de integridad de archivos y evitar pérdida de datos, sacrificando un poco de rendimiento.
  • all_squash es una opción que degrada los permisos de los archivos creados desde el cliente al usuario nobody. Por ejemplo, si en Windows 10 estoy como Administrador y creó un nuevo archivo, este pertenece al usuario nobody.
  • anonuid es el ID del usuario nobody, o en un caso específico el de cualquier usuario.
  • anongid es el ID del grupo del usuario nobody.

En este caso establecí anonuid y anongid a 1000, que viene siendo el usuario que es dueño de la carpeta /home/user/folder para conservar permisos de ejecución y escritura.

Con los cambios realizados guardamos el archivo CTRL + O, luego Enter, y entonces cerramos con CTRL + X, esto solo si usamos el editor nano desde la terminal.

Reiniciamos el servidor NFS:

sudo service nfs-kernel-server restart

Con esto quedará lista la configuración en el servidor, cualquier error que aparezca al reiniciar hay que revisar bien la configuración y obviamente la descripción del error.

Instalación y configuración del cliente en Windows 10

Windows viene con un cliente por defecto, pero necesita ser instalado, el único detalle es que no recuerdo si está disponible en la versión Windows 10 Home.

La forma más sencilla de instalarlo es usar el buscador y escribir Panel de control, ya que Windows 10 tiene varios paneles modernos que solo ocultan las opciones más antiguas. Abrimos ProgramasProgramas y características y en el panel izquierdo abrimos Activar o desactivar las características de Windows.

caracteristicas windows nfs

Marcamos la casilla Servicios para NFS con sus dos descendientes Cliente para NFS y Herramientas administrativas. Hacemos clic en Aceptar y después de un tiempo el cliente quedará instalado.

Montar la unidad de red

Para montar la unidad abrimos el cmd (no usar PowerShell). Usamos el comando:

mount -o anon \\192.168.0.20\home\user\folder k:

La IP 192.168.0.20 es el servidor, seguida del recurso compartido y luego la letra de la unidad que se usará. Es importante usar la ruta completa real del recurso como si estuviéramos personalmente en el ordenador con la carpeta /home/user/folder, de lo contrario no funcionara. He intentado tratar de ocultar parte de la ruta al montar la unidad, pero es un proceso complicado y no vale el esfuerzo extra.

El mensaje: El comando se completó correctamente. indica que todo funcionó correctamente.

Permisos de escritura para el usuario anónimo

Normalmente y de manera predeterminada Windows no permite la escritura en este tipo de unidades con el usuario anónimo. Para habilitar la escritura tenemos que abrir el registro de Windows "Regedit", y nos dirigimos hacia la siguiente ruta: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default.

Ahí crearemos un valor de DWORD (32-bits) con el nombre AnonymousUid con el valor 0 con base Decimal. Luego creamos otro valor de DWORD (32-bits) con el nombre AnonymousGid con el valor 0 con base Decimal.

Tenemos que reiniciar el equipo o el servicio Cliente para NFS, lo podemos encontrar en el administrador de tareas en la pestaña Servicios.

windows regedit

Si seguimos todos los pasos anteriores y ya tenemos la unidad montada, abrimos el CMD y ejecutamos el comando mount, aparecerá el montaje y en propiedades saldrá UID=0 y GID=0. Si aparece cualquier otro número, verificar todo el procedimiento anterior.

cmd comando mount

Notas: el procedimiento es prácticamente el mismo tanto en Ubuntu como en Debian, o cualquier otra variación como Kubuntu. No es necesario usar Ubuntu Server. La versión de NFS que se usará es la 3 con Ubuntu 18.04 - 64-bits y Windows 10.

Contenido relacionado