无法远程连接MongoDB求助(Ubuntu 20.04 VPS环境)
解决MongoDB远程连接报错"connection to <server_ip>:27017 closed"
1. 检查MongoDB认证配置
远程连接失败大概率和认证或用户权限有关:
- 打开
/etc/mongod.conf,确认已经启用安全认证:
要是没这部分内容,加上之后重启MongoDB:security: authorization: enabledsudo systemctl restart mongod - 本地登录MongoDB,查看你的数据库用户是否允许远程访问:
看返回结果里的use admin db.getUser("<db_username>")host字段,如果是127.0.0.1或localhost,说明只能本地访问,更新用户权限:db.updateUser("<db_username>", {host: "%"})%表示允许任意IP远程连接。
2. 检查VPS服务商的外部防火墙
别忽略云服务商自带的安全组/防火墙,这层和系统的UFW是分开的:
- 登录VPS后台(比如DigitalOcean控制台),找到安全组设置
- 添加规则:允许所有IP(0.0.0.0/0)访问27017/TCP端口
- 保存后等几分钟让规则生效
3. 测试端口连通性
在本地电脑上用工具测试端口是否能通:
# 用telnet测试 telnet 136.243.244.202 27017 # 或者用nc(更直观) nc -zv 136.243.244.202 27017
要是显示无法连接,说明还是防火墙没开到位;能连接的话,继续排查MongoDB的配置。
4. 确认MongoDB监听状态
再确认MongoDB确实在监听所有IP:
sudo ss -tulpn | grep mongod
输出里必须有*:27017,说明服务在监听所有IPv4地址。
5. 排查本地网络限制
如果上面都没问题,检查本地电脑的防火墙是否禁止了27017端口的出站连接,或者你的网络(比如公司、校园网)有没有端口限制。
内容的提问来源于stack exchange,提问作者Mohammad Rezaii
相关产品推荐
相关产品推荐

