【发布时间】:2016-04-17 11:51:05
【问题描述】:
我在 AWS 上有一个 ubuntu 实例,我在服务器上运行 mongod。 mongod 已将绑定 ip 设置为 0.0.0.0 并使用 netstat 进行验证。
sudo netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1055/sshd
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 1049/mongod
tcp6 0 0 :::22 :::* LISTEN 1055/sshd
我还在 AWS EC2 控制台上设置了安全组规则,以便允许来自我的公共 ip 在端口 27017 上的入站连接。我无法从我的笔记本电脑连接到 mongod (27017)。
telnet ec2-<ip-removed>.compute-1.amazonaws.com 27017 1 ↵
Trying <ip-removed>...
telnet: connect to address <ip-removed>: Operation timed out
但是我从笔记本电脑连接到端口 22 上的 ssh 没有问题
telnet ec2-<ip-removed>.compute-1.amazonaws.com 22 130 ↵
Trying <ip-removed>...
Connected to ec2-<ip-removed>.compute-1.amazonaws.com.
此设置在一周前运行良好,但突然我的笔记本电脑客户端拒绝连接到 mongo。我在端口 6800 上尝试了另一个服务,设置了入站规则并将绑定 ip 设置为 0.0.0.0/32,它也无法连接。我没有设置其他规则,实例上也没有 iptables 或防火墙。
我也尝试过重启服务器,但没有成功。
也可以从服务器本身连接到 mongo
ubuntu@aws$ telnet localhost 27017
Trying 127.0.0.1...
Connected to localhost.
【问题讨论】:
-
为了记录你不需要做
telnet ec2-<ip-removed>.compute-1.amazonaws.com你可以做telnet <ip-removed>。您的外部 IP 地址是否更改或与实例解除关联? -
感谢您的提示 :) 。不,我的 ip 没有改变,它是静态的。我也可以在 22 上通过 ssh 连接,但没有其他端口可以连接:(
-
必须是防火墙问题...你可以通过
iptables -L -vn检查iptables是否正在运行,如果它列出了任何规则,它正在运行。如果它正在运行,那么您可以使用/etc/init.d/iptables stop停止它。并加倍确保您没有任何 AWS 安全策略。 -
嗯,mongod 没有绑定到 IPv6 ip,但是 sshd 是,我想知道这是否是问题所在。
-
访问成功了吗?
标签: linux mongodb amazon-web-services ssh amazon-ec2