如何获取Ubuntu服务器上MongoDB的连接URL用于Flutter应用
解决Flutter连接Ubuntu Server上MongoDB的连接URL问题
你当前看到的mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.6.1只能用于同一台机器内的本地连接,Flutter应用如果在其他设备(手机、另一台电脑)上运行,这个地址完全没用,得按下面的步骤调整:
1. 获取Ubuntu服务器的实际对外IP
在Ubuntu服务器上执行命令:
ip addr show
找到你的对外网卡(通常是eth0或wlan0),查看inet字段后的IP地址,比如192.168.1.100——这就是其他设备要连接的服务器地址。
2. 修改MongoDB配置允许远程访问
默认MongoDB只允许本地连接,得改配置开放外部访问:
- 编辑MongoDB配置文件:
sudo nano /etc/mongod.conf
- 找到
net区块,把bindIp的值从127.0.0.1改成0.0.0.0(允许所有IP访问),或者指定你Flutter设备的IP(更安全),比如:
net: port: 27017 bindIp: 127.0.0.1,192.168.1.101
- 重启MongoDB服务生效:
sudo systemctl restart mongod
3. 构造正确的连接URL
根据你的情况选择对应格式:
- 无密码验证(测试环境):
比如服务器IP是mongodb://[服务器IP]:27017/[你的数据库名]192.168.1.100,数据库叫test_db,就是:mongodb://192.168.1.100:27017/test_db - 有用户名密码验证:
mongodb://[用户名]:[密码]@[服务器IP]:27017/[你的数据库名]?authSource=admin
4. 确保网络连通
- 在Flutter设备上执行
ping [服务器IP],确认能通 - 开放Ubuntu防火墙的27017端口:
sudo ufw allow 27017
内容的提问来源于stack exchange,提问作者user19767292
相关产品推荐
相关产品推荐

