Mongodb 让站点A连接到站点B';s mongo数据库

Mongodb 让站点A连接到站点B';s mongo数据库,mongodb,Mongodb,我有两个网站我可以通过localhost将每个站点连接到它们自己的数据库,但是我无法让站点A连接到站点B的数据库,除非收到著名的“EconRefused”消息 编辑mongod.confbind_ip和“要绑定到多个ip地址,请输入逗号分隔的值列表。”或者您可以将其注释掉以允许所有ip 然后重新启动服务mongod 我试过用逗号分隔的列表,也试过对它进行注释,但网站彼此拒绝 假设站点A的ip为777.777.777.77,站点B的ip为88.888.88.88 站点B的mongo.conf: p

我有两个网站我可以通过localhost将每个站点连接到它们自己的数据库,但是我无法让站点A连接到站点B的数据库,除非收到著名的“EconRefused”消息

编辑mongod.conf
bind_ip
和“要绑定到多个ip地址,请输入逗号分隔的值列表。”或者您可以将其注释掉以允许所有ip

然后重新启动
服务mongod

我试过用逗号分隔的列表,也试过对它进行注释,但网站彼此拒绝

假设站点A的ip为777.777.777.77,站点B的ip为88.888.88.88

站点B的mongo.conf:

port: 27017
bindIp: 127.0.0.1,777.777.777.77
和/或这样

port: 27017
#bindIp: 127.0.0.1
站点A尝试通过以下方式连接到站点B:

'mongodb://88.888.88.88:27017/db'
其他信息:

我已经测试了一个连接两个站点的websocket,它工作得很好,所以mongo拒绝了我,这让我很困惑

我还在本机mongo模块中使用node.js

我还没有身份验证或用户

在站点B的防火墙IPv4端口设置中启用了端口27017
TCP_-IN
和IN
TCP_-OUT
,但站点A仍然被拒绝

我查看了
/var/log/mongodb/mongod.log
并看到:

 2016-04-10T16:09:16.250-0400 E NETWORK  [initandlisten] listen(): bind() failed errno:99 Cannot assign requested address for socket: 777.777.777.77:27017
这使得这个问题看起来像是与此相关的:

所以我试着将绑定ip切换到

127.0.0.1,0.0.0.0
127.0.0.1,88.888.88.88
但它仍然拒绝

^上面的文章说

常见错误 不要将应用服务器IP放入绑定IP选项中。这个绑定ip选项告诉MongoDB接受来自哪个本地网络接口的连接,而不是哪个“远程ip地址”

所以我试着将绑定ip切换到

127.0.0.1,0.0.0.0
127.0.0.1,88.888.88.88

但它仍然拒绝(我很确定这种方式是正确的,这可能意味着我的防火墙出了问题!?我不是工程师,所以我明天会让工程师检查它,希望能解决问题并将结果作为答案发布)

当被方括号包围时,它终于可以工作了

bindIp: [127.0.0.1,777.777.777.77]

我不确定您的网络拓扑是什么,但如果网站位于不同的网络上,您可能会遇到以下问题:1)防火墙-防火墙不允许从内部网以外的任何人连接27017端口。2) 如果防火墙没有为您阻止端口27017,您可能需要知道“另一个”网站正在使用的公共ip地址是什么。所以你可以把它复制到bindip属性的列表中。我想有一台服务器在法国。。。另一个我不确定只是在站点B的防火墙IPv4端口设置中启用了端口27017 TCP_IN和IN TCP_OUT,但站点A仍然被拒绝如果站点B是linux机器,则需要配置其防火墙设置,此外,如果它位于另一个外部防火墙下,则需要通过NAT将端口27017传递到内部mongo服务器。您可以查看基于IP地址检查开放端口的联机工具。