连接阿里云服务器时出现“超时”(Connection Timed Out),通常意味着客户端无法在指定时间内与服务器建立 TCP 连接。这往往不是单一原因造成的,需要从网络配置、安全组规则、系统服务状态三个层面逐步排查。
以下是详细的排查步骤和解决方案:
1. 检查安全组规则(最常见原因)
阿里云的安全组相当于虚拟防火墙,默认情况下会拒绝所有入站流量。如果端口未开放,连接就会直接超时。
- 操作路径:登录阿里云控制台 -> 云服务器 ECS -> 实例列表 -> 点击实例 ID -> 右侧“更多” -> “网络和安全组” -> “安全组配置”。
- 排查重点:
- 找到入方向(Inbound)规则。
- 确认是否添加了允许你本地 IP 访问的TCP 规则。
- 关键检查点:
- 端口号:是否放行了正确的端口?(如 SSH 是
22,Web 是80/443)。 - 授权对象:是否填写了具体的 IP 地址?如果是
0.0.0.0/0(代表所有 IP),请谨慎使用,但用于测试连接最方便;如果是特定 IP,请确保你的公网 IP 没有变动。 - 优先级:确保该规则的优先级足够高(数值越小优先级越高)。
- 端口号:是否放行了正确的端口?(如 SSH 是
注意:修改安全组规则后通常立即生效,无需重启服务器。
2. 检查公网 IP 与带宽限制
如果安全组已正确配置,但依然超时,可能是网络层面的问题。
- 确认公网 IP 是否正确:
- 在阿里云控制台查看实例详情,确认你正在使用的 IP 是公网 IP(Public IP),而不是内网 IP(Private IP)。
- 如果你使用的是弹性公网 IP(EIP),请确认 EIP 是否已绑定到该实例上。
- 检查带宽是否耗尽:
- 如果实例带宽设置为
0 Mbps或已欠费停机,虽然实例状态显示“运行中”,但网络将无法访问。 - 查看云监控中的带宽使用率,确认是否有突发流量打满带宽导致丢包。
- 如果实例带宽设置为
3. 检查操作系统内部防火墙
即使阿里云安全组放行了,服务器内部的防火墙(如 iptables, firewalld, ufw)也可能拦截连接。
- Linux (CentOS/RHEL):
# 临时关闭防火墙测试(生产环境慎用) systemctl stop firewalld # 或者检查 iptables 规则 iptables -L -n - Linux (Ubuntu/Debian):
sudo ufw status # 如果显示 active 且未放行 22 端口,尝试暂时关闭 sudo ufw disable - Windows:
- 进入“控制面板” -> "Windows Defender 防火墙” -> “高级设置”,检查入站规则中是否允许了相关端口的 TCP 连接。
4. 检查 SSH 服务状态(针对 Linux)
如果上述网络层都正常,可能是服务器上的 SSH 服务本身挂了。
- 通过 VNC 登录:
由于网络不通,SSH 无法连接。请登录阿里云控制台的远程连接功能(选择 VNC 或终端),强制登录到服务器内部。 -
验证服务:
# 检查 sshd 进程是否存在 ps -ef | grep sshd # 检查 sshd 监听端口 netstat -tlnp | grep 22 # 如果没有输出,说明服务未启动,需执行: sudo service sshd start # 或 sudo systemctl start sshd - 检查
/etc/ssh/sshd_config:
确认配置文件中的Port是否为 22(或你自定义的端口),且未被注释掉。
5. 特殊情况排查
- IP 被运营商封锁:极少数情况下,你的本地宽带 IP 段可能被运营商屏蔽了阿里云的某些端口,尝试切换手机热点测试。
- DDoS 攻击:如果实例遭受 DDoS 攻击,阿里云可能会自动触发防护策略暂时阻断流量,查看云盾/安全中心是否有告警。
- 资源耗尽:服务器 CPU 或内存 100% 满载,导致无法响应新的连接请求。同样需要通过 VNC 登录查看负载情况。
总结与建议流程
遇到超时,建议按以下顺序操作:
- 先看控制台:确认实例状态为“运行中”,且安全组已放行对应端口(这是 90% 的原因)。
- 再试 VNC:通过阿里云自带的 VNC 登录进去,检查内部防火墙和服务状态。
- 最后查网络:确认公网 IP 绑定情况及带宽状态。
如果以上步骤均无效,且 VNC 也无法登录(提示无权限或卡死),建议直接在阿里云控制台提交工单,联系技术支持进行底层排查。
CLOUD技术笔记