2011-01-22 86 views
10

我還有一個問題給你。 我有安裝了mondodb的Amazon EC2實例。 除了一件事情 - 它無法從外部(我的電腦)訪問(連接),它工作得很好。 我認爲安全組的問題。這是某種默認的防火牆。 有誰知道如何配置EC2實例訪問mongodb? 在此先感謝。在亞馬遜EC2上訪問Mongodb的問題

回答

10

您需要添加一個安全組例外端口27017,如果你使用的是默認的配置爲您從外部訪問它。有關安全組配置,請查看amazon EC2文檔。如果您在Mongo上使用不同的端口,請相應地更改安全組端口。

--Sai

+0

我知道我應該這樣做,但我無法弄清楚究竟是什麼。 – clumpter 2011-01-22 17:20:57

+22

確保你已經從`mongodb.conf`中註釋掉`bind_ip` – 2011-10-14 07:56:10

+3

然後不要忘記重新啓動mongod服務 – 2014-10-02 11:24:42

39

在做這件事之前仔細考慮。如果您打開端口,請確保限制可以訪問它的IP號碼,否則任何人都可以訪問您的數據庫。你可以在MongoDB中啓用認證,但它不是特別安全,只是一個用戶名和密碼。你不應該讓你的數據庫對互聯網開放,這不是一個好主意。

比EC2防火牆上開一個口一個更好的辦法是打開一個SSH隧道的轉發端口,這樣可以確保只有您可以訪問數據庫,並僅在SSH隧道是活動的。

打開一個新的終端並運行此命令(您SSH'ing到您的服務器時使用的用戶和服務器的名稱替換用戶和主機):

ssh [email protected] -N -L 27017:127.0.0.1:27017 

該命令將轉發將計算機上的端口27017連接到服務器上的同一端口。要連接到MongoDB實例,只需在終端中運行mongo(如果不起作用,請嘗試mongo --host 127.0.0.1或甚至mongo --host 127.0.0.1 --port 27017)。

如果您在本地機器上運行的MongoDB,你將不得不改變第一口,因爲本地服務器已在使用它。在這種情況下運行此命令:

ssh [email protected] -N -L 27018:127.0.0.1:27017 

,然後用

mongo --port 27018 

(可能添加--host 127.0.0.1,如果它不工作)連接。

當您完成與數據庫的工作,退出mongo,然後按Ctrl-C與SSH命令的終端。

5

您的EC2實例是否是Windows服務器?如果是這樣,除了EC2的安全組之外,還需要配置Windows防火牆以允許傳入連接。

轉到管理工具,Windows防火牆具有高級安全性,並配置新的規則,允許在端口27017(默認端口蒙戈)或任何與您所選擇的傳入連接。