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 才会生效。

相关推荐
薛定谔的猫-菜鸟程序员7 小时前
Electron开发超详细教程(从入门到放弃)
前端·javascript·electron
最强小杰7 小时前
DeepSeek V4 Flash + Codex CLI 接入教程:原生 Responses API 适配,从配置到跑通收藏这篇就够了(2026)
java·前端·python·ai
静水leo8 小时前
使用 Whistle 拦截接口并模拟后端响应
前端
掘金者阿豪8 小时前
SQL Server数据迁移完成后,凌晨的数据库告警该怎么查?
前端·后端
JudithHuang8 小时前
React 嵌套路由与布局
前端·react.js·arcgis·react·react router
htzyl2068 小时前
前端阶梯——第四十三章、实战二:待办清单To-Do
前端·javascript·html
摹客9 小时前
【3D设计】界面设计中的3D元素:应用场景+5款工具横评(含Three.js)
前端
Hilaku9 小时前
CORS 到底在保护谁?90% 的前端理解错了跨域的本质
前端·javascript·程序员
wno7049 小时前
node.js中使用jquery
前端·node.js·jquery