ubuntu

MongoDB Ubuntu版如何配置网络访问

小樊
40
2025-10-02 00:25:12
栏目: 云计算

MongoDB Ubuntu版网络访问配置指南

1. 修改MongoDB配置文件(核心步骤)

MongoDB的网络访问控制主要通过/etc/mongod.conf文件中的net部分实现。使用文本编辑器(如nano)打开配置文件:

sudo nano /etc/mongod.conf

找到net部分,修改bindIp参数:

保存并关闭文件(Ctrl+XYEnter)。

2. 重启MongoDB服务

修改配置后,需重启服务使更改生效:

sudo systemctl restart mongod

验证服务状态(确保无报错):

sudo systemctl status mongod

若状态显示active (running),则表示重启成功。

3. 配置防火墙规则

Ubuntu默认使用ufw(Uncomplicated Firewall)管理防火墙,需允许MongoDB端口(默认27017)的入站连接:

sudo ufw allow 27017/tcp  # 允许所有IP访问27017端口

若需限制仅特定IP访问(如192.168.1.50),可使用更严格的规则:

sudo ufw allow from 192.168.1.50 to any port 27017/tcp  # 仅允许192.168.1.50访问

启用ufw并检查规则:

sudo ufw enable  # 启用防火墙
sudo ufw status  # 查看当前规则(确认27017端口已放行)

若使用iptables,可执行以下命令:

sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT  # 允许27017端口
sudo netfilter-persistent save  # 持久化规则(Ubuntu 16.04+)

4. 启用MongoDB认证(必选安全措施)

为防止未授权访问,需启用MongoDB的用户认证:
编辑/etc/mongod.conf,添加security部分:

security:
  authorization: enabled  # 开启认证

保存并重启MongoDB服务:

sudo systemctl restart mongod

创建管理员用户(以admin数据库为例):

mongo  # 进入MongoDB shell
use admin  # 切换到admin数据库
db.createUser({
  user: "admin",
  pwd: "StrongPassword123!",  # 设置强密码
  roles: [{ role: "root", db: "admin" }]  # 授予root权限(最高权限)
})
exit  # 退出shell

此后,连接MongoDB需提供用户名和密码:

mongo --host <服务器IP> --port 27017 -u admin -p StrongPassword123 --authenticationDatabase admin

5. 可选:限制网络访问范围(增强安全性)

若需进一步限制访问,可通过iptables仅允许特定IP段访问:

sudo iptables -A INPUT -p tcp --dport 27017 -s 192.168.1.0/24 -j ACCEPT  # 允许192.168.1.0/24网段
sudo iptables -A INPUT -p tcp --dport 27017 -j DROP  # 拒绝其他所有IP
sudo netfilter-persistent save  # 持久化规则

此配置可防止未授权的外部IP访问MongoDB。

注意事项

0
看了该问题的人还看了