【问题标题】:Can't connect to mongo on EC2 Linux无法连接到 EC2 Linux 上的 mongo
【发布时间】:2019-07-21 19:30:00
【问题描述】:

我无法连接到在免费套餐 AWS Amazon Linux 2 AMI 上运行的 mongo 实例。我在网上浏览了几页,可以确认我做了什么,但我无法远程连接到 mongo。

  • EC2(安装了 mongo)有一个公共 IP
  • 使用端口 = 27017,协议 = tcp 分配的安全组(入站)
  • 我可以通过 SSH 连接到 EC2(并连接到 mongo,SSH 命令如下所示)
  • 我已经在 /etc/mongod.conf 文件中注释掉了绑定设置(参见下面的示例)
  • 重启mongo服务,命令如下
  • 本地机器 - 我可以成功 ping EC2 公共 IP
  • 本地计算机 - 我尝试使用带有“mongo 1.1.1.1”的终端连接到 EC2,但收到“连接失败消息”

还有什么我可以尝试的吗? 谢谢

SSH 命令

ssh -i my-key.pem ec2-user@ec2-1-1-1-1.eu-west-2.compute.amazonaws.com

更改了 mongo 绑定设置

bindIp: 0.0.0.0 

重启mongo

sudo service mongod restart

更新 - 入站规则

尝试从本地计算机连接到 mongo 时收到错误

Terminal command $ mongo 1.1.1.1

[js] Error: couldn't connect to server 1.1.1.1:27017, connection attempt failed: SocketException: Error connecting to 1.1.1.1:27017 :: caused by :: Operation timed out :

Mongo 配置文件(来自 EC2 机器)

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# Where and how to store data.
storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.


security:
  authorization: 'enabled'

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options

#auditLog:

#snmp:
~                                   

【问题讨论】:

    标签: mongodb amazon-web-services amazon-ec2


    【解决方案1】:

    不要评论 bindIp 设置。如果您注释 bindIp 设置,它将默认为 localhost。您将无法从外部网络连接。启用 bindIp 设置并将值设置为 0.0.0.0。

    bind_ip

    另外,检查您的入站规则 IP 范围和端口 (27017)。

    更新入站规则以接受 ipv4 地址 (0.0.0.0/0)

    【讨论】:

    • 我已经删除了评论,所以现在配置中的设置是 bindIp: 0.0.0.0。我的印象是我可以连接我的本地机器(即使用 robo 3T 等)来连接到 AWS mongo。听起来你只能用跳转框来做到这一点
    • 如果有帮助,我已经添加了入站规则的屏幕截图。谢谢
    • 如果您能够从本地机器 ssh 进入 EC2 实例,那么您应该也能够连接到 AWS mongo,前提是满足配置。
    • 是的,我可以从本地机器 ssh 到 ec2 机器 - 我遇到的问题是我无法从本地机器连接到在 ec2 机器上运行的 mongo - 假设应该是可能(?)
    • 您得到的确切错误是什么?从 cli 尝试 mongo --host ipaddr --port 27017。
    猜你喜欢
    • 2016-12-14
    • 2012-11-01
    • 2019-06-15
    • 1970-01-01
    • 2020-04-19
    • 2018-02-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多