Servidor NFS bajo Ubuntu
NFS es un sistema de archivos distribuido para un entorno de red de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales. A continuación se detalla la configuración del cliente y del servidor.
Configuración en el servidor
Los paquetes necesarios para el funcionamiento del servidor son portmap, nfs-kernel-server y nfs-common. Para la descarga de los mismos ejecutaremos los siguientes comandos:
root@mi_equipo:~# aptitude install portmap
root@mi_equipo:~# aptitude install nfs-kernel-server
root@mi_equipo:~# aptitude install nfs-common
Para la configuración de un servidor de NFS se necesitan editar tres ficheros: /etc/exports, /etc/hosts.deny y /etc/hosts.allow.
/etc/exports
Contiene una linea por directorio a compartir. La estructura de dicha linea es:
directorio equipo1(opcion11,opcion12) equipo2(opcion21,opcion22)
donde:
directorio: Es el directorio a compartir.
equipox: Clientes que tendrán acceso al directorio compartido. Estos equipos se podrán indicar por su IP o dirección DNS(por ejemplo: mi_equipo.ral.com o 192.168.0.69). Recomiendo usar la IP.
optionxx: Son las opciones que nos permitirán tener acceso a esos directorios con determinados privilegios.
- ro | rw : Con la opción ro el directorio será compartido de solo lectura. Esta opción está por defecto.y con la opción rw se permitirá tanto acceso de lectura como de escritura.
- sync | async : sync es la opción recomendada, ya que se ha de respetar el protocolo NFS, es decir, no se responden a las peticiones antes de que los cambios realizados sean escritos al disco. Con la opción async se permite mejorar el rendimiento y agilizar el funcionamiento global, pero supone un riesgo de corrupción de archivos o del sistemas de ficheros en casos de caidas del servidor y/o errores de éste.
- root_squash | no_root_squash | all_squash : root_squash indica que un cliente identificado como root tendrá acceso al directorio con privilegios de un usuario anónimo. Si seleccionamos la opción no_root_squash evitaremos esto, y si indicamos all_squash, entonces aplicaremos esto último a todos los usuarios, no sólo root.
Un ejempo de fichero /etc/exports es el siguiente:
/home/usuario/datos 192.168.0.0(ro,sync,root_squash)
/tmp 192.168.0.0(rw,sync,no_root_squash)
Con este fichero indicaremos que queremos compartir los directorios /home/usuario/datos y /tmp a los hosts de la red 192.168.0.0; /home/usuario/datos se podrá acceder como solo lectura, mientras que al directorio /tmp se tendrá acceso tanto de lectura como de escritura. Se respetará el protocolo NFS, ya que no se responderán a las peticiones que se hagan antes de que los cambios se hayan escrito en disco. Si un usuario root(en el cliente) accede al directorio /home/usuario/datos su privilegios son los mismos que el de un usuario anónimo; todo lo contrario ocurre con el directorio /tmp.
Los ficheros /etc/hosts.allow y /etc/hosts.deny tienen la siguiente estructura:
servicio: host [o red/mascara_subred], host [o red/mascara_subred]
servicio : Es el servicio que estará permitido o denegado para algunas IP’s, en nuestro caso serán portmap y rpc.nfsd.
host [o red/mascara_subred] : Indicará la IP del host de un posible cliente. También pueden indicarse redes con sus correspondientes mascaras de subred.
/etc/hosts.deny
En este fichero pondremos todas las restricciones posibles para hacer mas seguro el sistema. Para ello denegaremos el acceso a portmap, ya que si se deniega portmap, aunque permitas nfs, no se podrá compartir porque éste depende de portmap. Por lo que solo se tendrá acceso a portmap por aquellos equipos que estén definidos en el fichero /etc/hosts.allow. El fichero /etc/hosts.deny quedará:
portmap:ALL
/etc/hosts.allow
En este fichero debe indicar a quienes permitimos el acceso al servicio de nfs y portmap. Se pueden indicar hosts individuales o una red.
portmap:192.168.0.0/255.255.255.0
nfs:192.168.0.0/255.255.255.0
Una vez configurados los ficheros pasamos a arrancar el servicio portmap y rpc.nsfd:
root@mi_equipo:~# /etc/init.d/nfs-common restart
root@mi_equipo:~# /etc/init.d/nfs-kernel-server restart
root@mi_equipo:~# /etc/init.d/portmap restart
NOTA: Tanto el fichero /etc/hosts.deny como el /etc/hosts.allow no es necesario que tengan contenido alguna, pero se recomienda que sean configurados para la seguridad de los datos.
Configuración en el cliente
En el cliente montaremos el directorio exportado por el servidor, para ello ejecutaremos el siguiente comando:
cliente@cliente:~$ mount -t nfs mi_equipo:/tmp /home/cliente/temp
Con el comando anterior montamos el directorio /tmp exportado por el host mi_equipo en el directorio /home/usuario1/temp que previamente habremos creado. A este comando se le puede pasar una serie de opciones, la estructura genérica con las opciones sería:
mount -t nfs -o opcion[:usuario] dir_remoto dir_local
Las opciones son ro, rw, root_squash, no_root_squash, entre otras.
Si queremos que el directorio remoto se monte al arranque del cliente deberemos añadir la siguiente linea al fichero /etc/fstab:
mi_equipo:/tmp /home/cliente/temp nfs defaults,rw 0 0
Esa linea indica que se monte en el directorio /home/cliente/temp el directorio remoto /tmp (el directorio que exporta el servidor que se ha puesto como ejemplo).
Referencias:
http://nfs.sourceforge.net/nfs-howto/index.html
http://es.wikipedia.org/wiki/NFS
MTB
Muy bien, gracias.
Ivan said this on abril 4, 2007 a 6:17 am |
hola esta muy bien definido el manual de nfs ya segui los pasos pero tengo un probrema como puedo ejecutar o ver los archivos que configure en mi ubuntu me gustaria que me ayudaran por favor
andres said this on abril 14, 2007 a 9:43 pm |
Para ver los archivos, lo único que debes hacer es utilizar un editor, por ejemplo el que utilizastes para configurarlos. Y si a ejecutar te refieres a arrancar los servicios o reiniciarlos utiliza los comandos especificados en el manual. No se si es exactamente lo que querías, de no ser así pregunta lo que no tengas claro.
revartm said this on abril 15, 2007 a 8:54 am |
Hola, tengo una pregunta, ¿Cuanto tiempo te tarda en que el cliente monte su fichero?.
Es decir. ¿Cuanto tiempo te tarda en hacer «mount -t nfs -o opcion[:usuario] dir_remoto dir_local»?
A mí me tarda sobre dos minutos, y el directorio remoto tiene un tamaño muy muy pequeño. Me gustaría mejorar ese tiempo. Estoy buscando infor, si tengo algo ya lo pongo.
Saludos
Miguel Díaz said this on abril 16, 2007 a 2:11 pm |
Normalmente es instantáneo, es decir, que no tarda mucho mas de lo que tardas en ejecutar la instrucción. Por lo menos ese es mi caso.
revartm said this on abril 16, 2007 a 5:59 pm |
hola quisiera saber si esto de nfs tambien se puede hacer de ubuntu a windows y si existe algun manual.
andres said this on abril 18, 2007 a 2:50 pm |
Lo que quieres se hace mediante un servidor de samba. En principio no haremos el manual, pero acabará apareciendo.
revartm said this on abril 18, 2007 a 8:15 pm |
hola tengo tengo una pregunta entiendo muy bien que debo tener 2 equipos uno que es el servidor y otro que va ser el cliente ok pero si en servidor instale los tres paquete que son estos portmap nfs-kernel-server nfs-common estos mismos páquetes los tengo que instalar tambien en mi cliente
skandroso said this on May 13, 2007 a 12:05 am |
En el manual se indica que eso es de la configuración del servidor, por lo que en el cliente no hace falta instalarlo. Supongo que si has hecho esta pregunta es porque te ha surgido algún problema, si es así podías comentarlo para poder solucionarlo.
revartm said this on May 13, 2007 a 11:08 am |
hola ya eh podido lograr que funcione gracias ahora quisiera saber la deficion o para que sireven el nfs-kernelserver y el nfs-common lo eh buscado en interne pero nada mas encontre el de portmap espero pronto su respuesta
nota:siempre linux
skandroso said this on May 28, 2007 a 10:29 pm |
NFS-KERNEL_SERVER : es el servidor en sí.
NFS-COMMON : NFS support files common to client and server, te dejo la traducción por si lo hago mal ;P.
revartm said this on May 31, 2007 a 5:31 pm |
hola, amigo ubuntero he leido tu articulo sobre configuracion de un servidor nfs, pero como instalar ubuntu por red, es decir desde un servidor nfs… se puede… gracias de antemano
kike
Enrique Flores Bautista said this on junio 12, 2007 a 3:18 pm |
Hola kike, yo nunca he instalado Ubuntu por red, pero se que se puede. En el siguiente enlace habla como hacerlo con PXE.
http://www.ubuntu-pe.org/?q=node/214
Bueno, si consigues hacerlo nos cuentas como lo has hecho y demás.
Un saludo
MTB
revartm said this on junio 12, 2007 a 7:47 pm |
Gracias por la respuesta… amigo ubuntero si es verdad se puede instalar ubuntu por red… la pagina que me das, me explica como hacerlo pero voy a tener que elaborar un servidor dhcp y bootear con un disket de arranque llamado etherboot cuya pagina es la siguiente http://rom-o-matic.net/ me genera disket bootebles para arrancar por red, bueno el problema es la traduccion ya que no se ingles… pero ese no es impedimento para realizarlo… jejeje para que esta el poderoso google.com.pe/translate jejeje, bueno si logro instalar el ubuntu via nfs , te mando el manual… con los pasos que he seguido, bueno gracias ante todo por la respuesta… seguire leyendo tus articulos tan cheveres…
kike
kike said this on junio 14, 2007 a 1:35 am |
hola amigos una pregunta… esto del servidor nfs acaso es lo mismo que las carpetas compartidas de red o se refiere a compartir aplicaciones. la pregunta es porque yo e instalado ubuntu feisty en una land y no tengo que hacer absolutamente nada para ver las carpetas compartidas de los otros equipos que tienen xp, gracias por la respuesta.
carlos said this on septiembre 12, 2007 a 10:22 pm |
Buenas compañero ubuntero. Hace varios dias que estoy intentando cofigurar nfs en mi servidor de casa pero no consigo exportar ningun volumen ni nada. Cuando intento montarlo en cliente me dice: mount to nfs-server 192.168.123.77 failed.
He realizado un rpcinfo -p pero no me aparece corriendo el rpc de nfs si el de portmap. No se que he tocado en la configuracion que antes si corria el daemon de nfs y escuchaba peticiones.
He seguido los pasos de tu manual pero siguo teniendo problemas.
Por favor echame una manita.
Muchas gracias
jorge said this on septiembre 16, 2007 a 10:53 am |
Hola, me muestra este error al montar la unidad:
cliente:/mnt # mount -t nfs 192.168.1.36:/video2 /mnt/video2/
mount server reported tcp not available, falling back to udp
mount: RPC: Error del sistema remoto – No existe ninguna ruta hasta el `host’
el port de NFS esta abierto, portmap esta corriendo, existe un directorio /mnt/video2 en cliente y en el servidor, no entiendo porque me muestra ese error de TCP.
Gracias por tu tiempo.
misterio said this on septiembre 21, 2007 a 8:24 pm |
AMIGO TENGO CIERTAS PREGUNTAS CON RESPECTO A LA CONFIGURACION DEL PROTOCOLO NFS, TENGO 3 SERVIDORES, 2 BAJO SCO OpenServer Y UNO BAJO UBUNTU, TODOS LOS SERVIDORES LLEGAN A UN ROUTER D-LINK, DEL ROUTER SALE UNA CONEXION HACIA UN SWICHE DE 24PUERTOS EL CUAL ME CONECTA CON DOS REDES, BAJO AMBIENTE WINDOWS, INSTALE EN EL SERVIDOR UBUNTU EL PROGRAMA SAMBA, EL CUAL ME PERMITE CONECTARME CON LAS REDES WINDOWS, EL PROBLEWMA ESTA EN QUE YO PENSABA QUE SE VERIAN LOS SERVIDORES BAJO SCO, PERO NO FUE POSIBLE. ENTONCES ME HABLARON DE EL PROTOCOLO NFS, EL CUAL ME PARECE MUY BUENO EN TEORIA,
¿SI LEVANTO EL SERVICIO EN UBUNTU PODRE VER LAS CARPETAS DE LOS SERVIDORES BAJO SCO O NECESARIAMENTE TENGO QUE INSTALARLO EN LOS SERVIDORES….. PARA DESPUES PODER VER LAS CARPETAS DE LOS MISMOS?, NECESITO QUE A TRAVES DE UBUNTO PODER VER LOS DEMAS SERVIDORES COMO VEO LOS DE LAS REDES WINDOWS, QUE TU ME RECOMIENDAS COMO PROFESIONAL DE UBUNTU PARA PODER VER ESTAS REDES Y LUEGO CONECTARME DESDE FUERA….
ESPERO ME ENTIENDAS LA EXPLICACION Y ME DEVUELVAS EL CORREO
MIGUEL said this on octubre 8, 2007 a 11:09 pm |
[…] Configurar servidor NFS -Ubuntu- […]
Configurar un servidor NFS « Que che vou contar… said this on noviembre 19, 2007 a 9:09 am |
como puedo configurar el servidor y el cliente NFS en windows…..
maria said this on enero 10, 2008 a 1:50 pm |
por favor necesito esa informacion como configurar el servidor y el cliente NFS en Windows no en linux por favor.
maria said this on enero 10, 2008 a 2:15 pm |
Hola:
Antes que nada felicitarte por tu pagina. He instalado NFS segun tus instrucciones, pero tenia instalado el Webmin en mi Ubuntu Server y ha dejado de funcionar. ¿Puede ser debido a esta instalacion de NFS?. El Webmin me esta dando un error de Localhost ha enviado un mensaje inesperado o incorrecto. Codigo de error 12263. No se si es por el NFS o porque tengo instalado una Vmware con el Windows 2003. ¿Como se puede desinstalar el NFS?, por si acaso. ¿Se puede instalar NFS con el Webmin?
Fer said this on enero 15, 2008 a 7:56 pm |
Trabajo con Ubuntu 10.4 he realizado todos los pasos pero me marca en el cliente no tiene permisos
Fernando said this on febrero 4, 2008 a 5:06 pm |
Hola, muchas gracias por el tutorial, esta muy elaborado y se entiende perfectamente. He seguido al pie de la letra las instrucciones pero me da el siguiente error cuando intento ejecutarlo desde el cliente: mount.nfs: mount to NFS server ‘192.168.15.11’ failed: RPC Error: Program not registered. Por la parte del cliente configure el archivo exports de la siguiente manera:/var/www 192.168.15.0/255.255.255.0(rw,sync,no_root_squash)
y cuando le doy reiniciar el servicio nfs-kernel-server me sale el siguiente mensaje: «Neither ‘subtree_check’ or ‘no_subtree_check’ specified for export «192.168.15.0/255.255.255.0:/var/www».
Assuming default behaviour (‘no_subtree_check’).
NOTE: this default has changed since nfs-utils version 1.0.x»
Alguna ayuda que me puedas brindar? Muchas gracias por tu colaboracion
Gabriel said this on marzo 4, 2008 a 10:46 pm |
Perdon, cuando dije que configure el archivo exports en el cliente, no es ahi sino en el servidor 🙂
Gabriel said this on marzo 4, 2008 a 10:48 pm |
hice todo pero no se como asignar los permisos a los usuarios, tengo dos pc con ubuntu (no son miembros de ningun dominio) y cuando quiero entrar al servidor me da access denied, supongo que es porque no reconoce el usuario de la otra pc. Como deberia definir los usuarios en el cliente y en el servidor??? Gracias
nico said this on marzo 7, 2008 a 5:22 pm |
Qué hay de peligroso en establecer la opción async? ¿Se nota la mejora de rendimiento? Merece la pena?
jose said this on junio 30, 2008 a 3:37 pm |
como bajo o encuentro estos paquetes: portmap, nfs-kernel-server, nfs-common
gracias
juan said this on julio 15, 2008 a 10:56 pm |
dices que Los paquetes necesarios para el funcionamiento del servidor son portmap, nfs-kernel-server y nfs-common. Para la descarga de los mismos ejecutaremos los siguientes comandos:
PERO cuando pongo los comandos me sale un mensaje NO SE ENCONTRO NIGUN PAQUETE………….
juan said this on julio 15, 2008 a 11:01 pm |
Funciona!!!, alguien podria indicar cual seria la forma mas eficiente de exportar y montar directorios compartidos mediante NFS esto en cuanto a velocidad para copiar o acceder a estos directorios…
Saludos…
Jhon said this on octubre 21, 2008 a 4:27 pm |
esta buenisimo es lo q necesito para mi trabajo de redes pero quisiera saber si no se puede hacer en modo grafico, o solo x consola, me cuesta un poco mas asi =( gracias de antemano
Henry Nolasco (El Salvador) said this on octubre 22, 2008 a 12:15 pm |
Justo lo que me hacia falta.
Gracias buen manual
StowKewotoFume said this on febrero 18, 2009 a 7:20 pm |
Quizas te falto explicar el funcionamiento del rcpinfo -p server que te especifica los servicios remotos como nfs, nasm portmap del servidor.
Jose Ayerdis said this on junio 8, 2009 a 11:04 pm |
[…] Servidor NFS bajo Ubuntu […]
NFS, Compartiendo archivos en red | La Comunidad DragonJAR said this on agosto 22, 2009 a 10:08 pm |
estoi haciendo un tutorial de configuracion de DNS,NFS,NIS para mis alumnos necesito algo de material con respecto al contenido y sobre todo los posibles comandos a utilizar en cada caso.
david rondon said this on septiembre 13, 2009 a 1:14 am |
Siguiendo las instrucciones funciona perfecto.
Solo agregaría dos sugerencias por el asunto de los permisos.
Al agregar en el fstab del cliente:
mi_equipo:/tmp /home/cliente/temp nfs defaults,rw 0 0
yo propongo no montarlo en /home/cliente sino en un lugar generico para que lo usen varios clientes: /media/temp
Lo segundo es posiblitar que cualquiera pueda leer y escribir dando permisos con:
sudo chmod -R 777 /media/temp
bueno… suponiendo que deseamos poner accesible la carpeta del servidor a cuqalquiera que entre desde la máquina cliente
Carlos Eugenio said this on septiembre 16, 2009 a 9:00 pm |
[…] https://revartm.wordpress.com/2007/03/06/servidor-nfs-bajo-ubuntu/ […]
Servidor NFS bajo Ubuntu « Digitalteam’s Blog said this on junio 21, 2010 a 8:18 am |
Muchísimas gracias! Me ha venido estupendamente, además con los ejemplos que pone se ve todo muy clarito. Un saludo
sotx said this on agosto 25, 2010 a 9:14 am |