SSH 역방향 터널을 통해 NFS 서버 마운트

SSH 역방향 터널을 통해 NFS 서버 마운트

내 설정은 다음과 같습니다.

  • 외부에서 접근할 수 없는 네트워크상의 사무실 컴퓨터(OC)
  • 현장에 내장된 컴퓨터(FC)
  • 현장 컴퓨터가 액세스해야 하는 데이터가 포함된 사무실의 서버입니다. 사무실 컴퓨터는 이 서버의 디렉토리를 마운트하며 이는 NFS입니다.

나는 정기적으로 SSH를 통해 현장 컴퓨터에서 작업하는데, 문제는 현장 컴퓨터에서 사무실 서버에 있는 데이터에 액세스하는 것입니다.

지금까지는 sshfs. 잘 작동하지만 단점이 있습니다. 내 로컬 사무실 컴퓨터의 다른 로컬 세션이 아닌 내 SSH 세션에서 직접 정보를 가져오고 푸시하고 싶습니다(예: gitsshfs 마운트 지점에서 실행하는 것이 매우 느림).

나는 이것이 SSH 역방향 터널을 통해 달성될 수 있다는 것을 이해합니다.

다음은 사무실 컴퓨터(OC)에서 현장 컴퓨터(FC)로 로그인을 시도한 것입니다.

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

(FC는 내 에 설정되어 있습니다 ~/.ssh/config)

내가 아는 한, 이는 FC에서 포트 9001을 열어 <nfs_server_name>포트 2049에 대한 OC의 아이디어를 수신합니다.

9001은 예약되지 않은 포트일 수 있으며, 2049는 NFS용 포트입니다.

<nfs_server_name>OC에서 ping을 보낼 수 있습니다 .

FC를 수행 한 후 SSH포트를 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이 <nfs_server_name>포트 80에서 OC의 신호를 수신하도록 만드는 것입니다. 그러면 FC에서 열고 localhost:9001NFS 서버의 웹 인터페이스를 볼 수 있습니다. 이것은 내가 꽤 가깝다고 생각하게 만듭니다.

현장 컴퓨터에 사무실 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.

관련 정보