Inicio Montar carpetas remotas con NFS
Entrada
Cancelar

Montar carpetas remotas con NFS

Hoy el post va sobre cómo compartir carpetas entre dos equipos que están en la misma red.

Tenemos dos equipos: A y B. En el equipo B tenemos la carpeta que queremos compartir. Para ello usaremos NFS (Network File System), que vamos a mantener en funcionamiento como un servicio en segundo plano.

En el equipo A vamos a instalar autofs, que se va a encargar del montaje de la carpeta del equipo B como si fuese una carpeta local.

  1. Empezamos con el servidor NFS.
1
2
3
sudo apt update
sudo apt install nfs-kernel-server

  1. Nos aseguramos de que está creada la carpeta que queremos compartir.
1
sudo mkdir -p /mnt/shared
  1. Editamos el archivo de exportación NFS (/etc/exports) y le añadimos la siguiente línea, donde tenemos que poner la ip del equipo A para que este tenga acceso a la carpeta compartida.
1
/mnt/shared 192.168.1.10(rw,sync,no_subtree_check)
  1. Aplicamos la configuración.
1
sudo exportfs -ra
  1. Ahora nos vamos al equipo A e instalamos lo que vamos a necesitar.
1
2
sudo apt update
sudo apt install nfs-common autofs
  1. Ahora vamos a configurar autofs editando el archivo /etc/auto.master agregándole la siguiente línea, que va a apuntar al archivo de mapa donde vamos a definir el montaje.
/- /etc/auto.nfs-shares
  1. Añadimos la siguiente línea al alchivo /etc/auto.nfs-shares, donde /mnt/B_shared es la carpeta del equipo A donde vamos a montar la del equipo B.
1
2
/mnt/B_shared -fstype=nfs,rw 192.168.1.20:/mnt/shared

  1. Nos aseguramos de que exista la carpeta del equipo A donde vamos a hacer el montaje.
1
sudo mkdir -p /mnt/B_shared
  1. Reiniciamos autofs.
1
sudo systemctl restart autofs
  1. Ahora toca definir los puertos que vamos a abrir en el cortafuegos del equipo B para que tengan conectividad. Para ello comenzamos editando el archivo /etc/nfs.conf. Los puertos 21132 y 31455 son aleatorios, con lo que puedes poner los que quieras.
1
2
3
4
5
6
7
8
9
10
11
[mountd]
port = 21132

[statd]
port = 31455
outgoing-port = 31456

[nfsd]
tcp-port = 2049
udp-port = 2049

  1. Reiniciamos el servidor NFS.
1
sudo systemctl restart nfs-kernel-server
  1. Por último, abrimos los puertos que necesitamos en nuestro firewall. Así quedaría mi configuración de nftables (/etc/nftables.conf).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
flush ruleset

table inet filter {
        chain input {
                 type filter hook input priority 0; policy drop;

                 # accept any localhost traffic
                 iif lo accept

                 # accept traffic originated from us
                 ct state established,related accept

                 # accept neighbour discovery otherwise IPv6 connectivity breaks
                 icmpv6 type { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert } accept
                 
                 # nfs
                 tcp dport 111 ip saddr 192.168.1.10 accept
                 tcp dport 2049 ip saddr 192.168.1.10 accept
                 udp dport 2049 ip saddr 192.168.1.10 accept
                 tcp dport 21132 ip saddr 192.168.1.10 accept
                 tcp dport 31455 ip saddr 192.168.1.10 accept
                 tcp dport 31456 ip saddr 192.168.1.10 accept

        }
}
  1. Reiniciamos nftables y averiguado: ya tenemos carpetas compartidas.
1
sudo systemctl restart nftables
Esta entrada está licenciada bajo CC BY 4.0 por el autor.