DNS to Web Troubleshooting

A 记录已生效,为什么网站还是打不开?

A 记录只完成“域名找到 IPv4 地址”这一步。端口、防火墙、Web 服务、证书、CDN 和应用仍可能阻断访问。

正确顺序DNS → TCP → TLS → HTTP在哪一层失败,就只修那一层。

先确认“已生效”是真的

不要只看 DNS 面板里的保存结果。应确认当前权威 DNS 和公共解析器都返回预期地址,并分别检查根域名与 www

dig NS example.com +short
dig A example.com @1.1.1.1 +short
dig A www.example.com @8.8.8.8 +short

如果 NS 不是你正在修改的 DNS 服务商,记录不会对外生效;如果权威答案正确但公共解析器仍是旧 IP,先等待原 TTL 过期。可用本站 DNS 实时查询同时比较三个公共解析器。

根据浏览器现象定位层级

现象通常发生在哪层优先检查
连接超时路由、安全组、防火墙或服务未响应云安全组、系统防火墙、80/443 入站和公网路由。
连接被拒绝目标 IP 可达,但端口没有进程监听Nginx/Apache 状态及监听地址。
证书错误TLS 已建立,但证书链或域名不正确证书 SAN、fullchain、SNI 与 CDN 边缘证书。
502/504Web 网关已工作,上游应用失败或超时proxy_pass、应用端口、应用与数据库日志。
404/403服务器已响应,但站点规则或权限不符Host、server_name、站点根目录、WAF 和访问规则。

服务器端按四步检查

  1. 检查监听。sudo ss -lntp | grep -E ':80|:443' 应看到 Nginx、Apache 或其他服务。
  2. 检查本机响应。curl -I http://127.0.0.1 能区分 Web 服务是否在本机正常工作。
  3. 检查公网规则。云安全组和系统防火墙都要放行,任一层拒绝都会失败。
  4. 检查虚拟主机。server_name 必须包含当前域名,修改后先运行 nginx -t 再重载。
sudo systemctl status nginx
sudo ss -lntp | grep -E ':80|:443'
sudo nginx -t
curl -I -H 'Host: example.com' http://127.0.0.1/

别忽略 AAAA、CDN 和本地缓存

即使 A 正确,只要域名同时发布了不可用的 AAAA,一部分优先 IPv6 的网络仍会失败。经过 CDN 时,公共 DNS 指向边缘节点,真正需要核对的是 CDN 的回源 IP、回源端口、Host 和 HTTPS 模式。本机 hosts、路由器 DNS 或浏览器安全策略也可能保留旧状态。

先用手机流量和 Wi-Fi 各测试一次,再检查 AAAA/IPv6 路径。不要通过继续修改正确的 A 记录来掩盖端口或源站问题。

常见问题

ping 通 IP,为什么浏览器仍打不开?

ping 使用 ICMP,网站使用 TCP 80/443。ICMP 成功不能证明端口、TLS 或 Web 应用正常。

A 记录多久能全球生效?

没有统一时间,主要取决于修改前记录的 TTL 和各递归解析器缓存。权威答案会先更新,公共缓存随后过期。

要不要删除再重新添加 A 记录?

权威答案已经正确时不要删除重加。这样不会让旧缓存更快消失,反而会增加新的不确定性。

作者与维护

作者与维护: 核对方式:公网实测与官方资料 最后核对:2026年8月21日

本文以标准 DNS、TCP、TLS 和 HTTP 分层为依据。可通过反馈表单提交复现现象。