如何将本地MongoDB Compass连接至第三方VPS中的Mongo数据库?
解决MongoDB Compass连接远程CentOS VPS数据库的问题
一、先修正MongoDB的网络绑定配置
默认情况下,CentOS上预装的MongoDB只会监听127.0.0.1(本地回环地址),这会导致外部连接(包括通过SSH隧道的本地请求)无法访问数据库。你需要调整配置:
- 登录VPS后,编辑MongoDB主配置文件(通常路径为
/etc/mongod.conf):sudo vi /etc/mongod.conf - 找到
net配置段,修改bindIp为0.0.0.0(允许所有IP访问,配合SSH隧道使用更安全):net: port: 27017 bindIp: 0.0.0.0 - 重启MongoDB服务使配置生效:
可通过sudo systemctl restart mongodsystemctl status mongod确认服务是否正常运行。
二、正确配置MongoDB Compass连接(推荐SSH隧道方式)
直接开放MongoDB端口到公网存在安全风险,用SSH隧道转发是更稳妥的方案:
- 打开MongoDB Compass,点击New Connection
- 在Connection String栏填写本地转发地址:
(这里用mongodb://mongousername:你的MongoDB密码@localhost:27017localhost是因为SSH隧道会把本地27017端口转发到VPS的27017端口) - 切换到Advanced Options -> SSH Tunnel:
- 勾选Use SSH Tunnel
- SSH Hostname:填写VPS公网IP加SSH端口,格式为
111.111.111.11:22 - SSH Username:你的SSH登录用户名
sshusername - SSH Authentication:选择Identity File,然后选中你本地的RSA私钥文件(对应VPS
.ssh目录中公钥的私钥,一般路径是~/.ssh/id_rsa)
- 点击Connect,配置正确即可成功建立连接。
如果非要直接连接(不推荐),需要先在VPS防火墙开放27017端口:
sudo firewall-cmd --add-port=27017/tcp --permanent sudo firewall-cmd --reload
然后Compass的连接字符串填写:
mongodb://mongousername:你的MongoDB密码@111.111.111.11:27017
这种方式会将MongoDB暴露在公网,容易遭受攻击,谨慎使用。
三、关于多连接预设的疑问
你的理解完全正确:
- 管理员用户(通常拥有
root角色)仅用于用户管理、权限分配、实例配置等运维操作,不适合日常业务数据库操作 - 普通用户(对应不同业务数据库的读写/只读角色)用于日常的数据增删改查操作
你可以在Compass中为每个用户创建独立的连接预设:连接时选择对应用户名,保存为不同的连接名称(比如「管理员连接」「业务库读写用户连接」),方便后续快速切换。
内容的提问来源于stack exchange,提问作者david
相关产品推荐
相关产品推荐

