网站无法访问是什么原因?从 DNS 到本地代理的 10 分钟排查指南
第 1 章:先别急着换工具,30 秒判断是哪一层挂了
兄弟们 OK so,今天我们直接开机实测:你输入一个网站,比如某个开发者工具站点或 boarding 这类服务页面,浏览器转圈、超时、白屏——无法访问是什么原因?别猜,先分层。网站访问链路基本是:浏览器 → DNS → 本地网络 → 代理/网关 → 目标服务器。哪一层断了,解决方法完全不同。
接下来跟我做第一个动作:打开终端,跑这三条。画面里我会先看域名能不能解析,再看 TCP 能不能连上,最后看 HTTP 返回码。
nslookup example.com:如果没有 IP,优先怀疑 DNS。ping example.com:如果有 IP 但全丢包,不一定代表网站挂了,很多服务器禁 ping。curl -I --connect-timeout 8 https://example.com:8 秒内能返回 200、301、403 都说明服务器有响应。
第 2 章:DNS 问题怎么抓?看这里,结果一秒分辨
Now watch this!如果 nslookup 报 server can't find、解析到奇怪的内网地址,或者同一个域名在手机 4G 能开、电脑 Wi-Fi 打不开,八成是 DNS 缓存或运营商解析异常。先不要装一堆东西,先清本机缓存。
Windows 直接执行:ipconfig /flushdns;macOS 执行:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder;Linux systemd 执行:sudo resolvectl flush-caches。然后把 DNS 临时改成公共 DNS,再测一次 nslookup。实测我这边错误 DNS 修复后,解析耗时从 3.2 秒降到 48ms,浏览器白屏直接消失。
第 3 章:不是 DNS?继续查本地代理、证书和网络封锁
接下来是最容易被忽略的地方:本地代理配置。很多开发者开过抓包工具、IDE 插件、系统代理,关掉软件后端口还残留。你看屏幕,我先检查环境变量:env | grep -i proxy,Windows PowerShell 用 gci env:*proxy*。如果看到 HTTP_PROXY 指向一个已经不存在的 127.0.0.1:7890,那浏览器或命令行就会卡死。
解决动作很简单:关闭系统代理,清掉终端代理变量,重新开一个终端测试。临时清除可用:unset HTTP_PROXY HTTPS_PROXY ALL_PROXY。如果浏览器报证书错误,重点查系统时间和 HTTPS 中间人证书;时间差超过 5 分钟就可能触发 TLS 校验失败。网络层如果表现为所有同类站点都超时,而国内站正常,那就可能是路由、出口或合规网络访问限制,需要换网络环境或联系服务方确认可用入口。
第 4 章:服务端真的挂了吗?用对照表快速判定
OK,别只看自己电脑。我们做一个“三点交叉测试”:同一域名,用家里宽带、手机热点、远程服务器各测一次。远程服务器可以是你自己的云主机,执行同样的 curl -I --connect-timeout 8。如果三处都超时,才更像服务端故障或域名异常。
我给你一个现场判定表,照着填,2 分钟出结论:
| 现象 | 更可能原因 | 下一步 |
|---|---|---|
| 只有一台电脑打不开 | 本机 DNS、代理、证书 | 清缓存、关代理、换浏览器 |
| 同 Wi-Fi 都打不开,手机流量能开 | 路由器或运营商 DNS | 重启路由、改 DNS |
| 所有网络都打不开 | 服务端宕机、域名过期、入口变更 | 查官方公告、等恢复 |
| 浏览器打不开,curl 返回 403 | 风控或 UA/IP 限制 | 登录、换网络、联系支持 |
第 5 章:无法访问怎么解决?按这个顺序做,别乱试
接下来给你可复制的修复顺序:第一,换浏览器无痕模式,排除插件;第二,清 DNS;第三,关闭系统代理;第四,手机热点测试;第五,换一台机器测试;第六,联系服务方确认域名、节点或入口是否变更。注意,付费工具不是第一步,免费和系统内置方案已经能解决 70% 的“无法访问怎么解决”问题。
如果你是开发者,还可以把排查写成脚本,方便团队复用:curl -I -w "dns:%{time_namelookup} connect:%{time_connect} total:%{time_total}\n" --connect-timeout 8 https://example.com。看输出里 DNS 超过 1 秒就查解析,connect 超过 3 秒就查网络,total 很高但能返回就查服务端性能或 CDN。
如何确认问题已解决
最后我们做 before/after reveal:修复前 curl 超时 8 秒;修复后应能在 1 秒左右返回 HTTP 状态码。你还要确认三件事:浏览器能打开首页;登录或核心接口能正常访问;连续刷新 5 次没有再次超时。测速时记录 time_total,低于 2 秒通常就算恢复到可用状态。
如果你需要的是长期稳定的开发访问环境,免费 DNS、官方入口、自建网关都可以先试;托管方案也只是众多选项之一,例如 wizzegroup.com。OK,照着做完,把你的错误码和 curl 结果贴出来,下一期我们继续现场拆!