温馨提示×

Linux MongoDB配置中的网络设置有哪些

小樊
41
2025-12-20 11:46:22
栏目: 云计算

Linux 上 MongoDB 的网络设置要点

一 核心参数与含义

  • 配置文件位置与格式
    • 常见路径:/etc/mongod.conf(Linux 包管理器安装时默认)。
    • 推荐使用 YAML 格式;也可用传统 key=value 格式。示例:
      • YAML:
        net:
          port: 27017
          bindIp: 127.0.0.1,192.168.1.100
        
      • key=value:
        port=27017
        bindIp=127.0.0.1,192.168.1.100
        
  • 监听端口 net.port
    • 默认值:27017(mongod 非分片/非配置服务器、mongos)。
    • 分片成员 mongod 默认:27018;配置服务器 mongod 默认:27019
  • 绑定地址 net.bindIp
    • 指定监听的 IP/主机名/Unix 域套接字 列表,逗号分隔;默认 localhost
    • 示例:bindIp: 127.0.0.1,192.168.1.100;如需监听所有 IPv4 可用 0.0.0.0;同时监听 IPv4 与 IPv6 可用 0.0.0.0,::
  • 绑定所有地址 net.bindIpAll
    • 设为 true 时绑定到所有 IPv4 地址;与 bindIp 互斥(二选一)。
  • 最大并发连接数 net.maxIncomingConnections
    • 默认 65536;若高于系统内核/文件描述符限制,将不生效。
  • IPv6 支持 net.ipv6
    • 设为 true 启用 IPv6 监听(需系统支持与网络环境配合)。
  • 传输安全 net.tls(或旧版 net.ssl)
    • 用于启用 TLS/SSL 加密传输(生产环境强烈建议开启)。

二 常见配置示例

  • 仅本地访问(默认)
    net:
      port: 27017
      bindIp: 127.0.0.1
    
  • 允许指定网段访问
    net:
      port: 27017
      bindIp: 127.0.0.1,192.168.1.0/24
    
  • 监听所有地址(IPv4 + IPv6)
    net:
      port: 27017
      bindIp: 0.0.0.0,::
    # 或使用
    # net:
    #   port: 27017
    #   bindIpAll: true
    
  • 使用主机名与 Unix 域套接字
    # /etc/hosts: 192.168.1.200 mongo01
    net:
      port: 27017
      bindIp: mongo01,/tmp/mongod.sock
    
  • 启用 TLS 加密
    net:
      port: 27017
      bindIp: 0.0.0.0
      tls:
        mode: requireTLS
        certificateKeyFile: /etc/mongodb/server.pem
        CAFile: /etc/mongodb/ca.pem
    
    提示:副本集/分片成员建议使用逻辑 DNS 主机名而非硬编码 IP,便于地址变更时无需改配置。

三 生效与连通性检查

  • 使配置生效
    • 重启服务:
      sudo systemctl restart mongod
      # 或
      sudo service mongod restart
      
    • 指定配置文件启动:
      mongod --config /etc/mongod.conf
      # 或
      mongod -f /etc/mongod.conf
      
  • 防火墙与云安全组
    • 放行 TCP 27017(或自定义端口),如:
      • UFW:sudo ufw allow 27017/tcp
      • firewalld:sudo firewall-cmd --add-port=27017/tcp --permanent && sudo firewall-cmd --reload
    • 云服务器需同时配置安全组入站规则允许对应来源网段访问。
  • 连接测试
    mongo --host 192.168.1.100 --port 27017
    # 或
    mongosh --host mongo01:27017
    
  • 连接数核对
    • 如出现 “Too many connections”,检查 net.maxIncomingConnections 与系统 ulimit -n / file-max 等限制。

四 安全与最佳实践

  • 避免直接对公网开放 0.0.0.0;优先绑定内网 IP 或限定 CIDR 段,必要时通过跳板机/内网代理访问。
  • 启用身份验证与授权(security.authorization: enabled),并为管理员与业务账户设置强密码与最小权限。
  • 启用 TLS/SSL 对客户端与服务端通信加密,妥善管理证书与私钥权限。
  • 副本集/分片使用DNS 主机名配置成员地址,减少因 IP 变更导致的维护成本。
  • 结合防火墙/安全组最小化暴露面,仅放通必要来源与端口。

0