我有一个在 AWS 上运行的 EC2 实例:
- 它是一个 Ubuntu Linux 实例,直到不久前我还使用 putty 定期访问它 - 效果很好。
- 我正在使用 Pageant 加载 .ppk 文件(按照 AWS 文档将其从 AWS 的原始 .pem 文件转换而来)。
- 我正在使用这些登录设置:
- 检查实例的安全组是否允许从我的地址通过端口 22 进行 SSH 访问 - 确实如此。
- 检查了我的弹性IP没有改变——确实没有改变。
- 尝试登录公共 DNS 而不是 IP,但没有成功。
- 重新启动实例并泡茶等待了 15 分钟。
话虽如此,我收到了“网络错误:连接超时”错误。
什么原因造成此情况?
答案1
所以,这最终是一个安全组问题。
AWS 会让您把每个想要通过 SSH 进入服务器的 IP 都包含在一个特殊的服务器权限“组”中。否则它会阻止您进入。这对于保护生产服务器非常有用,但对于从偏僻地方的咖啡馆访问您的开发服务器来说却很糟糕。
答案2
连接到您的 Ec2 实例时出错:连接超时
您在访问 AWS EC2 实例时遇到过致命错误吗?如果 SSH 访问 EC2 实例失败,有哪些替代方案?
首先,您将检查实例的安全组和网络连接,一旦一切正常,那么如果满足所有先决条件,您需要尝试使用 AWS SSM 会话管理器连接到实例。
如果您尝试连接到您的实例并收到错误消息网络错误:连接超时或者连接到 [实例] 时出错,原因:-> 连接超时:连接,请尝试以下操作:
检查附加到您的 Ec2 实例的 Aws 安全组规则。
您需要一个安全组规则,允许来自您的公共网络的入站流量IPv4 地址在正确的端口上ssh 连接你必须输入端口 22如截图所示。
如果您已经在 AWS 安全组中允许端口号 22,则通过以下方式检查与 Aws Ec2 实例的连接远程登录命令
[email protected]:~$ telnet 53.22.22.19 22
Trying 52.22.24.99...
Connected to ec2-53-22-22-19.compute-1.amazonaws.com.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.8
Connection closed by foreign host.
[email protected]:~$
每次你重新开始你的实例,一个新的IP地址(和主机名)将被分配给您的 Ec2 实例。
如果您的计算机位于公司网络上,请询问您的网络管理员内部防火墙是否允许从您的计算机通过端口 22(对于 Linux 实例)或端口 3389(对于 Windows 实例)传入和传出流量。
如果您的计算机上有防火墙,请验证它是否允许来自计算机的端口 22(对于 Linux 实例)或端口 3389(对于 Windows 实例)的入站和出站流量。
检查实例上的 CPU 负载;服务器可能超载。AWS 会自动提供 Amazon CloudWatch 指标和实例状态等数据,您可以使用这些数据来查看实例上的 CPU 负载。