网站打不开怎么排查?IP、DNS、端口、状态码四步定位

2026-10-15约 8 分钟网络工具涉及 5 个工具

遇到「网站打不开」,刷新和换浏览器通常解决不了问题。有效的做法是按层往下查:IP 地址对不对、域名解不解析、端口开没开、服务返回了什么状态码。这篇给出每一步的判断依据。

核心要点
  • 排查网络问题要按 IP → DNS → 端口 → HTTP 状态码的顺序逐层往下,跳过任何一层都可能得出错误结论
  • 10.x、172.16-31.x、192.168.x、127.x 都是私有或回环地址,不可能作为公网服务器地址被访问
  • DNS 记录类型决定用途:A/AAAA 是地址记录、CNAME 是别名、MX 管邮件、TXT 常用于域名所有权验证
  • 端口不通只有两种原因:防火墙拦截或服务没在监听,先用端口速查表确认该服务的默认端口号
  • HTTP 状态码自己会指路:4xx 是请求侧问题、5xx 是服务端问题,502 与 504 通常指向反向代理或上游超时
  • WebSocket 测试由浏览器直连目标服务器、消息不经过本站,可用来验证 wss 证书与鉴权头是否正常

#先确定问题出在哪一层

网络问题的排查顺序是固定的:地址 → 解析 → 端口 → 应用协议。 从下往上查,因为上层依赖下层,下层不通时上层的报错往往是误导。

比如浏览器报「连接超时」,可能是域名没解析、也可能是解析正常但端口被防火墙拦了。只看浏览器提示无法区分,必须分层验证 —— 每一层要回答的问题并不相同:

层要回答的问题用什么查
地址这个 IP 是公网地址吗IP 地址查询
解析域名指向哪个 IPDNS 查询
端口目标端口是否可达端口大全
协议服务返回了什么HTTP 状态码

#第一步:地址本身就是错的

私有地址和回环地址不可能被公网访问,如果服务器地址落在这些网段里,问题就到此为止了。

以下网段是保留给内网的,任何公网请求都到不了:

网段用途
10.0.0.0/8私有网络
172.16.0.0/12私有网络
192.168.0.0/16家庭与办公局域网
127.0.0.0/8本机回环(localhost)
169.254.0.0/16链路本地地址,通常是 DHCP 拿不到地址时的兜底

反过来,如果查到的地址是 169.254. 开头,说明这台机器根本没拿到有效的 IP,此时任何网络请求都会失败。

技巧

用 IP 地址查询 时可以直接看到地址类型判定。IPv6 地址还能顺便看展开与压缩两种写法是否等价 —— fe80::1 和 fe80:0000:0000:0000:0000:0000:0000:0001 是同一个地址。

#第二步:域名解析对不对

DNS 问题的典型特征是「用 IP 能访问、用域名不行」,只要出现这个现象就应该直接去查解析记录。

不同记录类型解决不同问题,查错了会误判:

记录类型作用查它的典型场景
A域名 → IPv4 地址网站打不开
AAAA域名 → IPv6 地址只有部分网络能打开
CNAME域名 → 另一个域名用了 CDN 或第三方服务
MX邮件服务器收不到邮件
TXT文本记录域名所有权验证、SPF
NS权威域名服务器确认解析由谁负责
注意

改完解析不要立刻期待生效。记录上的 TTL 值就是「旧值还能被缓存多久」,TTL 3600 意味着最坏情况要等 1 小时。排查时看到的「解析结果不对」,可能只是本地或中间 DNS 还在用缓存。

#第三步:端口通不通

端口不通只有两个原因:防火墙拦截,或服务根本没在监听。 先确认端口号本身没搞错。

很多服务的默认端口容易被记混:

服务默认端口
HTTP / HTTPS80 / 443
SSH22
MySQL / PostgreSQL3306 / 5432
Redis6379
MongoDB27017

用 端口大全 可以按端口号或服务名反查,它收录了 68 个常见服务端口,覆盖数据库、中间件、容器等场景。确认端口号之后,再去服务器上核对防火墙规则与监听状态。

#第四步:服务返回了什么

