温馨提示×

mongodb在centos上的网络设置

小樊
46
2025-10-23 22:15:22
栏目: 云计算

MongoDB在CentOS上的网络设置指南

1. 前提准备

确保系统已安装CentOS 7及以上版本,具备root用户权限,并已完成MongoDB基础安装(可通过sudo yum install -y mongodb-org安装官方仓库及软件包)。

2. 修改MongoDB绑定IP(核心网络配置)

MongoDB默认仅监听本地回环接口(127.0.0.1),需修改配置文件调整绑定IP以允许网络访问:

  • 打开MongoDB配置文件:sudo vi /etc/mongod.conf
  • 找到net section,修改bindIp参数:
    • 允许所有IP访问(测试环境快速验证,生产环境不推荐):bindIp: 0.0.0.0
    • 仅允许特定IP访问(生产环境推荐,如本地+服务器IP):bindIp: 127.0.0.1,192.168.1.100(替换为实际IP)
  • 保存文件后,重启MongoDB服务使配置生效:sudo systemctl restart mongod

3. 配置防火墙放行端口

CentOS默认启用firewalld防火墙,需开放MongoDB默认端口(27017)以允许外部连接:

  • 添加永久规则:sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
  • 重新加载防火墙配置:sudo firewall-cmd --reload
  • 验证端口是否开放:sudo firewall-cmd --list-ports(应包含27017)。

4. (可选但强烈推荐)启用MongoDB身份验证

为防止未授权访问,需创建用户并启用认证:

  • 连接到MongoDB shell:mongo
  • 切换至admin数据库并创建管理员用户(拥有最高权限):
    use admin
    db.createUser({
      user: "admin",
      pwd: "StrongPassword123!", // 使用强密码
      roles: [{ role: "root", db: "admin" }]
    })
    
  • 切换至目标数据库(如testdb)并创建应用用户(按需分配权限):
    use testdb
    db.createUser({
      user: "app_user",
      pwd: "AppPassword456!",
      roles: [{ role: "readWrite", db: "testdb" }]
    })
    
  • 退出shell:exit
  • 修改配置文件启用认证:在security section添加authorization: enabled
  • 重启MongoDB服务:sudo systemctl restart mongod

5. 验证网络配置

  • 本地连接测试mongo --host 127.0.0.1 --port 27017(无认证则直接进入shell;有认证则需添加-u admin -p StrongPassword123!--authenticationDatabase admin
  • 远程连接测试(从另一台机器):mongo --host 服务器IP --port 27017 -u app_user -p AppPassword456!--authenticationDatabase testdb
  • 服务状态检查sudo systemctl status mongod(应显示“active (running)”)。

6. 生产环境额外建议

  • 限制绑定IP:避免使用0.0.0.0,仅开放必要的IP地址(如应用服务器IP)。
  • 使用强密码:避免使用简单密码,定期更换密码。
  • 启用TLS/SSL:通过配置net.ssl section加密数据传输(需提前申请证书)。
  • 监控端口流量:使用netstat -tuln | grep 27017ss -tuln | grep 27017查看连接状态,及时发现异常连接。

0