Вот моя установка:
Я регулярно работаю на полевом компьютере по 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.