mongodb.conf bind_ip = 127.0.0.1不工作,但0.0.0.0工作

dgsult0t  于 2023-05-17  发布在  Go
关注(0)|答案(5)|浏览(169)

我不知道mongodb中的bind_ip是什么。我可以通过bind_ip = 0.0.0.0建立从桌面到EC2机器的远程连接,但不能使用bind_ip = 127.0.0.1
请解释一下bind_ip是什么,以及为什么它适用于0.0.0.0而不适用于127.0.0.1
来自mongodb docs的参考:
bind_ip
默认值:所有接口。
设置此选项可配置mongod或mongos进程绑定到此地址上的应用程序并侦听其连接。您可以在任何接口上附加mongod或mongos示例;但是,如果将进程附加到可公开访问的接口,则应实现适当的身份验证或防火墙限制,以保护数据库的完整性。
您可以连接逗号分隔值列表,以将mongod绑定到多个IP地址。

bejyjqdl

bejyjqdl1#

到处都写着要这样绑

bindIp : 127.0.0.1,192.168.0.50

但这行不通
工作原理,在3.2.0版本中是

bindIp : [127.0.0.1,192.168.0.50]

所以请尝试在[ ]中添加您的IPS

示例:

# network interfaces
net:
      port: 27017
      bindIp : [127.0.0.1,0.0.0.0]  (read what is written below in BOLD!)

然而0.0.0.0打开了这个东西。虽然这对于测试是可以的,但是对于生产,您应该知道此设置的安全含义!

s4n0splo

s4n0splo2#

在将您的服务器绑定到www.example.com之前0.0.0.0,请清楚这些更改的安全影响:您的服务器将公开暴露给整个互联网上的所有IP。确保在服务器上启用身份验证!

当您将机器绑定到EC2上的127.0.0.1时,您无法访问您的机器。这不是一个bug,它是由网络接口绑定引起的。
127.0.0.1将只绑定到环回接口(因此您只能在本地访问它),而0.0.0.0将把它绑定到所有可用的网络接口。
这就是为什么当你将mongodb绑定到0.0.0.0(因为它现在可以通过互联网访问)而不是通过127.0.0.1时,你可以在EC2上访问mongodb。
对于本地服务器(如WAMP或本地mongodb服务器),它们看起来不会有什么不同,但在这种情况下,您还应该考虑绑定到本地服务器的0.0.0.0可能会使它们在所有网络接口上可用(因此,如果没有防火墙,它可能会对知道您的IP的人公开!)
similar question on Server Fault上阅读。

mznpcxlj

mznpcxlj3#

任何查找这个答案的人都应该清楚,将mongoDB绑定到0.0.0.0可能是你有史以来最糟糕的举动。
请仔细阅读下面的article,并确保每当你决定公开你(和你的客户)的数据时,你会考虑以下几点:

  • 您是否有其他防火墙规则来决定谁或什么可以

访问您的服务

  • 请理解,在使用AmazonEC2时,如果您允许“内部”流量,则应将其视为完全开放,您在Amazon并不孤单
  • 您的服务是否受密码保护?什么样的认证?提交的数据是以明文形式还是使用

加密

  • 您是否使用默认的数据库名称,还是复制粘贴了一个示例?
fivyi3re

fivyi3re4#

对于连接到本地Mongo数据库安装(开发环境),我发现下面的3个步骤过程要容易得多-而且它工作得很好。

  1. docker run -d -p 27017-27019:27017-27019 --name mongodb mongo
  2. docker exec -it mongodb bash
  3. mongo(瞧-你在i.e.连接到Mongo dab)
    来源:https://www.thepolyglotdeveloper.com/2019/01/getting-started-mongodb-docker-container-deployment/
bpzcxfmw

bpzcxfmw5#

当设置为bindIp: 127.0.0.1(或bindIp: localhost)时,mongod仅侦听环回IP,这意味着您只能从运行mongod的本地计算机连接。
当设置为bindIp: 0.0.0.0(或bindIpAll: true)时,mongod侦听所有IP,这意味着您可以从任何远程计算机连接-除非连接被防火墙阻止。
注意,localhost是一个别名,它可以解析为IPv4地址127.0.0.1或IPv6地址::1,请参阅Can 't connect to MongoDB 6.0 Server localized using Nodejs driver

相关问题