Montando o servidor NFS através do túnel reverso SSH

Montando o servidor NFS através do túnel reverso SSH

Aqui está minha configuração:

  • Computador de escritório em rede, sem possibilidade de acesso externo, (OC)
  • computador embarcado em campo (FC)
  • Servidor no escritório, contendo dados aos quais o Envizio Pro precisa acessar. O computador do Office monta um diretório deste servidor, é NFS

Eu trabalho regularmente no Envizio Pro através de SSH, o problema é acessar os dados no servidor do escritório a partir do Envizio Pro.

Até agora resolvi isso montando o Envizio Pro no meu computador de escritório com arquivos sshfs. Funciona bem, mas tem desvantagens. 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 gita partir do ponto de montagem sshfs é muito lento).

Entendo que isso poderia ser alcançado por um túnel reverso SSH.

Aqui está o que eu tentei, fazendo login do computador do escritório (OC) para o computador de campo (FC):

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

(FC está configurado no meu ~/.ssh/config)

Pelo que entendi, isso abre a porta 9001 no FC, para ouvir a ideia do OC <nfs_server_name>na porta 2049.

9001 pode ser qualquer coisa que não esteja reservada, 2049 é a porta para NFS.

Eu posso fazer ping <nfs_server_name>do OC.

Depois SSHdo FC, tento montar a porta como NFS:

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

Isso simplesmente trava e depois expira.

Achei que seria necessário fornecer um caminho no servidor NFS, então 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 arquivos mount.

O que tem funcionado é fazer com que a porta 9001 do FC escute os OCs <nfs_server_name>na porta 80. Aí eu poderia abrir localhost:9001no FC e ver a interface web do servidor NFS. Isso me faz pensar que estou bem perto.

Como monto o diretório do servidor NFS do escritório no Envizio Pro?


Depoismais um pouco de pesquisa, 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 ponto 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.

informação relacionada