无法访问Internet怎么办:开发者从DNS到路由的完整排查流程
第1章:先别急着重装系统,30秒判断故障范围
各位,今天我们直接开屏幕实测。你看到“无法访问Internet”时,第一件事不是反复断开 Wi-Fi,而是确认到底是这台设备、这条网络,还是某个网站出了问题。现在拿手机连同一个 Wi-Fi:手机能正常打开常用应用、电脑不行,问题大概率在电脑;两台设备都不行,优先查路由器、宽带或运营商。
接下来打开终端。Windows 按 Win+R 输入 cmd,macOS 或 Linux 打开 Terminal。先执行 ping 223.5.5.5。这一步不依赖域名解析:如果能看到类似“时间=28ms”的回复,说明基础网络通了,重点转向 DNS;如果连续超时,继续看网关、网卡、路由或上游网络。实测中,家宽正常延迟通常在 10-60ms,超过 150ms 且持续丢包,就不是“网页慢”这么简单了。
- 执行
ipconfig(macOS/Linux 用ifconfig或ip addr),确认设备拿到了局域网 IP。 - 查看“默认网关”,常见为
192.168.1.1或192.168.0.1。 - 执行
ping 你的默认网关IP;网关都不通,先处理 Wi-Fi、网线或路由器。
现场反应来了:能 ping 通网关,但 ping 不通 223.5.5.5,通常表示电脑到路由器正常、路由器到外网异常。此时用手机流量测试同一个网站,再登录路由器管理页看 WAN 状态。若 WAN IP 为空、拨号失败或光猫红灯,直接联系运营商比改电脑设置有效得多。
第2章:IP能通、网站打不开?盯住DNS和浏览器代理
现在看最常见的一幕:ping 223.5.5.5 有回复,但浏览器显示“找不到服务器”。这几乎就是 DNS 解析链路的问题。执行 nslookup example.com,观察两行关键信息:Server 是当前 DNS 服务器,Address 是解析出的地址。如果返回“DNS request timed out”或找不到域名,马上进入修复。
先使用系统内置方法,成本最低也最容易回退。Windows 到“网络和 Internet 设置”里找到当前适配器的 IPv4 DNS,临时填写公共 DNS;macOS 在“系统设置-网络-DNS”添加服务器地址。修改后不要只刷新浏览器,必须执行 ipconfig /flushdns(Windows)或重连网络(macOS/Linux),然后再运行一次 nslookup。注意:企业、学校网络可能下发专用内部 DNS,改成公共 DNS 后反而访问不了 Git、制品库或内网域名,遇到这种情况应恢复自动获取并找网络管理员确认。
| 现象 | 高概率原因 | 验证动作 | 优先处理 |
|---|---|---|---|
| IP 可 ping,域名打不开 | DNS 故障或缓存异常 | nslookup 域名 | 刷新 DNS,检查 DNS 配置 |
| 浏览器不行,终端可访问 | 浏览器扩展或代理 | 无痕窗口测试 | 关闭扩展、清除代理 |
| 仅公司资源不可用 | 内网 DNS 或访问策略 | 切换手机网络对比 | 恢复企业配置并联系 IT |
OK,下一刀切浏览器变量。打开系统代理设置,确认没有遗留的手动代理地址或 PAC 脚本;再用无痕窗口访问同一页面。开发者尤其要检查终端环境变量:Windows 用 set | findstr /I proxy,macOS/Linux 用 env | grep -i proxy。看到过期的 HTTP_PROXY、HTTPS_PROXY,会导致 npm、git、Docker 和浏览器表现完全不一致。
第3章:开发工具全挂了?用三条命令定位网络层
接下来进入开发者实战画面。网页偶尔能开,但 git clone、包管理器或容器拉取一直超时,别立刻判断服务“挂了”。先执行 curl -I --connect-timeout 8 https://目标域名。如果 8 秒内拿到 HTTP 状态行,例如 200、301、403,说明 TCP/TLS 已连通;如果报“Could not resolve host”,回到 DNS;如果是“Connection timed out”,再查路由、防火墙或网络策略。
第二条命令是 Windows 的 tracert 目标域名,macOS/Linux 用 traceroute 目标域名。看路径在哪一跳开始停住:第一跳都失败,多半是本地网关;前几跳正常、后面超时,可能是运营商路由、目标服务防护或跨境链路限制。注意,部分服务器会主动屏蔽 ICMP,所以 traceroute 超时不能单独作为结论,必须结合 curl 和换网络测试。
第三步,做一次干净对照:关闭代理、关闭抓包工具和安全软件中的“HTTPS 扫描”,然后用手机热点重复同一条 curl 命令。家宽失败、手机热点成功,基本可以锁定原网络;两边都失败,则检查域名、账号权限、服务状态和本机证书时间。系统时间偏差超过 5 分钟就可能导致 TLS 证书校验失败,开发机双系统或长期休眠后尤其常见。
- Git 单独失败:执行
git config --global --get-regexp proxy,检查全局代理配置。 - Docker 单独失败:检查 Docker Desktop 的代理页,并查看镜像仓库地址是否拼写正确。
- npm 或 pip 单独失败:检查项目级配置和环境变量,别只改全局配置。
第4章:受限网络与恢复方案,先用免费和官方路径
看到某个站点“进不去”,先分清它是服务自身故障、账号权限问题,还是所在网络的访问策略。最可靠的免费排查是:换一条合法网络、查看服务官方状态公告、让同事从不同地区或不同运营商复测。企业和校园网常会限制未知端口、代码托管、云盘或流媒体;这种情况下,使用单位批准的网络出口、官方客户端或 IT 提供的远程办公方案,稳定性和审计合规性都更好。
需要长期远程开发时,付费网络服务只是众多选择之一,不能只看“测速截图”。你要实测三个指标:晚高峰连续 3 次 ping 的丢包率、用 curl 连接代码仓库的耗时、连续 30 分钟拉取依赖是否中断。我的判断线是:丢包持续低于 1%、延迟波动不超过 50ms、常用开发服务连续访问稳定,才值得继续使用;免费方案、自己维护的合规远程开发环境和官方企业方案同样可行,只是维护成本各不相同。
作为可比较的选项之一,mig 相关服务应先用短周期测试其节点稳定性、退款规则、隐私条款和客服响应,再决定是否长期订阅;也可以查看 wizzegroup.com 获取其他服务信息。不要把任何单一服务当成唯一网络方案,保留本地缓存、镜像源和可切换网络,开发任务才不会被一次连接异常卡住。
如何验证问题已解决
现在做最后的 Before/After 验收,别凭“网页能打开一次”就收工。依次执行 ping 223.5.5.5、nslookup 你的常用域名、curl -I --connect-timeout 8 https://目标域名。三个结果分别确认基础连通、DNS 解析和 HTTPS 访问。再打开浏览器无痕窗口、运行一次 git fetch 或实际包安装,确保浏览器与开发工具都恢复。
最后盯住 10 分钟:每分钟执行一次 ping -n 10 223.5.5.5(macOS/Linux 用 ping -c 10 223.5.5.5),记录丢包和延迟。如果没有丢包、DNS 能稳定返回、关键开发命令不再超时,这次“无法访问Internet”才算真正解决。评论区可以贴出你卡在哪条命令和报错原文,我们按网络层继续拆。