尝试访问EC2实例时超时的可能原因

min*_*eow 95 ssh amazon-ec2 amazon-web-services

我无法SSH进入我的实例 - 操作超时.可能是什么原因,我该怎么做才能解决它?重新启动通常需要很长时间才能生效,并且可能会使事情变得更糟

更新:它不是关于权限 - 我可以正常登录就好了.我怀疑这可能是因为内存问题

ted*_*uss 89

我遇到了同样的问题,最终解决方案是将本地计算机的IP添加到活动安全组中的入站规则列表中.在下面的入站对话框中,在端口范围中输入22,在源字段中输入本地IP/32,并在下拉列表中保留"custom tcp rule".

在此输入图像描述

  • 按"添加规则"按钮后,您还需要点击"应用规则更改"才能使其生效.别忘了这个.这让我搞砸了几次. (5认同)
  • 这对我有用,谢谢!!出于某种原因..我的 IP 地址发生了变化,突然间我无法通过 ssh 连接到我的 ec2 实例。我只是添加了一个规则,而不是放置“自定义”IP 地址,我只是选择了“我的 IP”和 wala...我能够通过 ssh 进入! (2认同)

Jon*_*nik 65

您是否为实例设置了适当的安全组?即允许从您的网络访问实例上的端口22的那个.(默认情况下,不允许所有流量.)

更新:好的,不是安全组问题.但是,如果您从同一个AMI启动另一个实例并尝试访问它,问题是否仍然存在?也许这个特定的EC2实例只是随机地以某种方式失败了 - 只是时间问题才会发生.(推荐阅读:云架构:最佳实践(PDF),Jinesh Varia的论文,他是亚马逊的网络服务传播者.特别参见标题为"设计失败,没有任何失败"的部分.)

  • 我的天……在组中打开 SSH 端口是如此基本,我不敢相信它不在此处:http://alestic.com/2009/08/ec2-connectivity。谢谢你指出。 (2认同)

Bru*_*sky 26

摧毁并重新创造

我有一个可用区域,我可以连接,另一个我无法连接.几个小时后,我非常沮丧,因为我删除了可用区中的所有内容.

建立一切我必须确保创造一切.这包括:

  • 创建VPC
    • CIDR: 10.0.0.0/24
  • 创建Internet网关
  • Internet网关连接到VPC
  • 创建路由表
  • 添加路由路由表
    • Destination: 0.0.0.0/0
    • Target: <Internet Gateway from earlier>
  • 创建子网
    • CIDR: 10.0.0.0/24
    • Routing Table: <Routing Table from earlier

我花了很多时间来摸索这一切.我按照我认为可能最有效的方式订购了这些步骤,但您可能需要对它们进行调整以使下一个项目可用.

建议

我不是建议你像我一样去热核.我提供所有这些信息,以便您可以检查这些关联以确保您的信息合适.

  • 这真的帮助了我!我有一个案例,我的路由表没有指向互联网网关,这是唯一的问题. (6认同)
  • 感谢TON @BrunoBronosky。确实,如果那“ Internet网关”必须如此,那么为什么默认的AWS文档中没有提及呢?:( (2认同)

dsl*_*sky 21

这个答案适合愚蠢的人(像我一样).您的EC2的公共DNS可能(将)在重新启动时更改.如果您没有意识到这一点并尝试通过SSH连接到旧的公共DNS,则连接将停止并超时.这可能会导致您假设您的EC2或安全组出现问题,或者......不,只需通过SSH连接到新的DNS.~/.ssh/config如果有必要,请更新您的文件!

  • 花了一个小时解决我的超时问题,这就是解决方案。谢谢 :) (4认同)
  • 你可能救了我一周的时间,并避免了可能的自残。谢谢你! (3认同)
  • 非常感谢@dslosky,您救了我的命。:) (2认同)

AJc*_*dez 11

连接使用ssh如下:

ssh -i keyname.pem username@xxx.xx.xxx.xx
Run Code Online (Sandbox Code Playgroud)

keyname.pem您的私钥的名称在哪里,username是您的os分发的正确用户名,并且xxx.xx.xxx.xx是公共IP地址.

当它超时或失败时,请检查以下内容:

安全组

确保有tcp端口22的入站规则以及所有ips或你的ip.您可以通过实例选项中的ec2菜单找到安全组.

路由表

对于vpc中的新子网,您需要更改为将0.0.0.0/0指向Internet网关目标的路由表.在vpc中创建子网时,默认情况下会分配默认路由表,该表可能不接受来自Internet的传入流量.您可以在vpc菜单中编辑路由表选项,然后编辑子网.

弹性IP

对于vpc中的实例,需要分配公共弹性IP地址,并将其与实例关联.无法从外部访问私有IP地址.您可以在ec2菜单中获得弹性IP(不是实例菜单).

用户名

确保您使用的是正确的用户名.它应该是一个ec2-userrootubuntu.如有必要,请尝试所有.

私钥

确保使用正确的私钥(您下载或启动实例时选择的私钥).看起来很明显,但复制粘贴让我两次.


vij*_*jay 9

在此输入图像描述

2小时后我发现了这个

注意ssh ip120.138.105.251/32

  • 不是 aws 实例 IP 地址

  • 这不是你本地的ip127.0.0.1

  • 这不是你本地的iplocalhost

但是但是但是

它是尝试访问 aws 实例的个人计算机的公共 IP 地址

  1. 转到https://www.whatismyip.com/ ssh 中输入的任何 IP 地址

如果你想对所有IP地址完全开放SSH 在此输入图像描述

这就是完全无障碍条目的外观 - 基本推荐 在此输入图像描述

这就是我在生产中使用的 在此输入图像描述


gar*_*les 7

你看过实例的控制台输出了吗?您可以通过AWS控制台执行此操作(实例 - >右键单击实例 - >获取系统日志).我曾经有过EC2实例上的网络服务无法正常启动的情况,导致SSH连接超时; 重启实例通常是固定的东西.