# Servidor NFS

## el_alex

Hola a todos!.

quisiera poner un servidor nfs para poder compartir archivos entre maquinas linux.

alguien sabe que paquetes son los que se necesitan para poder llevar a cabo esto.

----------

## Stolz

Lo primero es activar el soporte NFS en el kernel. Hay que activar por separado el soporte para el cliente y servidor, en funcion de si tu ordenador va a ser cliente, servidor o ambos.

```

File systems  ---> Network File Systems  --->

<M> NFS file system support  (nfs)

  [*]   Provide NFSv3 client support

<M> NFS server support(nfsd)

  [*]   Provide NFSv3 server support

# emerge nfs-utils

```

Tendrás que agregar una entrada por cada recurso que quieras compartir en el archivo /etc/exports de la forma:

/directorio maquina1(opciones) maquina2(opciones)

Donde:

directorio es el recurso a compartir, y todos los subdirectorios que pendan de aquel también serán compartidos.

maquinaX es cada uno de los clientes a los que se garantiza acceso al recurso con las opciones de seguridad que se indican al lado. Estas máquinas pueden identificarse indistintamente por su nombre o por su IP, pero hacerlo de la segunda forma es más seguro.

Las opciones podrán ser -entre otras-- ro para sólo lectura, rw para lectura-escritura, no_root_squash para garantizar al root remoto los mismos privilegios que root local (Por el defecto, cualquier petición hecha por el usuario root en la máquina del cliente es tratada como si fuera hecha por el usuario nobody en el servidor. Si se selecciona el no_root_squash, el usuario root en la máquina del cliente tendrá el mismo nivel del acceso a los archivos que el usuario root en el servidor. Esto puede tener implicaciones serias para la seguridad, asi es que no se debe especificar esta opción sin una buena razón).

Para mas informacion sobre las opciones sconsulta http://nfs.sourceforge.net/nfs-howto/server.html#CONFIG

Por ejemplo, yo para compartir en mi el servidor el directorio /usr/portage/ con el ordenador 192.168.0.4 con permisos de l/e y privilegios al root he puesto esta linea

/usr/portage 192.168.0.4(rw,no_root_squash,sync)

Para obtener mas informacion sobre la opcion sync consulta http://nfs.sourceforge.net/nfs-howto/performance.html#SYNC-ASYNC

De esta forma me ahorro bastantes gigas y bastante tiempo, ya que con actualizar ese servidor es como hacer un emerge sync en todos los demas  :Wink: 

Si por ejemplo quieres compartir con toda la red con permisos solo de lectura

/usr/portage 192.168.0.0/255.255.255.0(ro)

En los ficheros /etc/hosts.allow y /etc/hosts.deny del servidor, se definen que clientes pueden usar los directorios:

```
# nano /etc/hosts.deny 

portmap:ALL

lockd:ALL

mountd:ALL

rquotad:ALL

statd:ALL
```

```
# nano /etc/hosts.allow 

portmap: 192.168.0.4

lockd: 192.168.0.4

rquotad: 192.168.0.4

mountd: 192.168.0.4

statd: 192.168.0.4
```

Con estos valores en ambos archivos, por defecto denegamos el acceso a todas las IP's, salvo las del fichero /etc/hosts.allow 

Ahora ya puedes iniciar el servidor:

```
# /etc/init.d/nfs start
```

Lo añades al inicio

```
# rc-update add nfs default
```

Para montar en los ordenadores clientes:

```
# mount servidor:/directororio /mnt/directorio
```

O podemos montarlo automaticamente desde el archivo /etc/fstabs añadiendo la linea

```
servidor:/directorio  /mnt/directorio    nfs          rw            0    0
```

Bueno, creo que eso es todo  :Wink: . Me ha salido una mini guia, estoy por subirla a www.gentoo-es.org  :Rolling Eyes: 

Saludozzzzzz

----------

## focahclero

Aprovechándome de este hilo querría hacer una consulta acerca de NFS.

Resulta que lo he instalado en el curro para probar el LTSP pero no consigo iniciarlo.

```
# /etc/init.d/nfs start

 * Starting portmap...                                                    [ ok ]

 * Starting NFS statd...                                                  [ ok ]

 * Exporting NFS directories...                                           [ ok ]

 * Starting NFS daemon...

 * Error starting NFS daemon                                              [ !! ]

 * Starting NFS mountd...                                                 [ ok ]
```

En messages me aparece 

```
Jun  8 14:33:34 serv portmap: server localhost not responding, timed out
```

 y el nfs daemon se queda varios minutos "pensando" hasta que da el error

He estado buscando por estos foros: hay hilos como este https://forums.gentoo.org/viewtopic.php?t=85766 y varios más pero no han aportado nada a la solución  :Sad: 

He probado con (aunque no me parecía muy lógico)

```
#/etc/hosts.allow

portmap: 127.0.0.1

```

o

```
#/etc/hosts.allow

portmap: localhost
```

El archivo /etc/conf.d/nfs y el de exports no parece que tangan nada que ver... 

¿Hay algún otro log donde mirar? ¿O se os ocurre algo?

Muchas gracias y saludos,

----------

## krawek

tienes que activar nfs en el kernel

----------

## Javier Lopez

focahclero

Asegúrate q tienes el daemon portmap en marcha, en el PC cliente antes de intentar montar los directorios.

----------

## focahclero

Hola, ya había olvidado este hilo que se había quedado en el fondo del foro hace tiempo.

Gracias Javier Lopez y krawek.

Al final resolví el problema ya hace un tiempo después de mucha desesperación: la cuestión es qur tenía una de las opciones del kernel (¡no recuerdo cual!) como módulo. Al ponerla de forma nativa y recompilar el NFS arrancó como la seda  :Smile: 

Saludos,

----------

