MongoDB的网络设置主要通过**/etc/mongod.conf
**文件调整,关键参数集中在net
section。
127.0.0.1
:net:
port: 27017
bindIp: 127.0.0.1
0.0.0.0
:net:
port: 27017
bindIp: 0.0.0.0
net:
port: 27017
bindIp: 192.168.1.100,10.0.0.5 # 替换为你的服务器IP和允许访问的客户端IP
27017
,若需修改,直接更改port
值即可(如port: 27018
)。net
section下添加以下配置,提升网络性能和稳定性:net:
tcpKeepAlive: true # 启用TCP keepalive
tcpNoDelay: true # 禁用Nagle算法,减少延迟
socketOptions:
keepAliveInitialDelay: 300 # keepalive探测间隔(毫秒)
tcpMaxIdleTimeMS: 300000 # 连接最大空闲时间(毫秒)
tcpSendBufferSize: 65536 # 发送缓冲区大小(字节)
tcpReceiveBufferSize: 65536 # 接收缓冲区大小(字节)
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
修改配置文件后,需重启服务使更改生效:
sudo systemctl restart mongod
# 检查服务状态(确保无报错)
sudo systemctl status mongod
ss
或netstat
命令确认MongoDB是否在指定IP和端口上监听:sudo ss -tuln | grep 27017 # 应显示类似 "0.0.0.0:27017" 或 "192.168.1.100:27017"
mongo
shell连接:mongo --host <服务器IP> --port 27017 # 无认证时直接连接
# 若启用了身份验证(security.authorization: enabled),需添加用户名和密码
mongo --host <服务器IP> --port 27017 -u <用户名> -p <密码> --authenticationDatabase admin
mongod.conf
的security
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
0.0.0.0
,仅绑定服务器实际IP或信任的客户端IP。net
section配置SSL,保护数据传输安全:net:
ssl:
mode: requireSSL # 强制使用SSL
PEMKeyFile: /etc/ssl/mongodb.pem # 证书文件路径
CAFile: /etc/ssl/ca.pem # CA证书路径(可选)
以上步骤覆盖了CentOS上MongoDB网络设置的核心需求,从基础绑定到安全优化均有涉及。根据实际环境(开发/生产)调整参数,尤其注意生产环境的安全配置。