Monte o compartilhamento NFS sem o portmapper

2

Estou tentando usar o NFS em um túnel SSH para compartilhar um diretório. Eu especifico explicitamente a porta TCP 2049, mas aparentemente há mais que eu preciso fazer. Parece ter algo a ver com o serviço "portmapper", com o qual não estou familiarizado. É possível operar o NFS sem ele usando o serviço portmapper? Como eu disse, especifico explicitamente qual porta eu quero usar.

Como demonstro abaixo, se o cliente se conectar diretamente ao compartilhamento, tudo funcionará bem. No entanto, se o cliente tentar se conectar ao compartilhamento por meio de um túnel SSH, isso não funcionará.

Como posso resolver este problema?

Servidor (my-NFS-Server)

root@my-NFS-Server:~# ls -l /consolidate
total 1
-rw-rw-r-- 1 root automation 0 Dec 19 13:33 thisFileExistsOnlyInShareOnServer

root@my-NFS-Server:~# cat /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/zvol/rpool/swap none swap sw 0 0
proc /proc proc defaults 0 0
/consolidate /export/consolidate none bind 0 0

root@my-NFS-Server:~# cat /etc/exportfs
/export *(sync,rw,wdelay,no_root_squash,no_subtree_check,sec=sys,secure,no_all_squash,fsid=0)
/export/consolidate *(sync,rw,wdelay,no_root_squash,no_subtree_check,sec=sys,secure,no_all_squash)

root@my-NFS-Server:~# grep NEED_SVCGSSD /etc/default/nfs-kernel-server
NEED_SVCGSSD=no

root@my-NFS-Server:~# service nfs-kernel-server restart

root@my-NFS-Server:~# ssh -N -R localhost:2049:localhost:2049 root@my-NFS-Client

Cliente (my-NFS-Client)

root@my-NFS-Client-1:~# ls -l /consolidate
total 0

root@my-NFS-Client-1:~# mount -v -t nfs4 -o proto=tcp,port=2049 my-NFS-Server:/consolidate /consolidate
mount.nfs4: timeout set for Wed Dec 20 12:51:49 2017
mount.nfs4: trying text-based options 'proto=tcp,port=2049,vers=4.2,addr=my-NFS-Server,clientaddr=my-FNS-Client'

root@my-NFS-Client-1:~# ls -l /consolidate
total 1
-rw-rw-r-- 1 root automation 0 Dec 19 13:33 thisFileExistsOnlyInShareOnServer

root@my-NFS-Client-1:~# umount /consolidate

root@my-NFS-Client-1:~# ls -l /consolidate
total 0

root@my-NFS-Client-1:~# mount -v -t nfs4 -o proto=tcp,port=2049 localhost:/consolidate /consolidate
mount.nfs4: timeout set for Wed Dec 20 12:52:16 2017
mount.nfs4: trying text-based options 'proto=tcp,port=2049,vers=4.2,addr=127.0.0.1,clientaddr=127.0.0.1'
mount.nfs4: mount(2): Operation not permitted
mount.nfs4: trying text-based options 'proto=tcp,port=2049,addr=127.0.0.1'
mount.nfs4: prog 100005, trying vers=3, prot=6
mount.nfs4: portmap query failed: RPC: Program not registered
mount.nfs4: requested NFS version or transport protocol is not supported

root@my-NFS-Client-1:~# ls -l /consolidate
total 0
    
por Dave 20.12.2017 / 21:10

1 resposta

0

Eu consegui fazer com que o NFS sobre SSH funcionasse da seguinte forma:

  • service stop portmap para liberar a porta TCP local 111 (portmapper)
    • Isso parece realmente ruim para mim, mas desde que eu estava em uma VM de brinquedo, eu fiz isso de qualquer maneira. Sem dúvida, vai quebrar alguma coisa ...
  • ssh user@remote -L 111:nfs-server-name:111
  • rpcinfo -p localhost e encontrar as portas usadas por mountd , foi 300 no meu caso
  • ssh user@remote -L 300:nfs-server-name:300
  • mount -v -t nfs -o proto=tcp,vers=3,nolock localhost:/path /mountpoint
por 11.07.2018 / 19:20