无法通过Compass SSH连接Oracle Cloud免费层MongoDB 6.0:认证失败
Oracle Cloud Ubuntu VM上MongoDB通过Compass SSH隧道连接失败排查方案
一、调整MongoDB配置文件(核心排查点)
- MongoDB默认仅绑定
127.0.0.1,仅允许本地访问,需修改配置允许接收隧道请求:- 编辑配置文件:
sudo nano /etc/mongod.conf - 找到
net段,修改bindIp为VM私有IP或0.0.0.0(允许所有IP监听):net: port: 27017 bindIp: 0.0.0.0 # 替换为你的VM私有IP也可 - 重启MongoDB服务:
sudo systemctl restart mongod - 验证监听状态:
sudo lsof -i :27017,确认输出中包含0.0.0.0:27017或你的私有IP
- 编辑配置文件:
二、验证Oracle云控制台网络配置
- 安全列表(Security List):确保入站规则允许SSH(22端口)(已能SSH登录则可跳过),MongoDB端口无需对外暴露(隧道是通过SSH转发),但需确认VM所在子网无额外网络限制
- 确认VM私有IP的可用性:在VM本地执行
ping <VM私有IP>,确保能正常连通
三、手动验证SSH隧道与密钥配置
- 绕开Compass,手动建立隧道测试:
在Mac终端执行:
保持终端打开,另开一个终端用ssh -L 27017:<VM私有IP>:27017 <VM登录用户名>@<VM公网IP> -i <你的SSH密钥文件路径>mongosh连接本地端口:mongosh "mongodb://<Mongo用户名>:<Mongo密码>@localhost:27017"- 若能连接:说明隧道和MongoDB服务正常,问题出在Compass配置
- 若不能连接:继续排查以下点:
- 检查SSH密钥权限:Mac上密钥文件必须设为600权限,执行
chmod 600 ~/.ssh/你的密钥文件 - 确认Compass中SSH配置:密钥路径、VM登录用户名、公网IP完全正确,无拼写错误
- 检查SSH密钥权限:Mac上密钥文件必须设为600权限,执行
四、MongoDB用户权限与兼容性排查
- 用户权限验证:确认MongoDB用户具备远程连接权限,比如在
admin库创建的用户需包含对应角色:use admin db.createUser({ user: "your_user", pwd: "your_pwd", roles: [{ role: "readWrite", db: "your_db" }, { role: "userAdminAnyDatabase", db: "admin" }] }) - 版本兼容性:MongoDB 6.0与Compass 1.34.0是兼容的,若手动隧道能连但Compass不行,可尝试升级Compass至最新版
五、UFW防火墙二次验证
- 确认UFW规则允许MongoDB端口访问:
执行sudo ufw status,检查是否存在27017端口的允许规则,若没有则添加:sudo ufw allow from 127.0.0.1 to any port 27017 sudo ufw reload
内容的提问来源于stack exchange,提问作者nikUoM
相关产品推荐
相关产品推荐