HTTP 状态码是排查里信息量最大的一层,因为它直接告诉你问题在请求侧还是服务端。 记住类别划分就能快速判断:

  • 2xx 成功:请求正常处理,问题可能在页面逻辑或前端资源
  • 3xx 重定向:注意是否有重定向环路,或跳到了 http 导致证书警告
  • 4xx 客户端:401 未认证、403 无权限、404 路径不对、429 请求过频
  • 5xx 服务端:500 代码异常、502 网关收到无效响应、503 服务不可用、504 上游超时
要点

502 和 504 几乎都指向反向代理这一层,而不是业务代码。 502 是代理连上了后端但收到无效响应(后端进程崩了或端口配错),504 是代理等后端超时(后端处理太慢或死锁)。先看后端进程还在不在,比翻代码更快。

分类细节可以在 HTTP 状态码 里逐个查,它收录了 1xx 到 5xx 的常用状态码与中英文说明。

#长连接问题要单独测

WebSocket 的握手虽然建立在 HTTP 之上,但它的失败原因和普通请求完全不同,用 HTTP 工具测不出来。

常见差异有这几个:

  • 握手需要 Upgrade 头,中间的代理可能把它剥掉
  • wss:// 要过证书校验,自签证书会直接失败
  • 很多网关默认不支持长连接,会把升级请求当普通 HTTP 处理
  • 浏览器对跨域 WebSocket 的校验方式与 AJAX 不同

用 WebSocket 测试 可以直接输入 ws:// 或 wss:// 地址验证:

  1. 先连一个公开的 echo 服务确认工具能用
  2. 再换成目标地址,观察握手是否成功
  3. 连接成功后发一条消息,看是否能收到回包
  4. 注意日志里的状态变化 —— 连上后立刻断开通常意味着鉴权失败
说明

这条连接是浏览器直连目标服务器的,消息不经过本站。如果你需要验证的是「只有特定 header 才能通过」的场景,浏览器的 WebSocket API 不支持自定义 header,这类测试只能用命令行工具或后端脚本完成。

#什么时候该用哪个工具

你想做的事用哪个说明
确认 IP 是公网还是内网IP 地址查询同时给出 IPv4 进制换算与 IPv6 展开压缩
查域名解析到了哪里DNS 查询支持 A/AAAA/CNAME/MX/TXT/NS/SOA,显示 TTL
确认某个服务用哪个端口端口大全68 个常见端口,可按号或按服务名反查
搞清返回码什么意思HTTP 状态码1xx-5xx 中英文含义与说明
调试长连接接口WebSocket 测试连接、收发消息、日志记录
提取日志里的 IP 或邮箱正则表达式测试日志分析场景常用

#常见问题

#网站打不开,但用 IP 能打开,是什么原因?

这是典型的 DNS 问题。域名没有解析到正确地址,或者解析记录被 CDN、中间 DNS 缓存了旧值。用 DNS 查询 查一下 A 记录和 TTL,对比服务器实际 IP。如果是刚改过解析,等 TTL 过期再测。

#为什么有些网络能打开、有些打不开?

常见原因有三个:一是域名同时配了 A 和 AAAA 记录,但只有 IPv4 通(或反过来);二是用了 CDN,不同地区解析到不同节点,某些节点异常;三是本地 DNS 污染。先查 AAAA 记录,再换网络环境对比。

#端口不通是防火墙问题还是服务没起来?

两个都要验,但顺序是先看服务再看防火墙。在服务器上确认进程在监听(netstat 或 ss 能看到对应端口),再用外部工具测连通性。如果服务在监听但外部连不上,就是防火墙或安全组的问题。

#502 和 504 有什么区别?

502 Bad Gateway 是反向代理收到了无效响应 —— 通常是后端进程崩了或端口配错;504 Gateway Timeout 是代理等待后端超时 —— 通常是后端处理太慢或卡住了。前者要检查后端进程,后者要查性能与超时配置。

#WebSocket 连接建立后立刻断开是什么原因?

最常见的是鉴权失败:服务端校验 token 或 header 不通过时会主动关闭连接。其次是协议版本不匹配,或者中间的网关不支持长连接、把它当普通 HTTP 请求处理掉了。先用公开 echo 服务确认网络与工具正常,再逐项排查鉴权与网关配置。

本文提到的工具

相关文章