Linux 无法连接到远程mongodb服务器

Linux 无法连接到远程mongodb服务器,linux,mongodb,vagrant,admin,Linux,Mongodb,Vagrant,Admin,我正在尝试创建一个远程mongodb服务器,以便在我的java项目中使用它 我正在使用vagrant+ansible来创建环境,但我无法获得连接 我总是被网络拒绝连接。localhost上的相同代码可以完美地工作 我使用的是流浪者盒子:chef/centos-6.5 我的主要任务如下: 我添加了iptables异常: sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT 哪个是活动的: 我的java代码定义MongoDbFactory 如果

我正在尝试创建一个远程mongodb服务器,以便在我的java项目中使用它

我正在使用vagrant+ansible来创建环境,但我无法获得连接

我总是被网络拒绝连接。localhost上的相同代码可以完美地工作

我使用的是流浪者盒子:
chef/centos-6.5

我的主要任务如下:

我添加了iptables异常:

sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
哪个是活动的:

我的java代码定义
MongoDbFactory

如果我从localhost运行mongodb并相应地更改ip,一切正常


谢谢

首先,为了确保这不是防火墙问题,请停止两台服务器上的IPTABLES(不要忘记在之后重新启用)

在您尝试连接到的计算机上,直接使用ssh连接到它,并确保MongoDB正在运行,在本地连接并检查您是否可以访问DB

默认情况下,MongoDb未配置为接受来自远程主机的连接,能否确保在
/etc/MongoDb.conf
文件中有以下行:

bind_ip = 0.0.0.0
port = 27017
确保在进行任何更改后重新启动MongoDB。试试这个,如果你仍然有问题,我会用更多的建议更新答案

编辑:从2.6版开始,配置文件格式已更改为YAML,详细信息,该文件应位于
/etc/mongod.conf

net:
   bindIp: 0.0.0.0
   port: 27017

你能远程登录到目标地址和端口吗
telnet 27017
no,这不起作用:MacBook Pro:~me$telnet 192.168.1.11:27017 192.168.1.11:27017:提供了nodename或servname,或未知。Ping虽然不正确,但在使用telnet时不要在主机和端口之间使用冒号<代码>telnet 192.168.1.11 27017很抱歉,连接被拒绝后仍然无法工作。MacBookPro:~me$telnet 192.168.1.11 27017正在尝试192.168.1.11。。。telnet:连接到地址192.168.1.11:连接被拒绝telnet:无法连接到远程主机IP,如果您无法连接,可能是您试图访问错误的主机。您的iptables规则乍一看是正常的。你能打那个东道主吗?神圣的上帝之母,那是一个束缚。非常感谢你。!很好,很高兴你能帮忙。如果禁用了iptables,请确保重新启用它:)确保您的MongoClient连接到正确的端口
27017
URL模式类似
mongodb://localhost:27017/my_database_name
重新启动Ubuntu上的服务
服务mongodb Restart
使用两种不同的服务的原因是什么绑定端口的配置文件?在我的版本上,我已经将这两个配置文件都部署在UbuntufromV2.6上,配置文件类型已更改为YAML,您应该只有一个
public @Bean
MongoDbFactory mongoDbFactory() throws Exception {
    MongoClient mongo = new MongoClient("<ip-of-machine>", 27017);
    return new SimpleMongoDbFactory(mongo, "test");
}
com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting for a server that matches AnyServerSelector{}. Client view of cluster state is {type=Unknown, servers=[{address=192.168.1.11:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.ConnectException: Connection refused}}]
bind_ip = 0.0.0.0
port = 27017
net:
   bindIp: 0.0.0.0
   port: 27017