debian

Debian上MongoDB的网络设置指南

小樊
40
2025-10-19 09:32:17
栏目: 云计算

Debian上MongoDB网络设置指南

1. 安装MongoDB(若未安装)

在配置网络前,需确保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

2. 配置MongoDB网络参数

MongoDB的网络设置主要通过/etc/mongod.conf配置文件调整,关键参数包括绑定IP监听端口

2.1 修改绑定IP(bindIp

bindIp决定了MongoDB监听的网络接口。默认情况下,MongoDB仅绑定到本地回环地址(127.0.0.1),仅允许本地连接。

示例配置:

net:
  port: 27017  # 默认端口,可根据需求修改(如27018)
  bindIp: 0.0.0.0  # 允许所有IP连接(生产环境建议限制为特定IP)

2.2 修改监听端口(port

若需更改默认端口(27017),可直接修改net.port参数。例如,将端口改为27018:

net:
  port: 27018
  bindIp: 192.168.1.100

3. 重启MongoDB服务

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

sudo systemctl restart mongod

4. 配置防火墙规则

若系统启用了防火墙(如ufw),需允许MongoDB的端口通过,否则远程连接会被拦截。

4.1 使用ufw配置(推荐)

# 允许MongoDB端口(默认27017,若修改了端口需替换)
sudo ufw allow 27017/tcp

# 启用防火墙(若未启用)
sudo ufw enable

# 检查防火墙状态
sudo ufw status

4.2 使用iptables配置

# 允许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

5. 启用身份验证(生产环境必选)

为防止未授权访问,需启用MongoDB的身份验证功能。步骤如下:

5.1 修改配置文件

/etc/mongod.confsecurity部分添加authorization: enabled

security:
  authorization: enabled

5.2 重启MongoDB服务

sudo systemctl restart mongod

5.3 创建管理员用户

连接到MongoDB shell,创建具有管理员权限的用户(以admin用户为例):

# 连接到MongoDB(本地连接,无需认证)
mongo

# 切换到admin数据库
use admin

# 创建管理员用户(用户名:admin,密码:your_password,角色:root)
db.createUser({
  user: "admin",
  pwd: "your_password",
  roles: ["root"]
})

# 退出Mongo shell
exit

5.4 使用管理员用户连接

# 远程连接(替换为服务器IP、用户名和密码)
mongo --host 192.168.1.100 --port 27017 -u admin -p your_password --authenticationDatabase admin

6. 验证网络配置

6.1 检查MongoDB监听状态

使用netstat命令验证MongoDB是否正在监听指定端口:

sudo netstat -tuln | grep 27017

若输出包含0.0.0.0:27017(或你设置的端口),则表示配置成功。

6.2 测试远程连接

从另一台机器使用MongoDB shell连接:

mongo --host your_server_ip --port 27017 -u admin -p your_password --authenticationDatabase admin

若能成功连接并进入shell,说明网络配置生效。

注意事项

0
看了该问题的人还看了