MongoDB网络配置指南
MongoDB的网络配置主要围绕IP绑定、端口设置、访问控制及防火墙配合展开,以下是详细步骤及注意事项:
MongoDB的默认配置文件路径为/etc/mongod.conf(Linux系统),可通过sudo find / -name mongod.conf命令确认位置。
在配置文件的net部分,调整bindIp参数控制MongoDB监听的IP地址:
bindIp: 127.0.0.1(仅允许本机连接);bindIp: 127.0.0.1,192.168.1.100(本机+指定内网IP);bindIp: 0.0.0.0(允许任何IP连接,存在安全风险)。bindIp: "::,0.0.0.0"或开启net.bindIpAll: true(MongoDB 4.0+支持)。默认端口为27017,可通过port参数修改(如port: 27018),但需确保端口未被其他服务占用。
在配置文件的security部分添加authorization: enabled,强制要求用户连接时提供用户名和密码。
修改配置后,执行sudo systemctl restart mongod使更改生效。
连接MongoDB shell(mongo),切换至admin数据库,创建具有管理权限的用户(如admin):
use admin;
db.createUser({
user: "admin",
pwd: "StrongPassword123!",
roles: ["root"] // root角色拥有最高权限
});
注:若未开启访问控制,MongoDB允许通过“localhost异常”创建管理员(仅用于初始配置)。
切换至目标数据库(如test),为用户分配对应权限(如readWrite):
use test;
db.createUser({
user: "testUser",
pwd: "TestPassword456!",
roles: [{ role: "readWrite", db: "test" }] // 仅允许读写test数据库
});
若系统启用了防火墙(如CentOS的firewalld),需开放MongoDB端口(默认27017):
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent; // 永久添加端口
sudo firewall-cmd --reload; // 重新加载防火墙规则
验证端口是否开放:sudo firewall-cmd --list-ports。
检查MongoDB监听状态:
执行sudo netstat -tuln | grep 27017(或ss -tuln | grep 27017),确认输出中包含绑定的IP和端口(如0.0.0.0:27017或192.168.1.100:27017)。
测试远程连接:
在另一台机器上使用MongoDB客户端连接:
mongo --host <MongoDB服务器IP> --port 27017 -u "testUser" -p "TestPassword456!" --authenticationDatabase "test"
若成功进入shell,说明配置生效。
net.ssl.mode: requireSSL及证书文件,加密客户端与服务器之间的通信(可选但推荐)。mongod.conf,便于故障恢复。