Aqui está minha configuração:
Eu trabalho regularmente no computador de campo através do SSH, o problema é acessar os dados no servidor do escritório a partir do computador de campo.
Até agora, resolvi isso montando o computador de campo no computador do meu escritório com sshfs
. Funciona bem, mas tem desvantagens. Eu gostaria de obter e enviar informações diretamente da minha sessão SSH, não de outra sessão local no computador do meu escritório local (por exemplo, executar git
do ponto de montagem sshfs é muito lento).
Eu entendo que isso poderia ser alcançado por um túnel reverso do SSH.
Eis o que tentei, efetuando login do computador do escritório (OC) no computador de campo (FC):
gauthier@OC $ ssh -R 9001:<nfs_server_name>:2049 FC
(o FC está configurado no meu ~/.ssh/config
)
Tanto quanto eu entendo, isso abre a porta 9001 no FC, para ouvir a ideia do OC de <nfs_server_name>
na porta 2049.
9001 pode ser qualquer coisa que não seja reservada, 2049 é a porta para o NFS.
Eu posso pingar <nfs_server_name>
do OC.
Depois de SSH
para FC, tento montar a porta como NFS:
gauthier@FC $ mkdir mp_test
gauthier@FC $ sudo mount -t nfs localhost:9001 mp_test/
Isso apenas trava, depois expira.
Eu pensei que eu poderia precisar dar um caminho no servidor NFS, então eu também tentei:
gauthier@FC $ sudo mount -t nfs localhost:9001:/path/to/directory/I/usually/mount mp_test/
Obviamente, estou fazendo algo errado, seja com portas ou com mount
.
O que tem funcionado é fazer com que a porta 9001 do FC escute <nfs_server_name>
do OC na porta 80. Então eu poderia abrir localhost:9001
no FC e ver a interface web do servidor NFS. Isso me faz pensar que estou bem perto.
Como faço para montar o diretório do servidor NFS do escritório no computador de campo?
Depois de mais algumas pesquisas Eu tentei isso:
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
E com tcp
(neste momento você pode ver que estou tentando fórmulas de magia negra sem entender o que estou fazendo: /):
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.
Tags ssh mount nfs ssh-tunnel