在Ubuntu上配置MongoDB以允許網絡訪問涉及幾個步驟。以下是一個基本的指南,幫助你設置MongoDB以便可以從其他機器訪問。
如果你還沒有安裝MongoDB,可以使用以下命令來安裝它:
sudo apt update
sudo apt install -y mongodb
MongoDB的配置文件通常位于 /etc/mongod.conf 。你需要編輯這個文件來允許來自網絡的連接。
sudo nano /etc/mongod.conf
net 部分,并確保 bindIp 設置為 0.0.0.0 或者至少包含你的服務器的IP地址。例如:net:
port: 27017
bindIp: 0.0.0.0
將 bindIp 設置為 0.0.0.0 將允許所有IP地址連接到MongoDB服務器。如果你想限制訪問特定的IP地址,可以將 0.0.0.0 替換為那些IP地址,用逗號分隔。
設置 bindIp 為 0.0.0.0 將允許來自任何IP地址的連接。為了安全起見,建議僅允許特定的IP地址連接。
port 是MongoDB服務器的端口號,默認是27017。
啟用認證授權。在配置文件中添加或修改以下內容:
security:
authorization: enabled
保存并關閉配置文件。如果你使用的是 nano,可以按 Ctrl + X,然后按 Y 確認保存,最后按 Enter 退出。
保存配置文件后,重啟MongoDB服務以使更改生效:
sudo systemctl restart mongod
確保你的防火墻允許通過MongoDB的端口(默認是27017)。你可以使用 ufw(Uncomplicated Firewall)來配置防火墻規則:
sudo ufw allow 27017
sudo ufw reload
上面的步驟將允許任何能夠訪問服務器的人連接到MongoDB。為了提高安全性,你應該啟用認證并創建一個管理員用戶。MongoDB默認啟用了認證,但是你需要確保在 mongod.conf 中設置了 security.authorization 為 enabled 。
然后,你可以使用 mongo shell連接到數據庫,并創建一個管理員用戶:
mongo -u admin -p yourpassword --authenticationDatabase admin
在 mongo shell中,創建一個新的管理員用戶:
use admin
db.createUser({ user: 'admin', pwd: 'yourpassword', roles: ['root'] })
請記住,將MongoDB配置為允許來自任何IP地址的連接可能會帶來安全風險。確保你了解這些風險,并在生產環境中采取適當的安全措施,例如使用防火墻規則限制訪問、啟用TLS/SSL加密通信以及使用強密碼和認證機制。
完成以上步驟后,MongoDB應該可以從遠程Ubuntu服務器訪問了。請確保在生產環境中采取適當的安全措施,如使用SSL/TLS、設置強密碼和限制訪問來源,以保護你的數據安全。