mongoDB 不会远程连接

Enr*_*ene 6 remote-access amazon-ec2 mongodb

我已经在 EC2 上的 redhat 虚拟机上安装了 mongoDB。

服务器在本地完美运行,我可以连接和执行命令等。现在,我尝试从 EC2 上的另一个虚拟机远程连接,但无论我尝试了多少,我都无法连接。起初我以为是安全组的问题,所以我尝试启用组内的所有端口(两个虚拟机都属于同一个安全组)我还在iptables文件中启用了连接(是的,重新启动了服务)但是它仍然不起作用......关于问题可能是什么的任何想法?

我得到的错误是:

MongoDB shell version: 2.0.2
connecting to: ec2-XXXX.eu-west-1.compute.amazonaws.com/test
Thu Jan  5 13:55:32 Error: couldn't connect to server ec2-XXXX.eu-west-1.compute.amazonaws.com shell/mongo.js:86
exception: connect failed
Run Code Online (Sandbox Code Playgroud)

预先感谢。

关于“bind_ip”设置,嗯..没有默认值,我的意思是在 mongodb.conf 中甚至没有 bind_ip 行,默认情况下。我可能期待 bind_ip = 127.0.0.1 之类的东西,以便我可以将其注释掉,但它不存在,所以我尝试使用 bind_ip = 0.0.0.0 但仍然无法正常工作。

Eve*_*man 6

希望这会有所帮助。您需要明确告诉 mongodb 侦听非本地主机设备。默认情况下,它仅在本地主机上运行。

来自http://www.mongodb.org/display/DOCS/Security+and+Authentication

IP 地址绑定默认情况下,mongod 服务器将侦听机器上所有可用的 IP 地址。您可以使用 mongod 的“bind_ip”配置选项将其限制为单个 IP 地址。

通常,这将设置为 127.0.0.1,即环回接口,以要求 mongod 仅侦听来自同一台机器(本地主机)的请求。

要在所有接口上启用侦听,请从服务器配置文件中删除 bind_ip 选项。

更新:我想我自己也很困惑。我认为默认行为与上面描述的不同。(也许以前是?)在任何情况下,您都应该检查 mongo 配置文件以确保已按预期进行配置。


Enr*_*ene 6

解决了!对于使用 EC2 默认 redhat 安装的任何人,您需要运行以下命令:

system-config-firewall-tui