【问题标题】:Unable to connect to MongoDB running on AWS EC2 instance via SSH无法通过 SSH 连接到在 AWS EC2 实例上运行的 MongoDB
【发布时间】:2017-03-14 00:53:45
【问题描述】:

我有一个运行 MongoDB 3.2.10 的 Amazaon AWS EC2 实例,我使用 these instrunctions 设置它。我可以通过在 Putty shell 中调用 mongo --port 27017 将 Putty 放入我的 EC2 实例并进入 MongoDB shell,因此 mongod 守护程序在那台机器上运行得很好。

我设置了从我的机器到 EC2 实例的 SSH 隧道,将我机器上的端口 12345 映射到远程 EC2 实例上的 27017。但是,当我尝试通过调用 mongo --port 12345 从本地 Windows 机器连接到 MongoDB 时,mongo shell 客户端会挂起大约一分钟并返回:

connecting to: 127.0.0.1:12345/test
2016-10-31T11:31:39.727-0700 I NETWORK  [thread1] Socket recv() errno:10054 An existing connection was forcibly closed by the remote host. 127.0.0.1:12345
2016-10-31T11:31:39.727-0700 I NETWORK  [thread1] SocketException: remote: (NONE):0 error: 9001 socket exception [RECV_ERROR] server [127.0.0.1:12345]
2016-10-31T11:31:39.728-0700 E QUERY    [thread1] Error: network error while attempting to run command 'isMaster' on host '127.0.0.1:12345'  :
connect@src/mongo/shell/mongo.js:231:14
@(connect):1:6

exception: connect failed

作为背景,我还有一个运行 MySQL 并监听 EC2 实例上的端口 3306 的 Amazon RDS,以及一个将我本地机器上的端口 6789 映射到 EC2 实例上的端口 3306 的 SSH 隧道,我没有任何问题通过mysql -P 6789 -u user_name -p 连接到 MySQL 数据库,所以问题是特定于 MongoDB 的。

关于连接,我将 Putty 的 keepalive 选项设置为 1,以下 PowerShell 脚本测试对两个 SSH 隧道端口都返回 true,因此隧道肯定是连接的:

function test-connection{
    param($IP,$PORT)
    $connected = $FALSE
    $s = New-Object Net.Sockets.TcpClient
    try{
        $s.Connect($IP,$PORT)
        $connected = !!$s.connected
    }catch{
        #PASS
    }finally{
        $s.close()
    }
    $connected
}
test-connection "127.0.0.1" 12345
test-connection "127.0.0.1" 6789

【问题讨论】:

    标签: mongodb amazon-web-services ssh-tunnel


    【解决方案1】:

    检查你的 mongod.conf 中的bindIp

    这指定了 mongod 可以监听的 IP 地址。默认情况下它只接受本地主机

    【讨论】:

    • 我忘了说我已经在bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces /etc/mongod.conf 中注释掉了这一行。
    • 我也尝试将 bindIp 设置为 0.0.0.0,但问题仍然存在。
    猜你喜欢
    • 2019-08-08
    • 1970-01-01
    • 2013-01-06
    • 2011-10-30
    • 2016-09-22
    • 2021-03-10
    • 2020-03-13
    • 2020-07-05
    • 1970-01-01
    相关资源
    最近更新 更多