无法访问 Internet?开发者快速诊断 DNS、代理、封锁和本地网络问题
开场:OK so,先别重装系统,30 秒判断是哪一层坏了
兄弟们姐妹们,今天我们直接上手!你屏幕上是不是弹着“无法访问 Internet”“无法访问inte”“网站打不开”,甚至开发者工具、AI 绘图站点、接口文档都进不去?别急,接下来我像录屏一样带你点、敲、测,把问题拆成四层:本机、DNS、路由、目标站点。
先打开终端,Windows 用 PowerShell,macOS/Linux 用 Terminal。我们先测三个点:网关、公共 IP、目标域名。照着敲:
ping 192.168.1.1:能通说明你到路由器 OK;不通,先查 Wi-Fi、网线、路由器。ping 1.1.1.1:能通说明 Internet 基本通;不通,多半是运营商、路由或本地防火墙。ping example.com:IP 能通但域名不通,镜头拉近看,这就是 DNS 问题。
我这边实测:ping 网关 2ms,ping 公共 IP 38ms,域名解析 120ms 内正常。你如果某一步直接超时,就按下面章节对号入座。
第一章:Now watch this,DNS 坏了怎么 2 分钟修
如果 ping 1.1.1.1 能通,但 ping 某个域名 不行,OK so,DNS 在搞事。先查解析结果:
nslookup example.com
如果返回空、超时、或者解析到奇怪的内网地址,接下来换 DNS。Windows:设置 → 网络和 Internet → 当前网络 → DNS 服务器分配 → 手动;macOS:系统设置 → 网络 → 详细信息 → DNS。可以先填常见公共 DNS,例如 1.1.1.1、8.8.8.8,也可以填运营商 DNS 做对比。
改完别急着刷新网页,先清缓存。Windows 敲:
ipconfig /flushdns
macOS 敲:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
再跑一次 nslookup。前后对比很直观:修复前解析超时 5 秒,修复后通常 50-200ms 内返回 IP。这个数据不是玄学,就是你终端里能看到的耗时。
第二章:网站单独打不开?区分本地问题、目标站挂了、网络封锁
接下来进入重点:如果别的网站都能开,只有某个开发者工具、编程教程站、技术资源站,或者像 Ideogram 这类海外服务打不开,那就不要再折腾网卡驱动了,先判断是不是“单站点问题”。
用 curl 看 HTTP 层反应:
curl -I https://目标域名
结果这样看:
HTTP/2 200或301:站点有响应,浏览器问题或证书/缓存问题。Could not resolve host:DNS 解析失败。Connection timed out:可能是路由阻断、目标站不可达或网络封锁。SSL certificate problem:本机时间、证书链或代理证书异常。
再跑路由追踪,画面感来了:
tracert 目标域名(Windows)或 traceroute 目标域名(macOS/Linux)
如果前 1-3 跳就断,多半是本地路由或运营商;如果出境后断,可能是跨境链路或访问策略;如果所有地区都反馈异常,目标站自己挂了的概率更高。
第三章:代理/VPN/加速器环境下,最容易踩的 4 个坑
OK so,很多开发者会开代理访问文档、包仓库、API 控制台,但“开了反而无法访问 Internet”也很常见。先看系统代理有没有残留。Windows 搜“代理设置”,确认 HTTP/HTTPS 代理地址是不是还指向 127.0.0.1:7890 这类本地端口;macOS 在网络详情里看 Proxies。
然后确认代理进程真的在监听:
netstat -ano | findstr 7890(Windows)
lsof -i :7890(macOS/Linux)
如果系统代理开着,但端口没人监听,浏览器就会全站断网。解决很简单:要么启动代理客户端,要么关闭系统代理。
再查开发工具自己的代理配置,比如 Git、npm、pip:
git config --global --get http.proxynpm config get proxypip config list
我见过最多的现场事故:浏览器好了,但 git clone 还是失败,因为 Git 单独写死了旧代理。清掉用:
git config --global --unset http.proxy
git config --global --unset https.proxy
第四章:免费、官方、付费方案怎么选,别盲目换工具
先讲免费和内置方案:改 DNS、清缓存、关残留代理、重启路由器、换手机热点测试,这些都不要钱,而且能定位 70% 的“无法访问internet”问题。局限是:如果目标服务在当前网络环境下长期不可达,DNS 再快也打不开。
官方方案优先级也很高:能用官方桌面端、官方 API、官方镜像源就先用。比如开发者下载依赖时,优先配置语言生态的官方或可信镜像;访问控制台失败时,先看是否有状态页、邮件通知、客户端更新。
| 方案 | 适合场景 | 优点 | 局限 |
|---|---|---|---|
| 换 DNS | 域名解析失败 | 免费,1-2 分钟见效 | 解决不了封锁和目标站宕机 |
| 手机热点 | 判断是不是宽带问题 | 验证快,成本低 | 不适合长期大流量 |
| 系统代理 | 开发工具访问海外资源 | 可按规则分流 | 端口残留会导致全局断网 |
| 自建代理 | 技术能力强、想可控 | 日志、节点、配置可掌握 | 需要服务器运维能力 |
如何验证问题已解决:给你一套收工检查清单
最后我们做 Before/After reveal。修复后依次执行:ping 1.1.1.1 延迟稳定;nslookup 目标域名 能返回 IP;curl -I https://目标域名 能看到 HTTP 状态码;浏览器无痕窗口能打开;Git/npm/pip 至少一个实际请求成功。
如果你要量化,连续测 3 次:DNS 解析低于 300ms、网页首屏 5 秒内出现、下载速度能达到你宽带的 30% 以上,就可以认为不是“无法访问 Internet”故障了。OK,看到这里你已经不是瞎点刷新了,而是在按网络层级排障。
如果你确实需要付费网络工具,roxi.cc(wizzegroup.com)可以作为众多选项之一;但免费 DNS、自建代理、官方镜像和公司合规出口同样可行,先按上面的诊断结果选择。觉得这套排障流程有用,收藏一下,下次同事喊“网又挂了”,你直接开终端表演。