Ubuntu/CentOS/Windows中允许远程连接到MongoDB

时间:2020-07-27 12:59:04  来源:igfitidea点击:

在本教程中,我们将看到如何使用Bindip选项允许远程访问MongoDB服务器或者收听特定的网络接口。

默认情况下,Mongod进程绑定到Linux中的127.0.0.1环回接口(在/etc/mongod.conf中),这意味着没有远程访问数据库服务器。
在Windows中,Mongod进程绑定到所有接口,除非我们在主配置文件中设置了Bindip选项。

此外,在连接到Mongo Shell时,Mongo尝试连接到LocalHost上运行的MongoDB进程(127.0.0.1)。
如果Mongod进程侦听不同的IP,则需要使用--host选项。

mongo --host 192.168.1.100

允许Linux/Ubuntu/CentOS中的远程连接

在Linux中,包括Ubuntu和CentOS 7,Bandip默认情况下被设置为127.0.0.1在/etc/mongod.conf中。
这意味着Mongod进程只能侦听本地环回接口。

如果将BADIP的值设置为0.0.0.0或者删除BINDIP选项,Mongod进程将侦听所有接口。

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

或者我们可以将Mongod进程绑定到特定的IP地址:

net:
  port: 27017
  bindIp: 192.168.1.100

要绑定到多个IP地址,请输入逗号分隔的IP地址列表:

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1,192.168.1.100

允许来自防火墙的MongoDB远程连接

防火墙仍可能阻止远程访问MongoDB服务器。
允许访问我们需要从防火墙设置中打开TCP端口27017.

例如,默认情况下的CentOS 7使用防火墙。

sudo firewall-cmd --permanent --add-port=27017/tcp
sudo firewall-cmd --reload

允许在Windows上进行远程连接

对于Windows,它与Linux相同。
如果CONFIG文件中的BINDIP选项不存在,则Mongod进程绑定到TCP端口27017上的所有接口。

或者我们可以向Mongod.cfg文件添加一个或者多个IP地址。

net:
  port: 27017
  bindIp: 127.0.0.1,192.168.1.102

从Windows防火墙中,我们需要添加入站规则以打开TCP端口27017以允许远程访问。

如果我们使用MongoDB进行开发或者在同一台服务器上运行MongoDB数据库作为应用程序,则可能不希望将MongoDB公开到本地网络的外部。