本文由 亚马逊云站代理商『翼龙云/TG @Yilongcloud 撰写』如需转载请注明!
在连接 AWS EC2 实例时,Connection timed out(连接超时)是开发者最常遇到的网络报错。
区分 Connection timed out 与 Connection refused
在连接 AWS EC2 Linux 实例时,Connection timed out(连接超时) 是运维最常遇到的网络报错。 先区分两类典型报错,避免排查方向走偏:
- Connection timed out:SYN 数据包发出,没有收到任何回应;流量在传输链路被静默丢弃,属于网络层故障。常见原因:无公网 IP、路由缺失、安全组 / NACL 拦截、实例网络异常。
- Connection refused:TCP 握手抵达服务器,被主动拒绝;一般是 sshd 未启动、监听端口变更、系统防火墙拦截,不属于本文超时排查范围。
针对超时问题,建议按“公网入口 -> 网络路由 -> 访问控制”的顺序进行系统化排查。
说明:本文针对报错 Connection timed out(连接超时);基于 2026 年 8 月 AWS 国际版控制台整理。注意区分报错:Connection timed out 流量被网络链路丢弃;Connection refused 网络可达但 SSH 服务拒绝连接。
一、排查逻辑与检查清单
| 检查层级 | 对应组件 | 预期状态 | 常见超时诱因 |
| 第一层:实例基础入口 | EC2 实例、公网 IPv4/EIP | 实例状态 Running,2/2 状态检查全部通过;具备有效的公网 IP;实例部署在公有子网 | 实例停机;状态检查失败;无公网 IP;实例部署在私有子网 |
| 第二层:网络路由 | 子网、路由表、Internet 网关 (IGW) | 实例所在子网路由表存在 0.0.0.0/0 目标指向 IGW;IGW 成功附加至 VPC | 缺少默认外网路由;IGW 未绑定 VPC;实例位于私有子网 |
| 第三层:访问控制 | 安全组、网络 ACL (NACL) | 安全组入站放行 TCP 22;NACL 双向放行 SSH 流量 | 安全组源 IP 配置错误;NACL 缺少出站临时端口规则;IP 动态变更 |
重要前置知识点: 公有子网 ≠ 随便创建子网。只有路由表包含 0.0.0.0/0 → IGW 的子网才是公有子网;私有子网内的实例,即便绑定 EIP,也无法直接从公网 SSH 访问。
二、第一层检查:实例状态与公网 IP
想要互联网直接 SSH 访问实例,必须同时满足多个条件:
EC2 实例状态为【运行中 (Running)】;
实例状态检查显示 2/2 已通过;若状态检查失败,代表操作系统网络 / 内核异常,即便配置全部正确也无法连通;
实例拥有有效的公网 IPv4 地址,或已关联弹性 IP (EIP)。
实操核验: 进入 EC2 实例详情,查看「公网 IPv4 地址」字段:
- 字段为空:实例无公网寻址能力;
- 注意:普通自动分配公网 IP,实例停止重启后 IP 会变更;长期业务建议绑定 EIP 固定地址。
修复方案:若缺少公网 IP,可申请弹性 IP 关联至实例。 ⚠️
计费提醒:按照 AWS 现行规则,所有分配的公网 IPv4(含 EIP)持续计费,闲置 EIP 记得释放。
补充场景:实例部署在私有子网 私有子网没有指向 IGW 路由,无法直接公网 SSH。
两种解决方案: ① 部署一台公有子网堡垒机(Bastion),内网跳转登录; ② 使用 AWS Systems Manager Session Manager,不需要开放 22 端口、无需公网 IP,出海业务更安全。
三、第二层检查:VPC 路由表与 Internet 网关 (IGW)
即便拥有公网 IP,若子网路由未指向互联网,连接依然会超时。
识别公有子网:公有子网必须关联一条指向 Internet 网关的默认路由。
检查路由配置:在实例所属子网的“路由表”中,确认是否存在一条目标为 0.0.0.0/0、目标(Target)为 igw-xxxxxxxx 的记录。
检查 IGW 状态:确认 IGW 已经附加到当前 VPC,没有处于分离状态。
常见故障:
- 新建 VPC 忘记创建 / 附加 IGW;
- 路由表没有添加外网默认路由;
- 实例误创建在私有子网。
修复操作:若路由缺失或显示为 Blackhole,需确认 IGW 已附加到该 VPC,并在路由表中手动添加指向该网关的默认路由。
四、第三层检查:安全组入站规则与 ACL
安全组(实例级防火墙,有状态)
进入实例【安全】标签查看绑定安全组,校验入站规则: 协议:TCP;端口范围:22;源地址填写你当前本地公网 IP/CIDR。
高频踩坑: 家用宽带为动态公网 IP,重启路由器后 IP 变化,安全组规则直接失效; 测试环境临时可使用My IP自动填充本机公网 IP;生产环境禁止长期开放0.0.0.0/0。
网络 ACL NACL(子网级防火墙,无状态!重点)
安全组放行后依然超时,大概率是 NACL 拦截。 NACL 为无状态策略,只放行入站 22 不够,必须配置两条规则:
- 入站:允许本地 IP 访问 TCP 22;
- 出站:允许所有临时端口 1024–65535(SSH 回程数据包)。
默认 NACL 允许全部流量;团队手动收紧策略后极易遗漏回程端口。
五、验证与本地环境排错
1. 端口连通测试命令
bash
# 测试22端口是否可达nc -zv 实例公网IP 22# 详细模式SSH,定位卡在哪个阶段ssh -v -i your-key.pem ec2-user@公网IP
2. 本地网络环境排查
如果 AWS 云端全部配置正确,但依然卡在Connecting to:
- 公司内网、酒店 WiFi、部分运营商会屏蔽出站 TCP 22 端口;
- 切换手机热点测试,区分是云端问题还是本地网络拦截;
- 关闭 VPN、代理再次尝试。
区分提示:EC2 内部操作系统防火墙(ufw/iptables)一般触发Connection refused,极少造成连接超时,不要优先排查系统防火墙。
常见问题 (FAQ):
Q:EC2 实例放在私有子网,绑定弹性 IP 后,能直接公网 SSH 登录吗?
A:不能。公有 / 私有子网由路由表决定,私有子网无 IGW 外网路由,即便拥有 EIP 也无法接收外网入站流量,必须使用堡垒机或者 SSM Session Manager 登录。
Q:AWS EC2 实例无法通过 SSH 连接,提示 Connection timed out 怎么排查?
遇到连接超时,需按“由外向内”的三层逻辑排查:首先,确认实例处于运行状态且绑定了有效的公网 IPv4 地址;其次,检查 VPC 路由表,确保实例所在子网拥有指向 Internet 网关的 0.0.0.0/0 路由;最后,核对安全组入站规则,确保 TCP 22 端口对您当前的本地公网 IP 放行。同时,也需排除本地网络防火墙拦截 22 端口的可能性。
Q:如何检查 AWS VPC 路由表和 Internet 网关配置以恢复 SSH 访问?
登录 AWS 控制台,进入 VPC 服务页面。在左侧导航栏选择“路由表”,找到与您的 EC2 实例子网关联的路由表。在下方的“路由”选项卡中,检查是否存在目标为 0.0.0.0/0 的路由。如果没有,需前往“Internet 网关”页面创建一个网关并附加到该 VPC,然后返回路由表,添加 0.0.0.0/0 并将目标指向刚创建的 Internet 网关,保存后即可恢复子网的公网出入能力。
