Ubuntu/CentOS/Windows中允许远程连接到MongoDB
在本教程中,我们将看到如何使用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公开到本地网络的外部。