在CentOS系统中配置MongoDB网络涉及绑定IP、设置端口、配置防火墙、验证连通性等核心步骤,以下是详细操作流程:
MongoDB的网络配置主要通过/etc/mongod.conf文件调整,关键参数包括bindIp(监听IP)和port(监听端口)。
bindIp: 127.0.0.1;若需远程访问,可设置为bindIp: 0.0.0.0(监听所有接口)或指定具体IP(如bindIp: 192.168.1.100,127.0.0.1,兼顾本地与远程)。27017,可根据需求修改(如port: 27018),但需确保端口未被其他服务占用。net:
port: 27017
bindIp: 127.0.0.1,192.168.1.100 # 允许本地及指定IP访问
修改完成后,保存文件并重启MongoDB服务使配置生效:
sudo systemctl restart mongod
若系统启用了firewalld(CentOS 7及以上默认开启),需添加MongoDB端口规则:
# 开放27017端口(TCP协议,永久生效)
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
# 重新加载防火墙配置
sudo firewall-cmd --reload
# 验证端口是否开放
sudo firewall-cmd --list-ports # 应包含27017
使用ss或netstat命令确认MongoDB是否在指定IP和端口上监听:
sudo ss -tuln | grep 27017
# 预期输出(若bindIp为0.0.0.0):
# tcp LISTEN 0 128 *:27017 *:*
# 若bindIp为192.168.1.100,则显示192.168.1.100:27017
从另一台机器使用mongo命令测试连接(需替换为目标IP和端口):
mongo --host 192.168.1.100 --port 27017
# 若未启用认证,直接进入shell;若启用认证,需添加用户名密码:
# mongo -u admin -p your_password --authenticationDatabase admin --host 192.168.1.100 --port 27017
为防止未授权访问,需在mongod.conf中启用认证:
security:
authorization: enabled
修改后重启MongoDB服务:
sudo systemctl restart mongod
连接MongoDB并创建具有管理权限的用户(如admin):
mongo
use admin
db.createUser({
user: "admin",
pwd: "StrongPassword123!", # 使用强密码
roles: [{ role: "root", db: "admin" }] # root角色拥有最高权限
})
exit
之后连接时需指定用户名和密码:
mongo -u admin -p StrongPassword123 --authenticationDatabase admin --host 192.168.1.100 --port 27017
bindIp设置为特定IP(如bindIp: 192.168.1.100),仅允许该IP访问。permissive模式(测试环境)或配置相应策略(生产环境):sudo setenforce 0 # 临时关闭SELinux
# 永久关闭需修改/etc/selinux/config文件,将SELINUX=enforcing改为disabled
/var/log/mongodb/mongod.log),及时发现异常连接或错误。通过以上步骤,可完成CentOS下MongoDB的网络配置,确保其既能满足访问需求,又能保障数据安全。