我正在设置我的第一个 Amazon EC2。我已经使用 youtube 上的教程使用 Ubuntu 创建了实例。我正确配置了实例,安全组、弹性 IP、SSH 端口都在 22 上并向全世界开放。不幸的是,当我通过 Putty 连接时,我仍然遇到错误网络错误:连接超时。这也是使用 EC2 keypar 进行配置的。我已经按照论坛和亚马逊本身的几个提示操作,但错误仍然存在。不幸的是,由于我使用的是免费计划,所以我没有支持来帮助我。还有其他因素可能导致此错误吗?
为了尝试连接,我正在执行以下步骤。
我下载了密钥对,使用 puttygen 创建了 ppk,打开 putty,将弹性 IP 地址放入 Host、SSH 访问 -> Auth,找到 ppk,然后打开它。过了一会儿,他给出了这个错误。
答案1
这肯定是防火墙的问题。
检查您的主机防火墙是否阻止 Putty 通过防火墙进行通信:
- 转到
Control Panel\System and Security\Windows Firewall\Allowed Programs
并允许或添加腻子。
- 转到
检查您的路由器/服务提供商是否阻止了到端口 22 的流量(传出)
答案2
在创建实例时,我们在高级选项中的用户数据字段中使用下面的命令将 SSH 端口从 TCP 22 更改为 TCP 2222。
#!/bin/bash -ex
perl -pi -e 's/^#?Port 22$/Port 2222/' /etc/ssh/sshd_config
服务 sshd 重启 || 服务 ssh 重启
我不太懂 Perl 和 Linux,但我相信这里有懂的人会向我们解释所有这些命令的作用。只需知道用户数据脚本在创建/启动实例时运行。
这些命令解决了通过 ssh 连接实例时超时的问题。