网站打不开:按 DNS、HTTPS、状态码逐层排查
排查 DNS、证书过期与 HTTP 状态;区分服务运行、HTTPS 可用和 HEAD/GET 方法差异。
先保存同一个出错网址
记录完整路径、发生时间、浏览器报错和使用的网络。首页正常不代表某个接口正常;手机蜂窝网络能打开,也不代表公司网络的 DNS 没有问题。先做一次对照测试,不要同时修改解析、证书和服务器配置。
第一层:域名是否解析到预期地址
在 DNS 工具里分别查询 A 与 AAAA。把结果与云控制台显示的 IPv4、IPv6 对照。刚迁移服务器时,旧 A 记录、遗漏的 AAAA 记录或缓存都值得核对。查询没有记录不等于域名未注册,也可能是该类型没有配置。
排查记录示例(非实时监测):
目标:www.example.com
A:与部署清单不一致
AAAA:有记录,但服务器未配置 IPv6 站点
下一步:由域名管理员核对解析与 IPv6 配置
第二层:连接与证书是否正常
解析正确但连接超时,核对目标服务是否启动、监听端口及防火墙是否符合部署要求。HTTPS 证书错误则检查证书有效期、域名覆盖范围和证书链。不要关闭证书校验来让报错消失,也不要为排查而向公网开放所有端口。
证书过期:服务在运行,浏览器仍可能拒绝连接
浏览器出现 NET::ERR_CERT_DATE_INVALID,或 Windows curl.exe 报 SEC_E_CERT_EXPIRED 时,先核对本机日期,再检查实际对外提供的证书有效期与域名。静态服务和 API 都在运行,不代表反向代理使用的 HTTPS 证书仍然有效。不要使用忽略证书错误的选项作为恢复标准。
2026-10-10 在本机 Windows 直接访问本站时,旧证书的有效期结束于 UTC 14:11:59,即北京时间 22:11:59,正常证书校验失败。服务器服务仍 active,但原证书是直接放入目录的文件,没有对应 Certbot 续期配置;后台续期任务报告没有尝试续期。建立可续期证书并由代理加载后,本机在保留证书校验的情况下访问首页和 API 均返回 200,新证书同时覆盖根域名和 www,有效期至 2027-01-08 UTC 14:51:51。这是本站单次排障记录,不代表已经检测了其他网站或所有用户网络。
管理员复核:有自动任务,不等于续期已经成功
如果你的服务器使用 Certbot,可以先只读查看管理清单,再对具体证书做测试续期。下方 example.com 是占位证书名称,应替换为清单中真实的 Certificate Name,不是任意填写域名;在有权限的服务器上执行,不要在陌生工具中提交私钥。
certbot certificates
certbot renew --cert-name example.com --dry-run --no-random-sleep-on-renew测试续期使用测试环境,不是正式证书续期,也不能单靠退出码 0 判断更新:没有需要续期的证书也可能返回 0。核对输出是否实际尝试并成功,确认续期配置、域名验证路径和部署钩子有效。正式续期后还要由反向代理重新加载证书,再从公网核对实际提供的证书;仅在磁盘写入新文件不够。容器部署的目录、命令和代理类型可能不同,以自己系统的官方文档为准。本站组合诊断尚不显示证书到期日,不能代替这些管理检查。
第三层:按 HTTP 状态码选择下一步
403:检查访问权限或安全规则;404:核对路径、大小写和部署文件;502:网关未取得有效上游响应,应查看代理和应用日志;503:检查服务可用性与容量。301、302 是跳转,应核对目标是否正确,不能一律当作故障。
浏览器正常,检测却显示 403 或 405
本站使用 HEAD 请求读取响应头。浏览器打开页面通常使用 GET;目标服务的路由或安全规则可能分别处理这两种方法。405 表示该资源不允许所用方法,维护人员应核对响应中的 Allow 头。403 只表示拒绝访问,不能单凭状态码确定是 WAF、来源地址还是登录要求。
先在同一台电脑、同一网络,对自己维护的同一个公开小页面各请求一次。Windows 使用 curl.exe,避免 PowerShell 的命令别名;下方地址是本站公开首页,也可替换成自己的页面。命令最多等待 15 秒,不跟随跳转;GET 正文丢弃,但仍会传输,避免用于大文件。
curl.exe --head --max-time 15 https://shgjip.com/
curl.exe --dump-header - --output NUL --max-time 15 https://shgjip.com/Linux/macOS 将 curl.exe 改为 curl,第二条的 NUL 改为 /dev/null。默认保留 HTTPS 证书校验;若证书校验失败,先处理证书问题再比较状态码。
模拟样本(不是本站实测结果):
HEAD:405,Allow: GET
GET:200
判断:此资源可用 GET 取得响应,但不允许 HEAD
下一步:核对应用路由与代理方法配置,再复测两种请求若两种方法都是 403,记录时间、网址、来源网络与响应头,由站点管理员对照访问日志和规则。若本地都正常而本站检测返回 403,需要比较服务器与本地的来源条件;这不足以证明网站全面宕机。不要仅为让检测通过而关闭整站访问控制。收到 301/302 时先记录 Location,再单独核对目标地址;200 也不能证明登录后操作正常。
429 要先分清是谁在限流
429 表示请求过多,但检测接口限流和目标网站限流是两回事。本站组合诊断遇到自身接口的 HTTP 429,会立即停止剩余查询;已取得的结果仍可下载,未执行项会单独列出,不应据此判断目标网站宕机。目标网站返回 429 时,则在对应 HTTP 或 HTTPS 项中标记目标限流。
可复核的模拟示例(不是目标实时检测):
示例一:本站 /api/dns 返回 HTTP 429,即使响应正文是 HTML
预期:停止后续查询;A 未取得结论;AAAA、CNAME、HTTP、HTTPS 未执行
示例二:本站接口 HTTP 200,结果正文中的目标 status 为 429
预期:对应 HTTP/HTTPS 项提示目标限流,不误写为本站接口限流不要连续刷新或自动循环重试。响应可能带 Retry-After,若有则按其提示等待;未提供时不能推断固定几秒后必定恢复。维护人员应核对限流发生在目标服务还是检测入口,并对照同一时刻日志。可以使用网站故障诊断保存单次结果。
本站能确认什么,不能确认什么
网站响应工具从本站阿里云中国内地单节点发起 HEAD 请求,不执行目标页面的 JavaScript,不做浏览器整页测速,也不会自动追踪跳转。200 只证明该请求收到成功响应;登录后功能、图片加载和你所在网络仍需另测。不要提交带密码、登录令牌或客户资料的网址。
给维护人员的故障记录
时间及网络:
受影响网址(删除令牌):
浏览器错误或状态码:
A / AAAA 与预期是否一致:
其他网络对照结果:
最近一次部署或解析变更:维护人员用同一条记录复测;只改变一个配置后再次核对,确认受影响网址恢复,而不是仅查看首页。