Sobre cómo compartir carpetas con NFS

Hola, ante la entrada en mi casa de un segundo ordenador con Ubuntu he tenido que comprar un cable cruzado para poder conectar ambos y pasar así mis datos importantes y también mis chorradas del uno al otro.

Sucede que he podido conectarlos correctamente y puedo incluso hacer un ping de uno al otro, pero sin embargo al acceder a "servidores de red" las carpetas compartidas por NFS no aparecen en absoluto, y para acceder a los archivos compartidos por Samba, aparte de ir lentísimo, me pide contraseña (la cual por supuesto desconozco porque no he puesto ninguna).

Las carpetas las he compratido mediante la opción de sistema -> administración -> carpetas compartidas. ¿Qué puede haber ido mal?
Hola Davix, gracias por contestar.

A ver... he seguido la guía pero las carpetas siguen sin aparecer, así que imagino que he hecho algo mal.

Para empezar: las dos máquinas están correctamente conectadas entre sí. Los datos de conexión que he usado son:

PC 1:

dirección IP 192.168.0.1
máscara subred 255.255.255.0
dirección puerta enlace 192.168.0.1

PC2:

dirección IP 192.168.0.2
máscara subred 255.255.255.0
dirección puerta enlace 192.168.0.1

Si desde el PC1 hago un ifconfig:

eth0 Link encap:Ethernet HWaddr 00:40:D0:7E:EA:07
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::240:d0ff:fe7e:ea07/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:225 errors:0 dropped:0 overruns:0 frame:0
TX packets:354 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:21539 (21.0 KiB) TX bytes:23353 (22.8 KiB)
Interrupt:225 Base address:0xe000

Y si hago ping 192.168.0.2:

PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=0.388 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttl=64 time=0.101 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttl=64 time=0.104 ms
64 bytes from 192.168.0.2: icmp_seq=4 ttl=64 time=0.104 ms
64 bytes from 192.168.0.2: icmp_seq=5 ttl=64 time=0.103 ms
64 bytes from 192.168.0.2: icmp_seq=6 ttl=64 time=0.089 ms

En fin: que están conectados. veamos pues la guía:

$ sudo aptitude install nfs-common
$ sudo aptitude install nfs-kernel-server


el primer paquete está instalado, pero no el segundo ya que tendría que desinstalar nfs-user-server y según me dijeron es necesario. ¿Cuál es la diferencia entre estos dos paquetes? ¿Cuál tienes instalado tú?

$ sudo gedit /etc/hosts.deny


Bien, así ha quedado. ¿Es correcto?

# /etc/hosts.deny: list of hosts that are _not_ allowed to access the system.
# See the manual pages hosts_access(5), hosts_options(5)
# and /usr/doc/netbase/portmapper.txt.gz
#
# Example: ALL: some.host.name, .some.domain
# ALL EXCEPT in.fingerd: other.host.name, .other.domain
#
# If you're going to protect the portmapper use the name "portmap" for the
# daemon name. Remember that you can only use the keyword "ALL" and IP
# addresses (NOT host or domain names) for the portmapper. See portmap(8)
# and /usr/doc/portmap/portmapper.txt.gz for further information.
#
# The PARANOID wildcard matches any host whose name does not match its
# address.

# You may wish to enable this to ensure any programs that don't
# validate looked up hostnames still leave understandable logs. In past
# versions of Debian this has been the default.
# ALL: PARANOID
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL


$ sudo gedit /etc/hosts.allow


Así ha quedado. ¿Es correcto?

# /etc/hosts.allow: list of hosts that are allowed to access the system.
# See the manual pages hosts_access(5), hosts_options(5)
# and /usr/doc/netbase/portmapper.txt.gz
#
# Example: ALL: LOCAL @some_netgroup
# ALL: .foobar.edu EXCEPT terminalserver.foobar.edu
#
# If you're going to protect the portmapper use the name "portmap" for the
# daemon name. Remember that you can only use the keyword "ALL" and IP
# addresses (NOT host or domain names) for the portmapper, as well as for
# rpc.mountd (the NFS mount daemon). See portmap(8), rpc.mountd(8) and
# /usr/share/doc/portmap/portmapper.txt.gz for further information.
#
portmap: 192.168.0.2
lockd: 192.168.0.2
rquotad: 192.168.0.2
mountd: 192.168.0.2
statd: 192.168.0.2


¿O debería ser así?

portmap: 192.168.0.
lockd: 192.168.0.
rquotad: 192.168.0.
mountd: 192.168.0.
statd: 192.168.0.


$ sudo gedit /etc/default/portmap

