AWS EC2实例SSH连接超时及无法Ping通问题求助
解决EC2 SSH连接超时+Ping不通的实战排查指南
刚搭第一个EC2就卡在这里太糟心了!我帮你梳理几个容易踩坑的排查点,按顺序来试,大概率能搞定:
先把最基础的网络配置摸清楚
先确认你的EC2实例是不是放在公有子网里?如果是私有子网,那默认公网根本连不上,得先配NAT网关才行。另外,实例必须有可访问的公网IP——要么手动分配弹性公网IP(EIP),要么在子网设置里开了“自动分配公有IP”(有些区域默认是关闭的,得去子网配置里改)。安全组规则要抠到细节
你说已经加了ICMP和SSH规则,但得仔细核对:- SSH(22端口)的入站规则:源地址要写成CIDR格式,比如你自己的公网IP得是
xxx.xxx.xxx.xxx/32,不是只填IP;临时测试可以先设成0.0.0.0/0(测试完记得改回去,不安全) - ICMP规则:要选“所有ICMP类型”,源地址同样要设置正确。另外,有些系统(比如Amazon Linux 2)默认防火墙会禁Ping,你可以先通过EC2控制台的系统日志看实例有没有正常启动,或者用AWS自带的*会话管理器(Session Manager)*直接连进实例,在实例里执行
sudo ping 8.8.8.8测试出网,再查本地防火墙:sudo iptables -L或者sudo firewall-cmd --list-all,确保ICMP和22端口是开放的。
- SSH(22端口)的入站规则:源地址要写成CIDR格式,比如你自己的公网IP得是
别漏了子网的网络ACL(NACL)
很多人只盯着安全组,忘了子网层面的NACL!NACL是子网的防火墙,默认是允许所有出入,但如果被改过,必须确保:- 入站规则允许22端口(TCP)和ICMP流量,源地址正确
- 出站规则允许所有响应流量(比如TCP的ESTABLISHED状态,或者临时设成
0.0.0.0/0测试)
本地网络的隐藏坑
你说开了本地防火墙的22端口,但还要排查:- 你的ISP有没有封禁22端口?有些家用宽带会这么干,换个网络(比如手机热点)试试就知道了
- 本地有没有开VPN、代理或者防火墙软件?这些都可能拦截连接,先关掉再试
检查实例本身的状态
去EC2控制台看实例的系统状态检查和实例状态检查是不是全绿“正常”,如果有失败,说明实例启动有问题,可能是镜像或者配置的锅,先重启试试,不行就换官方的AMI(比如Amazon Linux 2、Ubuntu Server)重新创建实例,别用自定义的有问题的镜像。
内容的提问来源于stack exchange,提问作者user_dev
相关产品推荐
相关产品推荐

