温馨提示×

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

小樊
56
2025-09-22 03:12:04
栏目: 云计算

MongoDB在CentOS上的网络设置指南

1. 配置CentOS网络接口(基础准备)

在配置MongoDB网络前,需先确保CentOS主机的网络接口正常工作,可选择静态IP(生产环境推荐)或动态IP(测试环境适用)。

  • 查看当前网卡名称:运行ip aifconfig,确认网卡标识(如ens33eth0)。
  • 静态IP配置(持久化):
    编辑网卡配置文件/etc/sysconfig/network-scripts/ifcfg-<网卡名>,设置以下参数:
    BOOTPROTO=static    # 静态IP模式
    ONBOOT=yes          # 开机自动启动
    IPADDR=192.168.1.100 # 本机IP地址
    NETMASK=255.255.255.0 # 子网掩码
    GATEWAY=192.168.1.1   # 网关地址
    DNS1=8.8.8.8        # 主DNS服务器
    DNS2=114.114.114.114 # 备用DNS服务器
    
    保存后重启网络服务:systemctl restart network
  • 动态IP配置(临时测试):
    BOOTPROTO设为dhcpONBOOT=yes,运行ifup <网卡名>激活网卡。

2. 修改MongoDB配置文件(核心网络设置)

MongoDB的网络参数集中在/etc/mongod.conf文件中,需调整以下关键项:

  • 绑定IP地址(控制监听范围):
    找到net section,修改bindIp参数:
    • 仅本地访问(默认,安全但无法远程连接):bindIp: 127.0.0.1
    • 特定IP访问(如仅允许内网IP192.168.1.0/24中的一台主机):bindIp: 127.0.0.1,192.168.1.100
    • 允许所有IP访问(生产环境慎用,需配合防火墙/认证):bindIp: 0.0.0.0
  • 设置监听端口(默认27017,可根据需求修改):
    net:
      port: 27017       # 修改为所需端口(如27018)
      bindIp: 192.168.1.100 # 绑定本机IP
    
    保存配置文件。

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

若CentOS启用了firewalld(默认开启),需开放MongoDB端口(默认27017):

# 添加永久规则(--permanent表示重启后仍有效)
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
# 重新加载防火墙配置
sudo firewall-cmd --reload
# 验证端口是否开放
sudo firewall-cmd --list-ports  # 应包含27017/tcp

若使用iptables,可运行:sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT,并保存规则(service iptables save)。

4. 启用MongoDB身份验证(安全必备)

允许远程访问时,必须启用身份验证以防止未授权访问:

  • 编辑配置文件:在/etc/mongod.confsecurity section添加:
    security:
      authorization: enabled  # 开启用户权限控制
    
  • 创建管理员用户(需先登录MongoDB shell):
    # 连接到本地MongoDB(默认无认证)
    mongo
    # 切换到admin数据库(管理员数据库)
    use admin
    # 创建管理员账号(赋予root权限)
    db.createUser({
      user: "admin",
      pwd: "YourStrongPassword123!",
      roles: ["root"]  # root角色拥有所有权限
    })
    # 退出shell
    exit
    
  • 重启MongoDB服务sudo systemctl restart mongod
  • 远程连接示例(需指定用户名/密码及认证数据库):
    mongo --host 192.168.1.100 --port 27017 -u admin -p YourStrongPassword123 --authenticationDatabase admin
    

5. 验证网络配置

  • 检查MongoDB监听状态
    运行以下命令,确认MongoDB正在监听正确的IP和端口:
    sudo netstat -tuln | grep 27017  # 传统方式
    # 或
    sudo ss -tuln | grep 27017       # 更现代的方式
    
    输出应包含0.0.0.0:27017(允许所有IP)或192.168.1.100:27017(特定IP)。
  • 测试远程连接
    从另一台主机运行mongo --host <服务器IP> --port 27017 -u <用户名> -p <密码> --authenticationDatabase <数据库名>,验证是否能成功连接。

6. 可选:优化网络性能(高级配置)

根据需求调整以下参数(位于/etc/mongod.confnet section):

  • 调整最大连接数(默认10000,可根据服务器资源修改):
    net:
      maxIncomingConnections: 5000
    
  • 启用TCP优化(减少延迟、提高吞吐量):
    net:
      tcpKeepAlive: true      # 开启TCP keepalive(检测死连接)
      tcpNoDelay: true        # 禁用Nagle算法(减少小包延迟)
      socketOptions:
        keepAliveInitialDelay: 300  # keepalive探测间隔(秒)
        tcpMaxIdleTimeMS: 300000    # 连接最大空闲时间(毫秒)
        tcpSendBufferSize: 65536    # 发送缓冲区大小(字节)
        tcpReceiveBufferSize: 65536 # 接收缓冲区大小(字节)
    
  • 启用SSL/TLS加密(保护数据传输,需提前配置证书):
    net:
      ssl:
        mode: requireSSL      # 强制使用SSL
        PEMKeyFile: /etc/ssl/mongodb.pem  # 证书文件路径(包含私钥和公钥)
        CAFile: /etc/ssl/ca.pem           # CA证书路径(验证客户端证书)
    
    修改后需重启MongoDB服务:sudo systemctl restart mongod

完成以上步骤后,MongoDB将在CentOS上完成网络配置,可根据生产需求调整安全策略(如限制访问IP、加强认证机制)。

0