温馨提示×

MongoDB在CentOS上的网络设置怎么改

小樊
46
2025-09-20 01:43:40
栏目: 云计算

MongoDB在CentOS上的网络设置修改指南

1. 修改MongoDB配置文件(核心网络参数)

MongoDB的网络设置主要通过**/etc/mongod.conf**文件调整,关键参数集中在net section。

  • 绑定IP地址
    • 若仅需本地访问(开发测试),设置为127.0.0.1
      net:
        port: 27017
        bindIp: 127.0.0.1
      
    • 若需监听所有网络接口(生产环境需谨慎,会增加安全风险),设置为0.0.0.0
      net:
        port: 27017
        bindIp: 0.0.0.0
      
    • 若需限制特定IP访问(推荐生产环境),用逗号分隔多个IP:
      net:
        port: 27017
        bindIp: 192.168.1.100,10.0.0.5  # 替换为你的服务器IP和允许访问的客户端IP
      
  • 调整端口:默认端口为27017,若需修改,直接更改port值即可(如port: 27018)。
  • 优化TCP参数(可选):
    net section下添加以下配置,提升网络性能和稳定性:
    net:
      tcpKeepAlive: true        # 启用TCP keepalive
      tcpNoDelay: true          # 禁用Nagle算法,减少延迟
      socketOptions:
        keepAliveInitialDelay: 300  # keepalive探测间隔(毫秒)
        tcpMaxIdleTimeMS: 300000    # 连接最大空闲时间(毫秒)
        tcpSendBufferSize: 65536    # 发送缓冲区大小(字节)
        tcpReceiveBufferSize: 65536 # 接收缓冲区大小(字节)
    

2. 配置防火墙(允许外部访问)

CentOS默认使用firewalld管理防火墙,需开放MongoDB端口(默认27017):

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

3. 重启MongoDB服务

修改配置文件后,需重启服务使更改生效:

sudo systemctl restart mongod
# 检查服务状态(确保无报错)
sudo systemctl status mongod

4. 验证网络配置

  • 检查MongoDB监听端口
    使用ssnetstat命令确认MongoDB是否在指定IP和端口上监听:
    sudo ss -tuln | grep 27017  # 应显示类似 "0.0.0.0:27017" 或 "192.168.1.100:27017"
    
  • 测试远程连接(若绑定了非本地IP):
    在另一台机器上使用mongo shell连接:
    mongo --host <服务器IP> --port 27017  # 无认证时直接连接
    # 若启用了身份验证(security.authorization: enabled),需添加用户名和密码
    mongo --host <服务器IP> --port 27017 -u <用户名> -p <密码> --authenticationDatabase admin
    

5. 安全增强建议(生产环境必做)

  • 启用访问控制:在mongod.confsecurity section添加以下配置,强制用户认证:
    security:
      authorization: enabled  # 启用身份验证
      keyFile: /etc/mongodb-keyfile  # 集群节点间同步需配置密钥文件(可选)
    
    创建密钥文件(若需集群):
    sudo openssl rand -base64 756 > /etc/mongodb-keyfile
    sudo chmod 400 /etc/mongodb-keyfile
    sudo chown mongodb:mongodb /etc/mongodb-keyfile
    
  • 限制绑定IP:避免使用0.0.0.0,仅绑定服务器实际IP或信任的客户端IP。
  • 使用SSL/TLS加密(可选):在net section配置SSL,保护数据传输安全:
    net:
      ssl:
        mode: requireSSL  # 强制使用SSL
        PEMKeyFile: /etc/ssl/mongodb.pem  # 证书文件路径
        CAFile: /etc/ssl/ca.pem           # CA证书路径(可选)
    

以上步骤覆盖了CentOS上MongoDB网络设置的核心需求,从基础绑定到安全优化均有涉及。根据实际环境(开发/生产)调整参数,尤其注意生产环境的安全配置。

0