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 但仍然无法正常工作。
希望这会有所帮助。您需要明确告诉 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 配置文件以确保已按预期进行配置。