配置SSH隧道訪問Ubuntu伺服器上的MongoDB

來源:互聯網
上載者:User

標籤:儲存   http   logs   shel   nat   映射   選項   .com   tin   

為了資料安全,在MongoDB的設定檔裡,一般會把預設的27017連接埠port改為自訂的連接埠號碼,然後把允許訪問的IP設為127.0.0.1(即主機本身)。但是這樣就會在開發的過程查看資料時帶來麻煩,必須去伺服器端或調用部署在伺服器的API介面才能很好地可視化地查詢資料。為了能在用戶端也能使用視覺化檢視,可以建立一條SSH隧道,直接在用戶端訪問遠程伺服器的資料庫。

本文例子基於以下開發環境:

伺服器端:Ubuntu 16.04 x86_64,MongoDB 3.4.6

用戶端:Windows10 x86_64,Robomongo 1.0.0-RC1,PuTTY或XShell

=========================================================================

有兩種思路可以建立SSH隧道以實現用戶端Robomongo訪問伺服器MongoDB,一是使用PuTTY或XShell串連伺服器時建立隧道,將伺服器的MongoDB監聽連接埠映射到用戶端的指定連接埠,這樣在用戶端使用Robomongo串連本地的指定連接埠即可訪問到伺服器的MongoDB連接埠,缺點是串連資料庫前需要保持PuTTY或者XShell處於與資料庫的串連狀態;二是使用Robomongo內建的建立SSH隧道方式,只需要在Robomongo建立串連,輸入建立SSH會話所需的使用者名稱密碼或者密鑰,相當於使用Robomongo登入到伺服器,然後在伺服器訪問本地的MongoDB連接埠即可,優勢在於不需要單獨建立SSH串連(沒錯這種方法才是推薦使用的,但是第一種就可以不局限於Robomongo的串連)。

=========================================================================

注意:因為SSH隧道是基於TCP Forward建立的,因此,在sshd設定檔裡一定要允許TCPForwarding,我開始配置sshd的時候將這個禁用了,所以爬了好久才爬出這個坑。

$ sudo vim /etc/ssh/sshd_config

修改如下欄位:

AllowTCPForwarding yes

 

重啟sshd

$ sudo systemctl restart sshd

 

 

另外,要把MongoDB的設定檔進行修改,使其僅能通過本地訪問:

$ sudo vim /etc/mongod.conf

修改如下欄位:

net:

port: 27017

bindIP: 127.0.0.1

 

=========================================================================

一、使用PuTTY或XShell建立用戶端與伺服器的SSH隧道

PuTTY: 設定好登入資訊(包括伺服器IP連接埠使用者密碼密鑰等)後,在左側欄找到Connection/SSH/Tunnels,Add new forwarded port下,Source Port 填寫需要映射到用戶端的連接埠號碼,Destination填寫伺服器的主機和連接埠號碼(伺服器的主機當然是localhost了)下面選Local和Auto即可,然後點擊Add,儲存以便下次登入方便,點擊Open即可建立SSH隧道串連。

 

然後,開啟Robomongo,建立串連到localhost:27018即可串連到伺服器的MongoDB了。

 

 

或者說,可以通過監聽本地的27018連接埠即可監聽到伺服器的27017連接埠。

 

類似地,使用XShell時,填寫好登入主機連接埠使用者名稱密碼密鑰等資訊後,在左側欄找到SSH/隧道,添加TCP/IP轉移規則類型為Local, 源主機即使用戶端的主機及偵聽連接埠,目標則是伺服器的主機及連接埠,確定後串連,即可建立SSH隧道。

 

=========================================================================

二、使用Robomongo內建的SSH隧道

開啟Robomongo,在串連設定裡的SSH選項卡中啟用SSH tunnel並設定登入SSH伺服器的資訊,回到Connection選項卡,填入主機(localhost)與伺服器上MongoDB對應的連接埠。儲存串連即可。

 

 

配置SSH隧道訪問Ubuntu伺服器上的MongoDB

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.