温馨提示×

MongoDB网络如何配置

小樊
52
2025-09-23 22:26:13
栏目: 云计算

MongoDB网络配置指南
MongoDB的网络配置主要围绕IP绑定端口设置访问控制防火墙配合展开,以下是详细步骤及注意事项:

一、基础网络配置:修改绑定IP与端口

1. 找到配置文件

MongoDB的默认配置文件路径为/etc/mongod.conf(Linux系统),可通过sudo find / -name mongod.conf命令确认位置。

2. 修改绑定IP(关键步骤)

在配置文件的net部分,调整bindIp参数控制MongoDB监听的IP地址:

  • 仅本地访问(默认,最安全):bindIp: 127.0.0.1(仅允许本机连接);
  • 允许多个特定IPbindIp: 127.0.0.1,192.168.1.100(本机+指定内网IP);
  • 允许所有IP(不推荐生产环境):bindIp: 0.0.0.0(允许任何IP连接,存在安全风险)。
    若需同时监听IPv4和IPv6,可使用bindIp: "::,0.0.0.0"或开启net.bindIpAll: true(MongoDB 4.0+支持)。

3. 设置端口(可选)

默认端口为27017,可通过port参数修改(如port: 27018),但需确保端口未被其他服务占用。

二、强化安全:启用访问控制

1. 启用认证机制

在配置文件的security部分添加authorization: enabled,强制要求用户连接时提供用户名和密码。

2. 重启MongoDB服务

修改配置后,执行sudo systemctl restart mongod使更改生效。

3. 创建管理员用户

连接MongoDB shell(mongo),切换至admin数据库,创建具有管理权限的用户(如admin):

use admin;
db.createUser({
  user: "admin",
  pwd: "StrongPassword123!",
  roles: ["root"] // root角色拥有最高权限
});

注:若未开启访问控制,MongoDB允许通过“localhost异常”创建管理员(仅用于初始配置)。

4. 创建数据库用户

切换至目标数据库(如test),为用户分配对应权限(如readWrite):

use test;
db.createUser({
  user: "testUser",
  pwd: "TestPassword456!",
  roles: [{ role: "readWrite", db: "test" }] // 仅允许读写test数据库
});

三、防火墙配置:允许MongoDB端口

若系统启用了防火墙(如CentOS的firewalld),需开放MongoDB端口(默认27017):

sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent; // 永久添加端口
sudo firewall-cmd --reload; // 重新加载防火墙规则

验证端口是否开放:sudo firewall-cmd --list-ports

四、验证配置

  1. 检查MongoDB监听状态
    执行sudo netstat -tuln | grep 27017(或ss -tuln | grep 27017),确认输出中包含绑定的IP和端口(如0.0.0.0:27017192.168.1.100:27017)。

  2. 测试远程连接
    在另一台机器上使用MongoDB客户端连接:

    mongo --host <MongoDB服务器IP> --port 27017 -u "testUser" -p "TestPassword456!" --authenticationDatabase "test"
    

    若成功进入shell,说明配置生效。

五、生产环境注意事项

  • 禁止使用0.0.0.0:严格限制绑定的IP范围(如仅允许内网IP),避免暴露在公网。
  • 定期更新密码:管理员和数据库用户密码应定期更换,使用强密码(包含大小写字母、数字、特殊字符)。
  • 启用SSL/TLS:通过配置net.ssl.mode: requireSSL及证书文件,加密客户端与服务器之间的通信(可选但推荐)。
  • 备份配置文件:修改配置前备份mongod.conf,便于故障恢复。

0