如何从Windows端的MongoDB Compass连接WSL2上的MongoDB服务器
Windows MongoDB Compass 连接 WSL2 MongoDB 操作指南
1. 修改WSL2内MongoDB监听配置
默认MongoDB仅绑定本地回环地址,需修改配置允许外部连接:
- 打开WSL2终端,执行命令编辑配置文件:
sudo nano /etc/mongod.conf - 找到
net配置段,将bindIp参数值从默认的127.0.0.1修改为0.0.0.0 - 保存配置后重启MongoDB服务:
- systemd系统执行:
sudo systemctl restart mongod - SysVinit系统执行:
sudo service mongod restart
- systemd系统执行:
- 验证配置生效:在WSL2终端执行
mongo --host 0.0.0.0,确认可正常连接即可。
2. 获取WSL2实例内网IP
WSL2重启后IP会自动变更,每次连接前可通过以下命令获取当前IP:
- 在WSL2终端执行命令:
hostname -I | awk '{print $1}',输出的地址即为WSL2当前的内网IP。
3. 配置Windows防火墙放行规则
Windows 19042版本默认会拦截跨虚拟网卡的端口访问,需添加放行规则:
- 搜索打开「高级安全Windows Defender防火墙」,选择左侧「入站规则」,点击右侧「新建规则」
- 规则类型选择「端口」,下一步后选择TCP协议,填写特定本地端口为
27017(MongoDB默认端口,如自行修改过请替换为实际端口) - 后续步骤依次选择「允许连接」,按需勾选适用的网络场景(一般仅勾选「专用」即可),最后给规则命名后完成创建。
4. MongoDB Compass连接配置
- 打开Windows端的MongoDB Compass,新建连接
- 无身份验证的场景,直接填写连接URI:
mongodb://<上一步获取的WSL2 IP>:27017 - 已开启身份验证的场景,填写带认证信息的URI:
mongodb://<数据库用户名>:<数据库密码>@<WSL2 IP>:27017/?authSource=admin - 点击连接即可正常访问WSL2内的MongoDB服务。
优化提示
如果不想每次重启WSL2后都修改连接IP,可任选以下方案处理:
- 写脚本在WSL2启动时自动将当前IP写入Windows hosts文件,绑定固定域名如
wsl.mongo使用 - 通过Windows的portproxy工具做端口转发,命令为
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=27018 connectaddress=<WSL2 IP> connectport=27017,后续Compass直接连接127.0.0.1:27018即可(注意不要和Windows本地MongoDB占用的端口冲突)
内容的提问来源于stack exchange,提问作者pilauria
相关产品推荐
相关产品推荐

