felix-cao / Blog

A little progress a day makes you a big success!
31 stars 4 forks source link

解决 MongoDB 只能本地连接不能远程连接问题 #77

Open felix-cao opened 5 years ago

felix-cao commented 5 years ago

在 #70 和 #76 中,我们提到 MongoDB 默认安装完成以后,只允许本地连接, 这主要是由于 mongoDB 的配置文件中设置导致的。下面是排查步骤

telnet 连接远程端口测试

假设IP地址是47.75.201.187

telnet 47.75.201.187 27017

我们发现

Trying 47.75.201.187...
telnet: connect to address 47.75.201.187: Connection refused
telnet: Unable to connect to remote host

PS: 正确的结果应该是

Trying 47.75.134.196...
Connected to 47.75.134.196.
Escape character is '^]'.

netstat命令是一个监控TCP/IP网络的非常有用的工具

netstat -anpt | grep 27017

结果

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

重点说明 0.0.0.0 是对外开放,通过服务域名、ip可以访问的端口, 127.0.0.1 只能对本机 localhost访问,也是保护此端口安全性

修改 mongodb 配置文件

vi /etc/mongod.conf

搜索 bindIp

将bindIp 的127.0.0.1改为0.0.0.0后重启 mongoDB

systemctl restart mongod