1. 修改MongoDB配置文件
MongoDB的网络设置主要通过/etc/mongod.conf配置文件调整。使用文本编辑器(如nano)打开文件:
sudo nano /etc/mongod.conf
找到net部分,修改bindIp参数:
0.0.0.0(不推荐生产环境使用,存在安全风险);192.168.1.100)。port参数(默认27017,可根据需求更改)。示例配置:net:
port: 27017
bindIp: 0.0.0.0 # 允许所有IP连接(生产环境建议替换为具体IP)
保存并关闭文件(Ctrl+X→Y→Enter)。
2. 重启MongoDB服务
修改配置文件后,需重启服务使更改生效:
sudo systemctl restart mongod
可通过以下命令检查服务状态,确认是否启动成功:
sudo systemctl status mongod
若状态显示active (running),则表示服务正常运行。
3. 配置防火墙规则
若服务器启用了防火墙(如ufw),需允许MongoDB端口(默认27017)的流量:
sudo ufw allow 27017/tcp # 允许所有IP访问27017端口
sudo ufw reload # 重新加载防火墙规则
若需限制仅特定IP访问,可使用更严格的规则(如192.168.1.100):
sudo ufw allow from 192.168.1.100 to any port 27017/tcp
对于iptables用户,可执行:
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
4. 启用认证机制(生产环境必做)
为防止未授权访问,需启用MongoDB的认证功能。编辑/etc/mongod.conf,添加或修改security部分:
security:
authorization: enabled # 开启用户认证
保存后重启MongoDB服务:
sudo systemctl restart mongod
使用mongo shell连接到数据库(默认本地连接无需密码),切换至admin数据库并创建管理员用户:
use admin
db.createUser({
user: "admin",
pwd: "yourStrongPassword", // 设置强密码
roles: [{ role: "root", db: "admin" }] // 授予root权限
})
退出shell(exit)。
5. 测试远程连接(可选)
若需从远程客户端连接,可使用以下命令(替换your_server_ip、app_user、app_password为实际值):
mongo --host your_server_ip --port 27017 -u app_user -p app_password --authenticationDatabase admin
若连接成功,说明网络设置已完成。
6. 生产环境额外安全建议
0.0.0.0,仅允许可信IP连接(如应用服务器IP)。mongod.conf的ssl部分配置加密通信,保护数据传输安全。/var/log/mongodb/mongod.log,及时发现异常连接或错误。