我已经在Windows上(在本地计算机上)成功安装了MongoDB作为服务,但现在我想将MongoDb移动到一个单独的服务器上 . 所以我将tarball解压缩到网络上的虚拟服务器(运行linux) .
当我从本地机器使用PuTTY连接到服务器(“testmongoserver”)时,我启动了mongod服务器,它告诉我它正在监听默认的28017端口 . mongo控制台也在工作,允许我创建一个新数据库(testdb)并向其添加用户 .
但是,我无法从远程访问服务器 . 当我键入 testmongoserver:28017
时,它不会打开HTTP控制台,因为我的本地计算机上的 localhost:28017
. 我也无法使用官方驱动程序连接并提供连接字符串 .
在Linux上安装MongoDB的必要步骤是什么,以便我可以从具有连接字符串的远程计算机访问它并通过 testmongoserver:28017
使用其HTTP控制台
谢谢!
5 回答
在mongo服务器上运行netstat -a并检查端口 .
检查DNS设置并检查linux服务器是否允许外部连接 .
检查mongodb是否可以接受外部/远程连接 .
mongo的默认端口是27017. 28017 - webstats的端口 .
见http://www.mongodb.org/display/DOCS/Security+and+Authentication#SecurityandAuthentication-Ports
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绑定IP也可以设置为命令参数:http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption--bind_ip
2.防火墙
检查您是否未在防火墙后面运行
确保在
/etc/mongodb.conf
文件中包含以下行,http://jitu-blog.blogspot.com.br/2013/06/allow-mongo-to-connect-from-remote-ip.html
刚刚遇到这个问题并解决了这个问题:
使用
sudo nano /etc/mongod.conf
编辑/etc/mongod.conf
确保网段如下所示(默认情况下localhost绑定不允许远程访问):确保在完成以上操作时重新启动mongod(假设使用systemd ubuntu 16.04等):
sudo service mongod restart
显然从安全角度来看,如果你打算将mongo打开到你的网络/全世界都要注意这个含义(如果有的话)
另一个问题可能是未启用mongodb端口 . 从另一台主机检查服务器上启用的端口 . 为此你可以使用命令:
你可以得到这样的答案:
如果您在 Cloud 中使用虚拟服务器作为AWS,则需要添加新规则以添加mongodb端口(默认为27017) .
Important :请注意,使用此配置,任何人都可以访问您的数据库