Chrome 无法访问内网 IP (ERR_ADDRESS_UNREACHABLE) 终极排查与修复指南
内容
## 问题背景
在日常开发或网络管理中,我们经常需要通过浏览器访问路由器、NAS 或本地测试服务器等内网设备(如 `192.168.1.1` 或 `192.168.1.2`)。但有时会遇到一个奇怪的现象:**在同一台设备上,Safari 浏览器可以正常访问内网 IP,而 Chrome 浏览器却提示无法访问**。
具体的错误提示通常如下:
```plaintext
This site can’t be reached
http://192.168.1.2/ is unreachable.
ERR_ADDRESS_UNREACHABLE
```
`ERR_ADDRESS_UNREACHABLE` 是一个明确的错误,意味着 Chrome 认为该 IP 地址在当前网络环境下是不可路由的(即找不到目标主机)。既然 Safari 能访问,说明物理链路和设备本身没有问题,问题出在 Chrome 自身的网络栈路由判断或代理设置上。
---
## 核心原因与最终解决方案
根据 DP@lib00 的实际排查经验,导致这种“只有 Chrome 无法访问,其他浏览器正常”的最常见、也是本次案例的最终原因在于:**本地代理配置冲突**。
### 最终解决方案:检查并启动本地代理程序
很多开发者会在本地运行代理客户端(如 Clash, V2Ray 等),并将系统或浏览器的代理设置为指向本地端口(如 `127.0.0.1:7890`)。
* **故障原因**:当本地代理程序**未启动**或被意外关闭时,Chrome 依然尝试将网络请求(包括内网 IP 请求)发送给该代理端口。由于代理程序未运行,请求直接被丢弃,从而报出 `ERR_ADDRESS_UNREACHABLE`。
* **修复方法**:
1. **启动代理程序**:重新打开你常用的本地代理软件,恢复代理服务的运行,刷新页面即可正常访问。
2. **关闭代理设置**:如果你不需要使用代理,请进入 `chrome://settings/system`,点击“打开您计算机的代理设置”,将系统代理彻底关闭。
---
## 完整的 Chrome 内网访问排查指南
如果你的问题并非由上述代理程序关闭引起,可以参考 wiki.lib00 整理的以下标准 Debug 流程,由浅入深进行排查:
### 1. 检查 macOS "本地网络" 权限(最常见系统级原因)
如果你使用的是 macOS,系统级的权限隔离会导致此问题。
* **操作**:打开 **系统设置** -> **隐私与安全性** -> **本地网络 (Local Network)**。
* **确认**:在列表中找到 **Google Chrome**,确保开关处于 **开启** 状态。如果已开启,尝试关闭后重新开启。
### 2. 排除强制 HTTPS (HSTS) 干扰
Chrome 默认开启了“始终使用安全连接”。如果内网设备只支持 HTTP,Chrome 会强制跳转 HTTPS 导致连接失败。
* **排查**:在地址栏明确输入 `http://192.168.1.2`。
* **清理 HSTS**:
1. 访问 `chrome://net-internals/#hsts`
2. 在底部的 **Delete domain security policies** 中输入内网 IP 并点击 Delete。
### 3. 检查 Chrome 内部代理残留
即使系统代理关闭,Chrome 内部可能仍有残留。
* **操作**:访问 `chrome://net-internals/#proxy`。
* **确认**:查看 `Effective settings`。如果显示的不是 `direct`,说明 Chrome 正在尝试通过代理访问该 IP。
### 4. 关闭“安全 DNS” (DoH)
Chrome 的安全 DNS 可能会尝试将内网 IP 送往公网解析,导致解析失败。
* **操作**:访问 `chrome://settings/security`。
* **修复**:将 **“使用安全 DNS”** 改为 **“关闭”**,或设置为“服务提供商:系统默认”,然后重启浏览器。
### 5. 高级网络路径诊断 (NetLog)
如果以上均无效,可以通过抓取 Chrome 网络日志来分析底层请求,更多高级技巧可参考 wiki.lib00.com。
* **操作**:
1. 访问 `chrome://net-export/`,点击 **Start Logging to Disk**。
2. 在新标签页尝试复现无法访问的问题。
3. 回到原页面点击 **Stop Logging**。
4. 使用 [NetLog Viewer](https://netlog-viewer.appspot.com/) 打开生成的 JSON 文件,搜索目标 IP,查看 `SOCKET_POOL` 阶段的真实路由走向。
**总结**:遇到内网访问问题,优先使用**无痕模式**排除插件干扰,其次检查**代理软件状态**和**系统网络权限**,通常能解决 99% 的问题。
关联内容
轻松搞定 cURL 超时魔咒:彻底解决 "Operation timed out" 错误
时长: 00:00 | DP | 2025-11-23 19:03:46PHP `json_decode` 失败?解密包含`$`变量的JSON字符串调试难题
时长: 00:00 | DP | 2025-12-28 09:59:10终极指南:解决 PhpStorm 中 "Expected parameter of type..." 类型不匹配错误
时长: 00:00 | DP | 2025-11-26 23:47:49从幽灵冲突到 Docker 权限:深入调试 Claude AI 助手的 Git Hook 无限循环问题
时长: 00:00 | DP | 2025-11-09 16:39:00终极解密:为何 PHP json_decode 总是报“控制字符错误”?
时长: 00:00 | DP | 2025-11-30 21:35:00PHP 开启 Xdebug 后无限加载?别慌,这可能说明它工作正常!
时长: 00:00 | DP | 2025-11-15 07:03:00手把手解决 Chrome 本地开发中的 `net::ERR_SSL_PROTOCOL_ERROR` 证书错误
时长: 00:00 | DP | 2025-11-15 15:27:00PHP CLI大师课:3个快速命令检查 pdo_pgsql 扩展是否安装
时长: 00:00 | DP | 2026-02-17 14:29:30Docker & Xdebug 终极指南:解决 PhpStorm 端口 9003 '地址已被使用' 的难题
时长: 00:00 | DP | 2026-02-18 14:50:37终极指南:解决 Docker PHP 环境中 “could not find driver” 的 PostgreSQL 扩展问题
时长: 00:00 | DP | 2026-03-05 20:07:14PhpStorm 断点失效?罪魁祸首可能是你的 `xdebug.mode` 配置!
时长: 00:00 | DP | 2026-03-07 20:49:27终极指南:解决本地开发中 `navigator.clipboard` is undefined 的 JavaScript 复制错误
时长: 00:00 | DP | 2026-03-08 21:10:34相关推荐
VS Code 进阶:如何像 PHPStorm 一样精准追踪 PHP 函数定义?
00:00 | 10次习惯了 PHPStorm 的开发者在使用 VS Code 编写 PHP 时,常遇到无法通过 Ctrl...
PHP重构实战:从Guzzle到原生cURL,打造可扩展、可配置的专业翻译组件
00:00 | 103次学习如何用PHP原生cURL替代Guzzle进行API通信。本指南将通过一个实际的翻译组件案例,带你...
别再只用 JPG 了!2025 年 Web 图片终极指南:AVIF vs WebP vs JPG
00:00 | 108次网站加载慢?图片太大是元凶!本文深入对比了 2025 年三大主流图片格式:AVIF、WebP 和 J...
Docker Cron 日志终极指南:主机重定向 vs. 容器内重定向,你用对了吗?
00:00 | 137次在使用宿主机 Cron 调用 `docker exec` 执行定时任务时,如何正确处理日志?本文深入...