【问题标题】:MongoDB bind_ip error: bind() failed errno:99 Cannot assign requested address for socketMongoDB bind_ip 错误:bind() failed errno:99 Cannot assign requested address for socket
【发布时间】:2013-12-26 07:18:03
【问题描述】:

我想配置 mongodb 以允许来自外部 IP 地址的远程连接,例如 66.31.123.123

0.0.0.0 设置为bind_ip 有效,但我想限制更多,只允许某些IP 地​​址连接。我将66.31.123.123 附加到bind_ip 列表中,但mongodb 在下面抛出错误:

mongodb.conf

bind_ip = 127.0.0.1,66.31.123.123
port = 27017

auth = true

mongodb 日志

Mon Dec  9 03:25:59 [initandlisten] ERROR: listen(): bind() failed errno:99 Cannot assign requested address for socket: 66.31.123.123:27017

问题:为什么添加外部 ip 不起作用?如果使用auth=true,是否足以安全地使用0.0.0.0 作为bind_ip? mongodb 将从 Meteor.js 应用程序本地访问。

【问题讨论】:

  • bind_ip 告诉 mongod(或 mongos)绑定到哪个网络接口地址,它不会过滤任何传入连接的 ip。

标签: node.js mongodb ubuntu meteor


【解决方案1】:

正如guido所说,bind_ip是mongo服务器自己的IP地址。

身份验证是个好主意,但仅依赖身份验证会使您面临暴力攻击。

您可以bind_ip = 0.0.0.0 并使用防火墙阻止到端口 27017 的所有传入连接,除非来自 66.31.123.123。

另一个问题是你的流星服务器与你的 mongo 服务器是否接近——它是在私有网络上还是在公共网络上。如果是公开的,你应该recompile mongodb to support SSL,或者你应该tunnel your mongodb connection through SSH

如果您决定使用隧道,请将 bind_ip 绑定到 127.0.0.1 并忽略传入的 27017。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-16
    • 2021-06-02
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    相关资源
    最近更新 更多