El protocolo NFS se implementa con arquitectura cliente-servidor, por lo que necesita:
un servidor NFS en la máquina remota, que exporta el directorio.
un cliente NFS en la máquina local, monta el directorio.
NFS trabaja sobre RPC
El servidor NFS trabaja sobre RPC (Remote Procedure Call), protocolo que utiliza como capa de transporte UDP.
Los servidores que trabajan sobre RPC no tienen puertos asignados oficialmente, por lo que cuando arrancan, contactan con el daemon portmap y le informan de qué puerto usan.
Cuando un cliente quiere contactar con un servidor RPC, contacta primero con portmap, que escucha en el puerto 111 TCP y le pregunta cuál es el puerto correspondiente al servidor en cuestión. Una vez que conoce ese dato, el cliente ya puede contactar directamente con el servidor.
Para ver los servicios RPC que tenemos activos y el puerto utilizado por cada uno, haremos:
$ rpcinfo -p
Servidor NFS
Una vez instalado el servidor NFS, editaremos el archivo de configuración /etc/exports para definir qué directorios exportamos y quién puede acceder. La sintaxis de /etc/exports es la siguiente:
Por ejemplo:
/home/usuario 192.168.1.0/255.255.255.0(ro,sync)
/home/usuario 192.168.1.2(ro,sync) 192.168.1.4(rw,sync)
La opción ro es "sólo lectura" y rw "lectura y escritura".
Guardamos los cambios y reiniciamos el servidor:
# /etc/init.d/nfs restart
Para ver los directorios que están siendo compartidos haremos:
# exportfs
Podemos saber los clientes NFS conectados mirando /var/lib/nfs/rmtab:
$ cat /var/lib/nfs/rmtab
Cliente NFS
Para montar un directorio exportado usaremos mount, que es el cliente para NFS:
# mount -t nfs 192.168.1.4:/home/usuario /mnt
Lo desmontaremos con umount:
# umount /mnt
Para montarlo durante el arranque añadiremos una línea a /etc/fstab:
# File_system Mount_point Type Options Dump Pass
192.168.1.4:/home/usuario /mnt nfs rw,hard,intr 0 0