在Ubuntu上配置MongoDB以允许网络访问涉及几个步骤。以下是一个基本的指南,帮助你设置MongoDB以便可以从其他机器访问:
安装MongoDB如果你还没有安装MongoDB,可以使用以下命令来安装它:
sudo apt updatesudo apt install -y mongodb-org
配置MongoDB- 打开MongoDB的配置文件:
使用文本编辑器(如 nano 或 vim)打开 /etc/mongod.conf
文件。
sudo nano /etc/mongod.conf
- 修改网络接口:
在配置文件中找到 net
部分,如果没有这个部分,可以自己添加。然后设置 bindIp
参数来指定允许连接的IP地址。
0.0.0.0
。允许特定IP地址连接:可以设置为特定的IP地址,例如 192.168.1.100
。net:port: 27017bindIp: 0.0.0.0# 允许所有IP地址连接
保存并关闭配置文件。
重启MongoDB服务以使更改生效:
sudo systemctl restart mongod
配置防火墙如果你的服务器运行的是 ufw
防火墙,你需要允许通过27017端口的流量。使用以下命令来允许从任何IP地址访问27017端口:
sudo ufw allow 27017
如果你只想允许特定IP地址访问MongoDB,你可以使用更具体的规则,例如:
sudo ufw allow from <IP_ADDRESS> to any port 27017
安全性和认证上面的步骤将允许任何能够访问服务器的人连接到MongoDB。为了提高安全性,你应该启用认证并创建一个管理员用户。MongoDB默认启用了认证,但是你需要确保在 mongod.conf
中设置了 security.authorization
为 enabled
。
security:authorization: enabled
然后,重启MongoDB服务以应用更改:
sudo systemctl restart mongod
接下来,使用 mongo
shell连接到数据库,并创建一个管理员用户:
mongo -u admin -p yourpassword --authenticationDatabase admin
在 mongo
shell中,创建一个新的管理员用户:
use admindb.createUser({user: 'admin',pwd: 'yourpassword',roles: [{ role: 'userAdminAnyDatabase', db: 'admin' }]})
确保替换 yourpassword
为你选择的强密码。
从另一台机器上使用 mongo
shell测试连接:
mongo -h <SERVER_IP> -u admin -p yourpassword --authenticationDatabase admin
请替换 <SERVER_IP>
为你的MongoDB服务器的IP地址。