无法从客户端桌面访问安装在 GCE VM 上的 MongoDB

无法从客户端桌面访问安装在 GCE VM 上的 MongoDB

因此,我在运行 Google Compute Engine 的 Ubuntu 18.10 VM 上安装了 MongoDB v4.0。安装成功,mongo通过 SSH 与 shell 配合良好。现在我想从我的桌面远程访问数据库。

下列的指南,我编辑了我的/etc/mongod.conf文件并注释掉了bind_ip以下代码中的行:

net:

port: 27017

# bindIp: 127.0.0.1

重启服务service mongod restart

还在 Google Cloud Platform 防火墙上打开了 TCP 端口 27017。

然而,数据库仍然无法通过任何方式访问,即mongo安装在我本地机器上的 shell、MongoDB Compass、server_ip:27017Google Chrome 上的格式都无法连接。

sudo netstat -tlnp通过虚拟机上的 SSH 运行,

对于 MongoDB,我只得到了以下一行:

tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 18490/mongod

应该有那条线0.0.0.0来表明它对所有连接都是开放的,但是仍然不见了。

这可能是配置错误还是某些内部防火墙阻止了连接?

编辑:我甚至确定 iptables 不会导致此问题。发出命令

iptables -A INPUT -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT

还是没有运气

答案1

解决了。​​这确实是配置问题,而不是防火墙问题。

显然,MongoDB 不再能正常工作bindIp: 0.0.0.0或完全注释掉bindIp

有效的方法是删除 bindIp 行并将其替换为

bindIpAll: true

最终的代码如下:

网:

端口:27017

bindIpAll: true

# 绑定 IP: 127.0.0.1

PS 如果你在服务器上执行此操作,请不要忘记启用 MongoDB 身份验证

取消注释该行security:authorization: 'enabled'在其下方添加。

安全:

授权:'已启用'

相关内容