El protocolo NFS (Network File System)
Creado por Sun Microsystems en la década de los 80. Permite compartir archivos entre sistemas GNU/Linux. Es un protocolo cliente-servidor donde el servidor comparte los recursos (almacenamiento) con uno o varios sistemas clientes. Los recursos compartidos se montan en el/los sistemas clientes como si fuesen locales. Por temas de seguridad se recomienda usar las versiones más modernas del protocolo NFSv4.
Servidor (raspberry pi, 192.168.1.18)
Cliente (host, 192.168.1.10)
En el lado del servidor
Servidor (raspberry pi, 192.168.1.18)
1) Instalar el servidor NFS
$sudo su -
#apt install nfs-kernel-server
exit (salir del root, entrar a pi)
2) Crear el directorio a compartir con permisos del usuario pi
$mkdir /home/pi/Desktop/compartido_nfs (con permisos del usuario pi)
3) Reconfigurar /etc/exports (servidor, con permisos de root)
$sudo su -
#nano /etc/exports
Hay que agregar esta línea de comandos al final de este archivo
4) Exportar los directorios
En el lado del cliente
Cliente (host, 192.168.1.10)
apt install nfs-common
Para ver los recursos compartidos por un servidor, si conocemos su IP
showmount -e IP_servidor
showmount -e 192.168.1.18
usuario@host:~$ showmount -e 192.168.1.18
Export list for 192.168.1.18:
/home/pi/Desktop/compartido_nfs 192.168.1.0/24
Creado por Sun Microsystems en la década de los 80. Permite compartir archivos entre sistemas GNU/Linux. Es un protocolo cliente-servidor donde el servidor comparte los recursos (almacenamiento) con uno o varios sistemas clientes. Los recursos compartidos se montan en el/los sistemas clientes como si fuesen locales. Por temas de seguridad se recomienda usar las versiones más modernas del protocolo NFSv4.
Servidor (raspberry pi, 192.168.1.18)
Cliente (host, 192.168.1.10)
En el lado del servidor
Servidor (raspberry pi, 192.168.1.18)

