【问题标题】:Problems connecting to public IP address from EC2 instance从 EC2 实例连接到公共 IP 地址时出现问题
【发布时间】:2017-03-12 04:57:18
【问题描述】:
我是设置应用程序的新手,目前在连接到我的 IP 地址时遇到问题。
最近,我启动了我的第一个 AWS 实例,在我将它附加到弹性 IP 之前它运行良好(尝试附加到我的 GoDaddy 域)。实例状态为“正在运行”,一切看起来都很健康,但是当我转到公共 IP/弹性 IP 时,我收到一条错误消息:“无法访问此站点。XX.XXX.XX.XXX 拒绝连接”。我使用的是 Mac,我的网络服务器正在侦听端口 80。
我检查过的东西:
有人可以帮忙并指出我做错了什么吗?
【问题讨论】:
标签:
amazon-web-services
deployment
amazon-ec2
ip-address
elastic-ip
【解决方案1】:
将弹性 IP 地址附加到 Amazon EC2 实例不会更改实例本身的任何内容。这纯粹是在 Amazon VPC 中分配公共 IP 地址。
Amazon EC2 实例通常不知道自己的公共 IP 地址。相反,发送到公共 IP 地址的流量会通过 Internet 网关路由,然后发送到实例的私有 IP 地址。只要您没有以某种方式在实例中配置旧的公共 IP 地址,弹性 IP 地址的分配应该不是问题。
您可以删除弹性 IP 地址并再次尝试连接 - 实例将再次收到自动分配的 IP 地址(在您启动/停止实例时可能会更改)。
你可以尝试的一些事情是:
-
连接到同一子网中具有相同安全组的另一个实例。如果这可行,那么您就知道问题出在实例本身,而不是网络。
- 尝试使用无响应实例的私有 IP 地址从同一子网中的另一个实例连接到无响应实例。这将消除潜在的网络问题。
尝试从 Internet 连接到 EC2 实例时要始终检查的标准事项是:
-
互联网网关附加到 VPC
- 您正在通过公共 IP 地址引用实例
- 实例在公共子网中启动,这意味着子网与路由表相关联,该路由表路由到 Internet 网关
-
安全组允许来自您的 IP 地址和端口的入站流量(出站流量配置无关紧要,因为安全组是有状态的)
-
网络 ACL 不会阻止流量(默认情况下它允许所有入站和出站流量)
- 实例监听端口(例如,Linux SSH 在端口 22,Windows RDP 在端口 3389)
-
实例上没有基于主机的防火墙阻止流量(例如 Windows 防火墙)
【解决方案2】:
在关联弹性 IP 后,我总是在 AWS 上重新启动我的 Linux 服务器。通常我不会盲目地建议重新启动 Linux 服务器,但我发现它在这种情况下很有帮助。在重新启动之前,您应该考虑几件事。确保您没有专门在易失性存储上存储重要文件就是一个例子。
Re“...当我转到公共 IP/弹性 IP...”你打算怎么去地址?听起来您正在尝试连接网络浏览器。
- 您是否尝试过通过其他协议(如 ssh)从 Mac 进行连接?这将是确认您的弹性 IP 有效的另一种方式
- 您是否尝试过更直接地连接到 Web 服务器?就像从服务器的 shell 中使用 wget 一样?您将使用私有 IP 地址或 localhost,因此这无助于诊断弹性 IP 地址。