Назад | Перейти на главную страницу

Монтирование NFS-сервера через обратный туннель SSH

Вот моя установка:

Я регулярно работаю на полевом компьютере по SSH, проблема в доступе к данным на офисном сервере с полевого компьютера.

До сих пор я решил эту проблему, установив полевой компьютер в свой офисный компьютер с sshfs. Работает нормально, но имеет недостатки. Я хотел бы получать и отправлять информацию непосредственно из моего сеанса SSH, а не из другого локального сеанса на моем локальном офисном компьютере (например, при запуске git из точки монтирования sshfs очень медленно).

Я понимаю, что этого можно добиться с помощью обратного туннеля SSH.

Вот что я пробовал, входя в систему с офисного компьютера (OC) на полевой компьютер (FC):

gauthier@OC $ ssh -R 9001:<nfs_server_name>:2049 FC

(FC настроен в моем ~/.ssh/config)

Насколько я понимаю, это открывает порт 9001 на FC, чтобы выслушать идею OC о <nfs_server_name> на порт 2049.

9001 может быть любым, что не зарезервировано, 2049 - это порт для NFS.

Я могу пинговать <nfs_server_name> от OC.

После SSH к FC, я пытаюсь установить порт как NFS:

gauthier@FC $ mkdir mp_test
gauthier@FC $ sudo mount -t nfs localhost:9001 mp_test/

Это просто зависает, затем истекает время ожидания.

Я подумал, что мне может понадобиться указать путь на сервере NFS, поэтому я также попробовал:

gauthier@FC $ sudo mount -t nfs localhost:9001:/path/to/directory/I/usually/mount mp_test/

Очевидно я делаю что-то не так, либо с портами, либо с mount.

Что работало, так это заставить порт FC 9001 слушать OC <nfs_server_name> на порт 80. Тогда я мог бы открыть localhost:9001 на FC и просмотрите веб-интерфейс сервера NFS. Это заставляет меня думать, что я довольно близок.

Как смонтировать каталог офисного сервера NFS на полевом компьютере?


После еще поиск, Я пробовал это:

gauthier@OC $ ssh -R 5100:<server>:2049 -R 5200:<server>:2233 FC
gauthier@FC $ sudo mount -v -t nfs -o port=5100,mountport=5200 localhost:/path/to/share/dir mp_test
[sudo] password for gauthier: 
mount.nfs: timeout set for Thu Apr 30 14:14:27 2015
mount.nfs: trying text-based options 'port=5100,mountport=5200,vers=4,addr=127.0.0.1,clientaddr=127.0.0.1'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'port=5100,mountport=5200,addr=127.0.0.1'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: portmap query retrying: RPC: Program not registered
mount.nfs: prog 100003, trying vers=3, prot=17
mount.nfs: portmap query failed: RPC: Program not registered
mount.nfs: requested NFS version or transport protocol is not supported

И с tcp (на этом этапе вы можете видеть, что я пробую формулы черной магии, не понимая, что я делаю: /):

gauthier@FC $ sudo mount -v -t nfs -o tcp,port=5100,mountport=5200 localhost:/path/to/share/dir mp_test/
mount.nfs: timeout set for Thu Apr 30 14:15:04 2015
mount.nfs: trying text-based options 'tcp,port=5100,mountport=5200,vers=4,addr=127.0.0.1,clientaddr=127.0.0.1'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'tcp,port=5100,mountport=5200,addr=127.0.0.1'
connect_to <server> port 2233: failed.
connect_to <server> port 2233: failed.
connect_to <server> port 2233: failed.