
這是我的設定:
- 辦公室電腦在網路中,無法從外部訪問,(OC)
- 現場嵌入式計算機 (FC)
- 辦公室中的伺服器,包含現場電腦需要存取的資料。辦公室電腦從這台伺服器掛載目錄,就是NFS
我經常透過 SSH 在現場電腦上工作,問題是從現場電腦存取辦公室伺服器上的資料。
到目前為止,我已經透過將現場電腦安裝在我的辦公室電腦中解決了這個問題sshfs
。它工作正常,但有缺點。我想直接從我的 SSH 會話獲取和推送信息,而不是從本地辦公室計算機上的另一個本地會話獲取和推送信息(例如,git
從 sshfs 安裝點運行非常慢)。
據我所知,這可以透過 SSH 反向隧道來實現。
這是我嘗試過的,從辦公室電腦(OC)登入現場電腦(FC):
gauthier@OC $ ssh -R 9001:<nfs_server_name>:2049 FC
(FC是在我的中設定的~/.ssh/config
)
據我了解,這會在FC上開啟連接埠9001,以監聽OC<nfs_server_name>
在連接埠2049上的想法。
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/
顯然我做錯了什麼,無論是使用 ports 還是使用mount
.
所做的工作是讓FC的9001埠監聽OC的<nfs_server_name>
80埠localhost:9001
。這讓我覺得我已經很接近了。
如何將辦公室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.