温馨提示×

MongoDB Ubuntu网络设置技巧

小樊
32
2025-11-29 00:24:36
栏目: 云计算

MongoDB Ubuntu 网络设置技巧

一 基础网络与监听配置

  • 配置文件路径为:/etc/mongod.conf,核心网络段为 net
    • 端口:通常设为 27017
    • 绑定地址:默认仅 127.0.0.1(仅本机)。按需改为服务器的内网或公网 IP,或临时开放为 0.0.0.0(所有地址,慎用)。
  • 示例(仅本地):
    net:
      port: 27017
      bindIp: 127.0.0.1
    
  • 示例(指定内网 IP,如 192.168.1.10):
    net:
      port: 27017
      bindIp: 127.0.0.1,192.168.1.10
    
  • 修改后重启生效:
    sudo systemctl restart mongod
    
  • 验证监听是否生效(应看到 27017 绑定到指定地址):
    sudo netstat -tulpen | grep 27017
    ss -tulpen | grep 27017
    
  • 远程连通性测试(从客户端):
    mongosh "mongodb://<服务器IP>:27017"
    

以上要点包括:默认只监听本机、通过 bindIp 指定监听地址、修改后重启、用 netstat/ss 验证监听、用 mongosh 测试连接。

二 防火墙放行与云安全组

  • UFW(推荐):
    • 放行 MongoDB 端口(示例仅放通某可信 IP,生产更建议白名单):
      sudo ufw allow from <可信IP> to any port 27017 proto tcp
      sudo ufw enable
      sudo ufw status
      
    • 如需临时全开(不推荐生产):sudo ufw allow 27017/tcp
  • iptables(备选):
    sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
    # 持久化(视系统而定)
    sudo apt install iptables-persistent
    sudo netfilter-persistent save
    sudo netfilter-persistent reload
    
  • 云服务器安全组/NACL:除系统防火墙外,还需在云平台放行 TCP 27017,并尽量限制来源为应用所在网段或固定出口 IP。 以上步骤涵盖 UFW 与 iptables 的基本用法及云上安全组注意事项。

三 安全加固必做项

  • 启用身份验证(在修改 bindIp 之后务必开启):
    sudo nano /etc/mongod.conf
    # 在 security 段添加:
    security:
      authorization: enabled
    sudo systemctl restart mongod
    
  • 创建管理员用户(mongosh):
    mongosh
    use admin
    db.createUser({
      user: "admin",
      pwd: "YourStrongP@ssw0rd",
      roles: [ { role: "root", db: "admin" } ]
    })
    
  • 启用加密传输(TLS/SSL,强烈建议公网或跨机房):
    net:
      ssl:
        mode: requireSSL
        PEMKeyFile: /path/to/mongo.pem
        CAFile: /path/to/ca.pem
    sudo systemctl restart mongod
    
  • 连接串示例(含认证与可选 TLS):
    mongosh "mongodb://admin:YourStrongP@ssw0rd@<服务器IP>:27017/admin?authSource=admin&tls=true"
    

以上涵盖启用授权、创建管理员、TLS 加密与连接示例,能显著提升网络访问安全性。

四 常见故障排查清单

  • 服务未启动或配置错误:
    sudo systemctl status mongod
    sudo journalctl -xeu mongod
    
  • 监听地址不对或未放行端口:
    ss -tulpen | grep 27017
    sudo ufw status
    
  • 云环境未放行安全组/NACL:核对入站规则是否允许 TCP 27017 的来源网段。
  • 客户端连通性:
    mongosh --host <服务器IP> --port 27017
    
  • 认证失败:确认用户、密码、authSource 与角色是否正确;启用 TLS 时连接串需加 tls=true。 以上命令覆盖服务状态、日志、监听、防火墙与连通性验证,适合快速定位网络与访问问题。

0