在配置网络前,需确保MongoDB已正确安装在Debian系统上。可通过以下命令完成安装:
# 更新系统包
sudo apt update && sudo apt upgrade -y
# 导入MongoDB官方GPG密钥(以MongoDB 6.0为例,适配Debian Bullseye)
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
# 创建MongoDB源列表文件
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
# 更新包数据库并安装MongoDB
sudo apt update
sudo apt install -y mongodb-org
MongoDB的网络设置主要通过/etc/mongod.conf配置文件调整,关键参数包括绑定IP和监听端口。
bindIp)bindIp决定了MongoDB监听的网络接口。默认情况下,MongoDB仅绑定到本地回环地址(127.0.0.1),仅允许本地连接。
bindIp设置为0.0.0.0。bindIp设置为服务器的公网/内网IP(如192.168.1.100),或同时绑定本地和特定IP(如127.0.0.1,192.168.1.100)。示例配置:
net:
port: 27017 # 默认端口,可根据需求修改(如27018)
bindIp: 0.0.0.0 # 允许所有IP连接(生产环境建议限制为特定IP)
port)若需更改默认端口(27017),可直接修改net.port参数。例如,将端口改为27018:
net:
port: 27018
bindIp: 192.168.1.100
修改配置文件后,需重启MongoDB服务以使更改生效:
sudo systemctl restart mongod
若系统启用了防火墙(如ufw),需允许MongoDB的端口通过,否则远程连接会被拦截。
# 允许MongoDB端口(默认27017,若修改了端口需替换)
sudo ufw allow 27017/tcp
# 启用防火墙(若未启用)
sudo ufw enable
# 检查防火墙状态
sudo ufw status
# 允许MongoDB端口
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
# 保存iptables规则(Debian需安装iptables-persistent)
sudo apt install -y iptables-persistent
sudo netfilter-persistent save
为防止未授权访问,需启用MongoDB的身份验证功能。步骤如下:
在/etc/mongod.conf的security部分添加authorization: enabled:
security:
authorization: enabled
sudo systemctl restart mongod
连接到MongoDB shell,创建具有管理员权限的用户(以admin用户为例):
# 连接到MongoDB(本地连接,无需认证)
mongo
# 切换到admin数据库
use admin
# 创建管理员用户(用户名:admin,密码:your_password,角色:root)
db.createUser({
user: "admin",
pwd: "your_password",
roles: ["root"]
})
# 退出Mongo shell
exit
# 远程连接(替换为服务器IP、用户名和密码)
mongo --host 192.168.1.100 --port 27017 -u admin -p your_password --authenticationDatabase admin
使用netstat命令验证MongoDB是否正在监听指定端口:
sudo netstat -tuln | grep 27017
若输出包含0.0.0.0:27017(或你设置的端口),则表示配置成功。
从另一台机器使用MongoDB shell连接:
mongo --host your_server_ip --port 27017 -u admin -p your_password --authenticationDatabase admin
若能成功连接并进入shell,说明网络配置生效。
bindIp设置为0.0.0.0,应仅绑定服务器的实际IP地址。/var/log/mongodb/mongod.log查看详细错误信息。