localhost 访问异常排查笔记

localhost 访问异常排查笔记

背景场景

本地跑 npm run dev(vite),手机通过局域网 IP 能正常访问 H5 页面,但 PC 浏览器访问 http://localhost:端口 报错(如 ERR_HTTP_RESPONSE_CODE_FAILURE)。


核心知识点:localhost 和 127.0.0.1 不是完全一样的

  • 127.0.0.1:IPv4 回环地址,唯一、明确
  • localhost :是一个域名,系统解析时可能指向 127.0.0.1(IPv4) ::1(IPv6)。现代系统(尤其是 Windows + Chrome 组合)通常优先走 IPv6

为什么会踩坑

如果电脑上有旧的/残留的进程 占用了同一端口的 IPv6 地址(::1:端口),而新启动的服务虽然也监听了这个端口,系统仍可能把 localhost 优先解析到那个卡住的旧进程上,导致:

  • 用 IP 地址(127.0.0.1 或局域网 IP)访问 → 正常
  • localhost 访问 → 报错(连接到了状态异常的旧进程)

排查步骤

1. 查端口占用情况(Windows)

cmd 复制代码
netstat -ano | findstr 端口号

关注点:同一个端口是否出现两个不同的 PID

正常情况应该只有一组 PID,类似:

复制代码
TCP    0.0.0.0:5173     0.0.0.0:0    LISTENING    27148
TCP    [::]:5173        [::]:0       LISTENING    27148

如果出现这种情况,说明有旧进程残留:

复制代码
TCP    [::1]:5173       [::]:0       LISTENING    7360   ← 单独占了 IPv6 loopback 的旧进程

2. 定位到具体是哪个进程

cmd 复制代码
tasklist | findstr 7360

确认这个 PID 是不是之前忘记关掉的旧 vite 进程。


解决办法

临时方案(当下能用就行):

直接改用 http://127.0.0.1:端口/ 访问,绕开 IPv6 解析问题。

根治方案:

cmd 复制代码
taskkill /PID 旧进程ID /F

杀掉残留的旧进程,释放端口,之后 localhost 也能正常访问。


什么时候容易踩到

  • 用 VS Code 集成终端反复开关多个终端窗口跑 npm run dev,容易忘记关掉旧的
  • 切换分支 / 改完 vite.config.ts.env 文件后重启服务,没有先确认旧进程真的退出

顺带提醒

vite.config.ts.env.development / .env.production 这类配置文件的修改,vite 不会自动热更新 ,必须手动 Ctrl+C 停掉后重新 npm run dev 才会生效。

相关推荐
不好听61310 小时前
从一行 JSX 到屏幕像素:前端开发者必须懂的浏览器渲染管线
前端
恒拓高科WorkPlus10 小时前
企业级内网即时通讯建设模型:BeeWorks内网IM四层架构
前端
前端小李子11 小时前
前端环境变量裸奔?我用 EnvShield 给它穿了件防弹衣
前端
youtootech11 小时前
HarmonyOS《柚兔学伴》项目实战25-我的页面、Web 嵌入与项目总结
前端·华为·harmonyos
小林ixn11 小时前
从零到一理解 React 父子组件通信:手写一个 Todo 应用带你彻底搞懂单向数据流
前端·javascript·react.js
醇氧13 小时前
CountDownLatch / CyclicBarrier / Semaphore 面试高频问答清单
前端·面试·职场和发展
qetfw14 小时前
MXU:Tauri 2 + React 的 MaaFramework 跨平台 GUI 源码
前端·python·react.js·前端框架·开源项目·效率工具
甲维斯14 小时前
我要开始吹牛逼了!Kimi K3 “宇宙无敌”!
前端·人工智能
a11177614 小时前
微光小屋-前端养成小游戏 开源项目
前端