- Es necesario un demonio (proceso) corriendo en el servidor denominado nfsd.
- Es necesario un directorio para compartir.
- Un fichero de configuración donde indicar qué y cómo compartir (/etc/exports).
- Reiniciar el proceso del servidor cada vez que se modifica el fichero de configuración.
- Para ver los recursos exportados solo es necesario ejecutar: cat /etc/exports
1) Instalar el servidor NFS
$sudo su -
#apt install nfs-kernel-server
exit (salir del root, entrar a pi)
2) Crear el directorio a compartir con permisos del usuario pi
$mkdir /home/pi/Desktop/compartido_nfs (con permisos del usuario pi)
3) Reconfigurar /etc/exports (servidor, con permisos de root)
$sudo su -
#nano /etc/exports
Hay que agregar esta línea de comandos al final de este archivo
/home/pi/Desktop/compartido_nfs 192.168.1.0/24(rw,sync,no_subtree_check)
En este caso se comparte con todos los usuarios de esta red
Explicación:
1.- Directorio o ruta a compartir. /home/pi/Desktop/compartido_nfs
2.- Servidor o red con quien compartir. Si se pone * sería con cualquiera que pertenezca a la red.192.168.1.0/24
3.- (Opciones de compartir) (rw,sync,no_subtree_check)
Puede leer y escribir, asegura que los directorios del cliente y servidor están sincronizados , no comprueba los permisos de los directorios superiores.
Posibles opciones
ro: el directorio solo podrá ser montado en el cliente como solo lectura (read only). Es la opción por defecto.
rw: concede permisos de lectura escritura (read and write) sobre el directorio.
root_squash: Evita que el usuario root del cliente mantenga sobre el directorio los mismos privilegios que el root local, se le trata como a un usuario remoto más. Por defecto
no_root_squash: es una opción muy peligrosa ya que permite al usuario root remoto los mismos privilegios sobre el directorio compartido que el root del servidor.
subtree_check: cuando el directorio compartido pertenece a un filesystem, NFS comprueba los directorios por encima de éste para verificar sus permisos y características. Por defecto.
no_subtree_check: Deshabilita la característica anterior, lo que hace que el envío de la lista de archivos sea más rápido, pero puede reducir la seguridad.
sync: asegura que tanto el directorio compartido del servidor como el montado en el cliente están completamente sincronizados.
async: sincronización asíncrona para incrementar la velocidad. Por defecto.
En este caso se comparte con todos los usuarios de esta red
Explicación:
1.- Directorio o ruta a compartir. /home/pi/Desktop/compartido_nfs
2.- Servidor o red con quien compartir. Si se pone * sería con cualquiera que pertenezca a la red.192.168.1.0/24
3.- (Opciones de compartir) (rw,sync,no_subtree_check)
Puede leer y escribir, asegura que los directorios del cliente y servidor están sincronizados , no comprueba los permisos de los directorios superiores.
Posibles opciones
ro: el directorio solo podrá ser montado en el cliente como solo lectura (read only). Es la opción por defecto.
rw: concede permisos de lectura escritura (read and write) sobre el directorio.
root_squash: Evita que el usuario root del cliente mantenga sobre el directorio los mismos privilegios que el root local, se le trata como a un usuario remoto más. Por defecto
no_root_squash: es una opción muy peligrosa ya que permite al usuario root remoto los mismos privilegios sobre el directorio compartido que el root del servidor.
subtree_check: cuando el directorio compartido pertenece a un filesystem, NFS comprueba los directorios por encima de éste para verificar sus permisos y características. Por defecto.
no_subtree_check: Deshabilita la característica anterior, lo que hace que el envío de la lista de archivos sea más rápido, pero puede reducir la seguridad.
sync: asegura que tanto el directorio compartido del servidor como el montado en el cliente están completamente sincronizados.
async: sincronización asíncrona para incrementar la velocidad. Por defecto.
4) Exportar los directorios
#exportfs -arv
opción
opción
opción
Una vez configurado el servidor, es necesario reiniciar el servicio para que funcione correctamente,
5)Reiniciar el servicio en el servidor
#/etc/init.d/nfs-kernel-server restart -a
exporta todos los directoriosopción
-r
eliminará las entradas antiguas,opción
-v
nos mostrará el resultado de la ejecución.Una vez configurado el servidor, es necesario reiniciar el servicio para que funcione correctamente,
5)Reiniciar el servicio en el servidor
En el lado del cliente
Cliente (host, 192.168.1.10)
- Es necesario un proceso corriendo en el cliente o clientes que permita enlazar con el servidor.
- Montar en local el recurso compartido de forma temporal (mount).
- O bien, montar el recurso compartido de forma permanente (/etc/fstab).
- Para ver los recursos compartidos de un servidor desde el lado del cliente hay que ejecutar: showmount -e IP_SERVIDOR.
- Para ver los recursos montados de un servidor externo usar: df -h
1) Instalar el cliente NFS
sudo su - apt install nfs-common
Para ver los recursos compartidos por un servidor, si conocemos su IP
showmount -e IP_servidor
showmount -e 192.168.1.18
usuario@host:~$ showmount -e 192.168.1.18
Export list for 192.168.1.18:
/home/pi/Desktop/compartido_nfs 192.168.1.0/24
2) Crear el directorio donde montar el recurso compartido: (/mnt/nfs/nfs_raspi) como root
mkdir /mnt
cd mnt
mkdir nfs
mkdir /mnt
cd mnt
mkdir nfs
cd nfs
mkdir nfs_raspi
mkdir nfs_raspi
3) Editamos un fichero de configuración para que este de forma permanente aunque reiniciemos el sistema
Editar el fichero /etc/fstab incluyendo la línea:
sudo su -
nano /etc/fstab
Agregamos estas líneas al final
#Chito NFS de raspberry, comentar la línea "#" cuando este apagada la raspi. Para que reinicie rápido el host, sino quedará más de 1 min esperando
#192.168.1.18:/home/pi/Desktop/compartido_nfs /mnt/nfs/nfs_raspi nfs defaults 0 0
ctrl+o
sudo su -
nano /etc/fstab
Agregamos estas líneas al final
#Chito NFS de raspberry, comentar la línea "#" cuando este apagada la raspi. Para que reinicie rápido el host, sino quedará más de 1 min esperando
#192.168.1.18:/home/pi/Desktop/compartido_nfs /mnt/nfs/nfs_raspi nfs defaults 0 0
ctrl+o
ctrl+x
4) Montamos el recurso (como root)
#mount -a
192.168.1.18:/home/pi/Desktop/compartido_nfs 28G 3,4G 23G 13% /mnt/nfs/nfs_raspi
4) Montamos el recurso (como root)
#mount -a
5) Vemos si se ha montado correctamente
Mediante df -h podremos ver el recurso compartido montado.
df -h Mediante df -h podremos ver el recurso compartido montado.
192.168.1.18:/home/pi/Desktop/compartido_nfs 28G 3,4G 23G 13% /mnt/nfs/nfs_raspi
6) Enlace simbólico en el Escritorio del usuario (como usuario chito)
cd /home/usuario/Escritorio
ln -s /mnt/nfs/nfs_raspi nfs_raspi
Se puede compartir NAS de música, vídeo e imágenes. Así desde cualquier equipo puedo consumir todo el material multimedia. Y el otro uso que le doy es para realizar copias de seguridad en el NAS. De esta forma es como si lo hicieras de forma local.
NOTA: si el servidor NFS está apagado, el arranque del cliente se quedará más de 1 minuto esperando para conectarse con el servidor. Por lo que aconsejo descomentar la línea en /etc/fstab hacia el recurso compartido sino va a estar encendido.
ln -s /mnt/nfs/nfs_raspi nfs_raspi
Es sencillo de compartir un directorio con todos los equipos de tu red. Con todos o con algunos. El montaje puede ser persistente, es como si trabajaras con un directorio local. De esta forma, realizar operaciones como copias de seguridad u otras operaciones del estilo, se vuelve algo realmente sencillo.
Se puede compartir NAS de música, vídeo e imágenes. Así desde cualquier equipo puedo consumir todo el material multimedia. Y el otro uso que le doy es para realizar copias de seguridad en el NAS. De esta forma es como si lo hicieras de forma local.
NOTA: si el servidor NFS está apagado, el arranque del cliente se quedará más de 1 minuto esperando para conectarse con el servidor. Por lo que aconsejo descomentar la línea en /etc/fstab hacia el recurso compartido sino va a estar encendido.
Fuentes
- IFC10CM18 .ADMINISTRACIÓN AVANZADA DE LINUX. Ponente: Jesús Urcera López. Octubre 2018. Comunidad de Madrid.
- Como compartir directorios en red local con NFS en Ubuntu. URL: https://www.atareao.es/software/utilidades/compartir-directorios-red-local/
Comentarios
Publicar un comentario