2

Я пытаюсь использовать NFS через туннель SSH, чтобы разделить каталог. Я явно указываю TCP-порт 2049, но, очевидно, мне нужно сделать еще кое-что. Похоже, что-то связано со службой "portmapper", с которой я не знаком. Можно ли использовать NFS без него, используя службу portmapper? Как я уже сказал, я явно указываю, какой порт я хочу использовать.

Как я покажу ниже, если у меня есть клиент, подключающийся к общему ресурсу напрямую, все работает нормально. Однако, если у меня есть клиент, пытающийся соединиться с общим ресурсом через туннель SSH, это не работает.

Как я могу решить эту проблему?

Сервер (my-NFS-сервер)

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

Клиент (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

1 ответ1

0

Мне удалось настроить NFS поверх SSH, выполнив следующие действия:

  • service stop portmap Port Portmap для освобождения локального TCP-порта 111 (portmapper)
    • Это кажется мне очень плохим, но так как я был на игрушечной ВМ, я все равно это сделал. Без сомнения, это что-то сломает ...
  • ssh user@remote -L 111:nfs-server-name:111
  • rpcinfo -p localhost и найти порты, используемые mountd , в моем случае было 300
  • ssh user@remote -L 300:nfs-server-name:300
  • mount -v -t nfs -o proto=tcp,vers=3,nolock localhost:/path /mountpoint

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .