在 Linux 上让 MongoDB 监听远程连接
- 2024-11-07 08:55:00
- admin 原创
- 27
问题描述:
我已经在 Windows 上(在本地计算机上)成功安装了 MongoDB 作为服务,但现在我想将 MongoDb 移至单独的服务器。因此,我将 tarball 解压到网络上的虚拟服务器(运行 Linux)。
当我使用 PuTTY 从本地计算机连接到服务器(“testmongoserver”)时,我启动了 mongod 服务器,它告诉我它正在监听默认的 28017 端口。mongo 控制台也在运行,并允许我创建一个新的数据库(testdb)并向其中添加用户。
但是,我无法从远程访问服务器。当我输入时,testmongoserver:28017
它不会像在本地计算机上一样打开 HTTP 控制台localhost:28017
。我也无法使用官方驱动程序和提供连接字符串进行连接。
在 Linux 上安装 MongoDB 需要哪些步骤,以便我可以使用连接字符串从远程计算机访问它并通过其 HTTP 控制台testmongoserver:28017
谢谢!
解决方案 1:
绑定IP选项
绑定 IP 是 MongoDB 的一个选项,它限制与特定 IP 的连接。
查看您的 mongod 配置文件,大多数情况下bind_ip设置为127.0.0.1
是出于明显的安全原因。您可以:
通过连接以逗号分隔的值列表来添加所需的 IP,以将 MongoDB 绑定到多个 IP 地址。
删除或注释(带
#
字符)该bind_ip
行。但请注意,所有远程连接都将能够连接您的 MongoDB 服务器!
bind_ip
有关配置选项的更多信息: https ://docs.mongodb.com/manual/reference/configuration-options/#net.bindIp
Bind IP 也可以设置为命令参数:http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption--bind_ip
防火墙
检查您是否没有在防火墙后面运行
解决方案 2:
确保/etc/mongodb.conf
文件中有以下行,
bind_ip = 0.0.0.0
http://jitu-blog.blogspot.com.br/2013/06/allow-mongo-to-connect-from-remote-ip.html
解决方案 3:
在 mongo 服务器上运行 netstat -a 并检查端口。
检查DNS设置并检查Linux服务器是否允许外部连接。
检查 mongodb 是否可以接受外部/远程连接。
mongo 的默认端口是 27017。28017 - webstats 的端口。
请参阅http://www.mongodb.org/display/DOCS/Security+and+Authentication#SecurityandAuthentication-Ports
解决方案 4:
刚刚遇到这个问题并修复了它:
编辑/etc/mongod.conf
并sudo nano /etc/mongod.conf
确保网络部分如下所示(默认情况下本地主机绑定不允许远程访问):
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
完成上述操作后,请确保重新启动 mongod(假设 systemd ubuntu 16.04+ 等):
sudo service mongod restart
显然,从安全角度来看,如果你要向你的网络/世界开放 mongo,请注意这会产生什么影响(如果有的话)
解决方案 5:
另一个问题可能是 mongodb 端口未启用。从另一台主机检查服务器上启用的端口。为此,您可以使用以下命令:
sudo nmap -P0 your_server_ip
你可以得到这样的答案:
Host is up (0.052s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp closed https
如果您在云中使用虚拟服务器,如 AWS,则需要添加新规则来添加 mongodb 端口(默认为 27017)。
重要提示:请注意,使用此配置,任何人都可以访问您的数据库
解决方案 6:
要启用与 Linux 上运行的 MongoDB 实例的远程连接并通过连接字符串和 HTTP 控制台访问它,请按照以下步骤操作:
编辑 MongoDB 配置文件:
* 定位`mongod.conf`,通常位于`/etc/mongod.conf`。
* `bindIp`从更改`127.0.0.1`为`0.0.0.0`监听来自所有 IP 地址的连接。
net:
bindIp: 0.0.0.0
port: 27017
* 注意:`27017`是默认的 MongoDB 端口。HTTP 控制台在 上运行`28017`。
启用安全性:
* 在 中`mongod.conf`,启用授权:
security:
authorization: "enabled"
重新启动 MongoDB 服务:
* 重新启动 MongoDB 以应用新设置:
sudo service mongod restart
配置防火墙:
* 在防火墙中打开 MongoDB 端口(例如,`iptables`端口`27017`):
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
* 保存`iptables`规则。
创建 MongoDB 用户:
* 在数据库中创建具有适当权限的用户`admin`。
* 指南:MongoDB 用户创建。
测试服务器端口可访问性:
* 使用开放端口检查工具验证 MongoDB 端口的可访问性。
使用 MongoDB Compass 连接:
* 使用 MongoDB Compass 和连接字符串进行连接:
mongodb://username:password@testmongoserver:27017/testdb
通过以下方式访问 HTTP 控制台http://testmongoserver:28017
(如果已启用并在端口 28017 上运行)。
安全说明:
确保强大的用户凭证,并考虑 SSL/TLS 加密和网络过滤以确保安全。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件