#ARGS="-i 127.0.0.1"


# Portmap configuration file
#
# Note: if you manually edit this configuration file,
# portmap configuration scripts will avoid modifying it
# (for example, by running 'dpkg-reconfigure portmap').

# If you want portmap to listen only to the loopback
# interface, uncomment the following line (it will be
# uncommented automatically if you configure this
# through debconf).
#OPTIONS="-i 127.0.0.1"


Ya ves que la parte de "ARGS" no existe, es OPTIONS. De todos modos, al ir comentado no importa ¿verdad?

$ sudo gedit /etc/exports


Así está mi archivo:

# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
/home/david/mp3 192.168.0.0/255.255.255.0(rw)


De todos modos, ¿me equivoco o esta última parte ya se puede hacer de forma gráfica mediante "sistema ->administración -> carpetas compartidas"?

La parte de importar el directorio no la he hecho porque no quiero montar la carpeta en el equipo, simplemente quiero acceder a ella mediante "lugares -> servidores de red". ¿Es una parte imprescindible del proceso y me la he saltado? ¿No es necesario?

Ya aparte de eso, ¿por qué es necesario configurar todos esos archivos de texto para poder compartir una carpeta? ¿Hay algún motivo para no poder hacerlo por defecto?

Gracias por tu ayuda y a todos por vuestra comprensión. Quedo a la espera de leer vuestras respuestas.
No me he mirado todo porque no tengo tiempo, pero así a primera vista te diría que te falta añadir tus equipos/red en el hosts.allow, algo así:

ALL: 192.168.0.

El hosts.deny no es necesario, sólo por seguridad, así que hasta que te funcione lo que quieres puedes comentarlo todo.

Un saludo.
bastian escribió:No me he mirado todo porque no tengo tiempo, pero así a primera vista te diría que te falta añadir tus equipos/red en el hosts.allow, algo así:

ALL: 192.168.0.


A ver, ahora mismo lo tengo así:

portmap: 192.168.0.2
lockd: 192.168.0.2
rquotad: 192.168.0.2
mountd: 192.168.0.2
statd: 192.168.0.2


¿Tendría que quedar así?

ALL: 192.168.0.
portmap: 192.168.0.
lockd: 192.168.0.
rquotad: 192.168.0.
mountd: 192.168.0.
statd: 192.168.0.2
No sé que coño he leído antes. Con lo que tienes te debería bastar, aunque en realidad también puedes usar lo que te he puesto para ver que funciona.

De todas formas, me he fijado en una cosa:
PC 1:

dirección IP 192.168.0.1
máscara subred 255.255.255.0
dirección puerta enlace 192.168.0.1

Eso no tiene muy buena pinta, míralo no vaya a ser eso lo que te ralentice la red.

Por otra parte, tendrás corriendo los servicios necesarios, ¿no?

Un saludo.
yo tengo instalado el paquete nfs-kernel-server, y el hosts.allow lo tengo así:
ALL: 192.168.0.*
portmap: 192.168.0.*
lockd: 192.168.0.*
rquotad: 192.168.0.*
mountd: 192.168.0.*
statd: 192.168.0.*

(con asteriscos al final)

respecto a lo de ARGS y OPTIONS, al ir comentado, supongo que no importa... tampoco entiendo demasiado eso...

el archivo exports.... yo lo tengo sin poner direcciones IP niguna, es decir, en tu caso, quedaría así:
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
/home/david/mp3 (rw)


Reinicia los demonios:
$ sudo /etc/init.d/nfs-common restart
$ sudo /etc/init.d/nfs-kernel-server restart
$ sudo /etc/init.d/portmap restart



En el ordenador cliente, edita el archivo /etc/hosts, añade la siguiente línea:
192.168.0.1 (nombre de tu PC servidor)

en mi caso está así:
192.168.1.6 davidubuntu

luego, intenta montar como root la carpeta, usa:
mount -t nfs (nombre PC servidor):/home/david/mp3 (carpeta destino, por ejemplo /home/servidor)

yo en mi caso lo hago así:
mount -t nfs davidubuntu:/home/compartido /home/davidPC

Si no te da ningún error, y ves los archivos, es que vamos de puta madre :P
Edita el /etc/fstab y añade lo siguiente:
(nombre PC servidor):/home/david/mp3 (carpeta destino, por ejemplo /home/servidor) nfs defaults,auto

mi ejemplo:
davidubuntu:/home/compartido /home/davidPC nfs defaults,auto

Con esto, se montará cada vez que inicies el ordenador.

Espero que te sirva de ayuda ;)

Salu2.
6 respuestas