Chrome 无法访问(safari 可以)内网地址排查记录

Chrome 无法访问内网地址排查记录

📝 问题描述

访问内网地址 http://192.168.31.188/

  • ✅ Safari 浏览器可以正常访问
  • ❌ Chrome 浏览器无法访问

✅ 排查步骤与解决方案

1. 网络连接是否正常

使用终端命令确认网络连通性:


ping 192.168.31.188 curl http://192.168.31.188/ tel*** 192.168.31.188 80

如果以上命令都能连通,说明网络层正常,问题出在浏览器层。


2. Chrome 是否自动跳转为 HTTPS

Chrome 有时会将 http:// 自动升级为 https://,导致连接失败。

解决方法:
  • 确保访问的是 http://192.168.31.188/,不是被 Chrome 跳转为 HTTPS。

  • 清除 HSTS 强制规则:

    打开:

    
    
    chrome://***-internals/#hsts

    在 "Delete domain security policies" 栏中,输入 192.168.31.188,点击 Delete


3. 检查 Chrome 插件干扰

某些插件(如 VPN、安全、广告屏蔽类)可能阻止内网流量。

排查方式:
  • 使用 隐身模式访问网页(插件默认禁用)
  • 或者暂时关闭所有扩展插件后重试

4. 系统代理配置是否一致

Safari 会自动使用 macOS 系统代理设置,而 Chrome 可能不会。

检查路径:

系统设置 > 网络 > 当前网络 > “代理”

确保没有设置 PAC 文件或 HTTP 代理造成影响。


5. 跨域请求失败(仅 JS 接口访问失败时)

如果网页能打开,但 JS 中的 fetch / axios 请求失败,可能是 CORS 限制。

表现为:

Chrome 控制台提示:


A***ess to fetch at 'http://192.168.31.188/api' has been blocked by CORS policy...

解决方式:
  • 配置服务端响应头 A***ess-Control-Allow-Origin
  • 本地调试可使用 Chrome 启动参数跳过 CORS(不推荐正式使用)

6. 自签名证书问题(如果是 HTTPS)

如果服务通过 HTTPS 提供(https://192.168.31.188/):

  • Chrome 可能会拒绝访问未被信任的证书
  • Safari 通常允许你点击“继续访问”
可选解决方式:
  • 手动信任该证书
  • 或在开发时通过启动参数绕过检查(--ignore-certificate-errors

7. 刷新 DNS 缓存

本机 DNS 缓存可能异常:


sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

然后重新启动 Chrome。


半场休息

设置都没问题,需要继续分析。


📡 网络结构与多网卡冲突分析

🧾 网络背景补充
  • 服务器(macOS)

    • 有线 IP:192.168.31.188
    • 无线 IP:10.41.1.254
    • 运行本地 Web 服务(监听 80 端口)
  • 客户端(macOS)

    • 同时连接有线 + WiFi 网络
✅ 实测现象
网络状态 访问地址 结果
仅 WiFi http://192.168.31.188 ✅ 正常
有线 + WiFi http://192.168.31.188 ❌ 异常(仅 Chrome)
有线 + WiFi http://10.41.1.254 ✅ 正常

🧠 分析:多网卡 + 回包路径不一致

在 macOS 多网卡共存的情况下:

  • 默认使用“有线网卡(en0)”作为主路由出口
  • 如果目标 IP 对应的服务实际绑定在 WiFi 网卡(en1)上
  • 则响应包将通过 WiFi 返回
  • TCP 协议栈认为“请求与响应不一致”,导致连接失败(Chrome 特别敏感)
🔁 具体表现:
  1. 请求从 en0(有线)发出
  2. 服务端回包从 en1(无线)返回
  3. 客户端收到响应后丢弃连接(报错或超时)

🛠 解决方案建议

1. 访问服务绑定的正确 IP

若服务绑定在 10.41.1.254(无线),则客户端也应使用该 IP:


http://10.41.1.254/


2. 调整客户端网络优先级

在 macOS 中:

  1. 打开“系统设置 > 网络”
  2. 点击左下角“三点”按钮 → 设定服务顺序
  3. 将 Wi-Fi 排在 Ether*** 前面

确保默认网络路径走 WiFi,避免回包路径冲突。


3. 服务监听所有网卡(0.0.0.0)

检查 Web 服务是否监听多个网口:


sudo lsof -i :80

建议监听 0.0.0.0 或明确同时绑定两个 IP:


# 示例,Node.js server.listen(80, '0.0.0.0');


🔍 交换机或主路由的可能影响?

虽然较少见,但可能存在以下因素:

  • VLAN 或 guest 网络之间有访问隔离
  • 静态路由表配置问题
  • ARP 缓存不一致(可尝试重启网络设备或刷新)

✅ 总结

  • Chrome 拒绝访问并非其问题,而是由网络路径冲突引起
  • 多网卡环境下,应确保请求与响应路径一致
  • Safari 更宽容,Chrome 更严格,表现不同属正常现象
转载请说明出处内容投诉
CSS教程网 » Chrome 无法访问(safari 可以)内网地址排查记录

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买