AWS HTTP连接超时(公网DNS失效)问题排查求助
排查更换PEM证书后公网DNS无法访问的实操方案
我之前换EC2证书时也碰到过一模一样的情况——刚搞定SSH连接,转头公网DNS就掉链子,那种抓心挠肝的感同身受!既然你已经确认安全组的80/443端口配置没问题,咱们从这几个核心方向逐一排查:
1. 先确认公网IP与DNS的绑定关系
- 如果你的实例用了弹性IP(EIP),先去控制台检查EIP是否重新绑定到主实例上。删除临时实例时很容易误操作解绑,或者换卷后实例的网络接口关联出了小问题。
- 验证方法:先记下实例当前的公网IP,然后在本地终端跑
ping <你的公网DNS地址>,看返回的IP和实例实际IP是否一致。如果不一致,要么是本地DNS缓存没更新,要么是EIP绑定错了目标实例。
2. 检查系统内部的DNS配置
换卷后新系统里的DNS配置可能和原实例不一致,导致实例自身解析或对外提供服务异常:
- 登录实例后,查看DNS配置文件:
cat /etc/resolv.conf - 正常情况下应该包含云服务商提供的DNS服务器(比如AWS的
169.254.169.253),如果是空的或者配置了错误地址,手动修改后重启网络服务:- CentOS/RHEL:
systemctl restart network - Ubuntu:
systemctl restart systemd-networkd
- CentOS/RHEL:
3. 验证Web服务是否正常加载新证书
端口开放不代表服务能正常跑——新证书配置错误很可能导致Web服务启动失败:
- 检查服务状态:Nginx用
systemctl status nginx,Apache用systemctl status httpd - 实时查看服务日志抓报错:
journalctl -u nginx -f,重点看有没有证书路径错误、权限不足、证书与私钥不匹配的提示 - 本地端口测试:在实例内跑
curl -I https://localhost,确认能返回200/301这类正常响应码
4. 别漏了VPC的网络ACL检查
很多人会忽略网络ACL——它是VPC层面的防火墙,比安全组更严格,而且是双向规则:
- 确认入站规则允许80(TCP)、443(TCP)流量,出站规则允许所有必要的响应流量(比如HTTP/HTTPS回包)
- 如果ACL规则是默认的“拒绝所有”,记得手动添加允许规则
5. 清除本地DNS缓存
有时候问题根本不在服务器端,而是本地电脑缓存了旧的DNS记录:
- Windows:命令提示符执行
ipconfig /flushdns - Mac:终端执行
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - Linux:终端执行
sudo systemd-resolve --flush-caches
如果以上都排查完还是不行,试试重启主实例——换卷后偶尔会出现网络栈初始化不彻底的情况,重启大概率能解决。
内容的提问来源于stack exchange,提问作者createawesomestuff




