在配置网络前,需先确保MongoDB已正确安装在Debian系统上。若未安装,可按以下步骤操作:
sudo apt update && sudo apt upgrade -ywget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -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.listsudo apt update && sudo apt install -y mongodb-orgsudo systemctl start mongod && sudo systemctl enable mongodMongoDB的网络绑定IP决定了哪些设备可以访问数据库。默认情况下,MongoDB仅绑定到本地回环地址(127.0.0.1),仅允许本地连接。
sudo nano /etc/mongod.confnet部分,修改bindIp参数:
bindIp: 0.0.0.0192.168.1.100):bindIp: 192.168.1.100bindIp: 127.0.0.1,192.168.1.100(IP间用逗号分隔)Ctrl+O→Enter→Ctrl+X)sudo systemctl restart mongod若系统启用了防火墙(如ufw),需开放MongoDB默认端口(27017),否则外部设备无法连接。
sudo ufw allow 27017iptables,可执行:sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPTsudo ufw reload(ufw)或sudo service iptables save(iptables)默认情况下,MongoDB未启用身份验证,任何能连接到服务器的用户均可访问数据库。需启用身份验证以提升安全性。
sudo nano /etc/mongod.confsecurity部分,添加或修改以下参数:authorization: enabledsudo systemctl restart mongodadmin为例):
mongoadmin数据库:use adminYourPassword123):db.createUser({
user: "admin",
pwd: "YourPassword123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
exitsudo systemctl status mongod(需显示active (running))mongo --host 127.0.0.1 --port 27017(应进入MongoDB shell)mongo --host <服务器IP> --port 27017 -u admin -p YourPassword123 --authenticationDatabase admin若应用需要大量并发连接,可修改net.maxIncomingConnections参数(默认65536):
/etc/mongod.conf:sudo nano /etc/mongod.confnet: maxIncomingConnections: 100000sudo systemctl restart mongod若需支持IPv6,可修改net.ipv6参数(默认false):
/etc/mongod.conf:sudo nano /etc/mongod.confnet: ipv6: truesudo systemctl restart mongodbindIp: 0.0.0.0,应仅绑定必要的IP地址(如服务器内网IP+外网IP)。