首页 文章

在Linux上获取MongoDB以侦听远程连接

提问于
浏览
54

我已经在Windows上(在本地计算机上)成功安装了MongoDB作为服务,但现在我想将MongoDb移动到一个单独的服务器上 . 所以我将tarball解压缩到网络上的虚拟服务器(运行linux) .

当我从本地机器使用PuTTY连接到服务器(“testmongoserver”)时,我启动了mongod服务器,它告诉我它正在监听默认的28017端口 . mongo控制台也在工作,允许我创建一个新数据库(testdb)并向其添加用户 .

但是,我无法从远程访问服务器 . 当我键入 testmongoserver:28017 时,它不会打开HTTP控制台,因为我的本地计算机上的 localhost:28017 . 我也无法使用官方驱动程序连接并提供连接字符串 .

在Linux上安装MongoDB的必要步骤是什么,以便我可以从具有连接字符串的远程计算机访问它并通过 testmongoserver:28017 使用其HTTP控制台

谢谢!

5 回答

  • 79
    • 在mongo服务器上运行netstat -a并检查端口 .

    • 检查DNS设置并检查linux服务器是否允许外部连接 .

    • 检查mongodb是否可以接受外部/远程连接 .

    mongo的默认端口是27017. 28017 - webstats的端口 .

    http://www.mongodb.org/display/DOCS/Security+and+Authentication#SecurityandAuthentication-Ports

  • 31

    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.防火墙

    检查您是否未在防火墙后面运行

  • 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

  • 7

    刚刚遇到这个问题并解决了这个问题:

    使用 sudo nano /etc/mongod.conf 编辑 /etc/mongod.conf 确保网段如下所示(默认情况下localhost绑定不允许远程访问):

    # network interfaces
    net:
      port: 27017
      bindIp: 0.0.0.0
    

    确保在完成以上操作时重新启动mongod(假设使用systemd ubuntu 16.04等):

    sudo service mongod restart

    显然从安全角度来看,如果你打算将mongo打开到你的网络/全世界都要注意这个含义(如果有的话)

  • 20

    另一个问题可能是未启用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
    

    如果您在 Cloud 中使用虚拟服务器作为AWS,则需要添加新规则以添加mongodb端口(默认为27017) .

    Important :请注意,使用此配置,任何人都可以访问您的数据库

    enter image description here

相关问题