我已经在Windows上(在本地计算机上)成功安装了MongoDB作为服务,但现在我想将MongoDb移动到一个单独的服务器上。所以我将tarball解压缩到网络上的虚拟服务器(运行linux)。
当我从本地计算机使用PuTTY连接到服务器(“testmongoserver”)时,我启动了mongod服务器,它告诉我它正在侦听默认的28017端口。 mongo控制台也在工作,允许我创建一个新数据库(testdb)并向其添加用户。
但是,我无法从远程访问服务器。当我键入testmongoserver:28017
时,它不会像本地计算机上的localhost:28017
那样打开HTTP控制台。我也无法使用官方驱动程序连接并提供连接字符串。
在Linux上安装MongoDB的必要步骤是什么,以便我可以从具有连接字符串的远程计算机访问它并通过testmongoserver:28017
使用其HTTP控制台
谢谢!
答案 0 :(得分:79)
绑定IP是一个MongoDB选项,用于限制与特定IP的连接。
看看你的mongod配置文件,出于明显的安全原因,大多数情况下 bind_ip 设置为127.0.0.1
。你可以:
#
个字符)bind_ip
行。但请注意,所有远程连接都可以连接MongoDB服务器!有关bind_ip
配置选项的更多信息:https://docs.mongodb.com/manual/reference/configuration-options/#net.bindIp
绑定IP也可以设置为命令参数:http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption--bind_ip
检查您是否在防火墙后面运行
答案 1 :(得分:33)
确保在/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
答案 2 :(得分:19)
mongo的默认端口是27017。 28017 - webstats的端口。
请参阅http://www.mongodb.org/display/DOCS/Security+and+Authentication#SecurityandAuthentication-Ports
答案 3 :(得分:8)
刚刚遇到这个问题并修复了它:
使用/etc/mongod.conf
编辑sudo nano /etc/mongod.conf
,确保网段如下所示(默认情况下localhost绑定不允许远程访问):
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
确保在完成以上操作时重新启动mongod(假设使用systemd ubuntu 16.04+等):
sudo service mongod restart
显然从安全角度来看,如果你要打开mongo到你的网络/全世界都要注意这个含义(如果有的话)
答案 4 :(得分:3)
另一个问题可能是未启用mongodb端口。从另一台主机检查服务器上启用的端口。为此,您可以使用命令:
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
你可以得到这样的答案:
CButton myButtonName;
如果您在云中使用虚拟服务器作为AWS,则需要添加新规则以添加mongodb端口(默认为27017)。
重要:请注意,使用此配置,任何人都可以访问您的数据库
答案 5 :(得分:1)
我是通过以下参考资料解决的:
实际上,首先我在 mongod.conf 中将bindIp
从127.0.0.1
更改为0.0.0.0
,
并启用安全性:
security:
authorization: "enabled"
然后,我使用sudo service mongod restart
重新启动mongod。(由于mongod.conf中的新更改),然后将防火墙设置为打开mongod运行端口(通过iptables),并在admin数据库中创建一个具有新访问权限的新用户(基于此链接:https://medium.com/mongoaudit/how-to-enable-authentication-on-mongodb-b9e8a924efac),最后使用(https://www.yougetsignal.com/tools/open-ports/)从外部测试服务器中的开放端口,并使用mongocompass.exe成功连接到远程mongod。