You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

访问localhost:3000出现EPROTO错误,SSL相关问题求助

解决前端项目localhost访问EPROTO (errno: -100) SSL错误

问题背景

前端仓库闲置近一年,此前运行正常。近期执行npm run dev编译启动成功,但访问localhost:3000时触发EPROTO错误(errno: -100),怀疑与SSL过期或更新有关。已尝试删除node_modules重新安装,问题仍未解决。

终端报错信息

Error: write EPROTO 140704571122880:error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error:../deps/openssl/openssl/ssl/record/rec_layer_s3.c:1544:SSL alert number 80

    at WriteWrap.onWriteComplete [as oncomplete] (internal/stream_base_commons.js:94:16) {
  errno: -100,
  code: 'EPROTO',
  syscall: 'write',
  response: undefined
}

Chrome控制台报错信息

Uncaught     at WriteWrap.onWriteComplete [as oncomplete] (internal/stream_base_commons.js:94:16)

排查与解决步骤

  • 检查本地SSL证书有效性
    若项目配置了自定义SSL证书(如webpack-dev-server、vite的HTTPS配置),确认证书是否过期、路径是否正确。自签名证书可尝试用mkcert重新生成可信本地证书,覆盖旧证书后重启服务。

  • 升级Node.js版本
    旧版Node.js内置的OpenSSL库可能存在兼容性问题,导致SSL握手失败。升级至LTS版本(如v18/v20),执行rm -rf node_modules package-lock.json && npm install重新安装依赖后启动项目。

  • 清理浏览器缓存与信任证书
    清除浏览器SSL缓存(Chrome:设置-隐私和安全-清除浏览数据,勾选缓存文件与Cookie),切换至隐身模式访问排除插件干扰。若为自签名证书,访问时点击地址栏不安全提示,选择「高级-继续访问」手动信任。

  • 关闭代理/网络拦截工具
    暂停VPN、Charles、Fiddler等代理工具,关闭本地防火墙或杀毒软件的网络拦截功能,避免SSL请求被拦截导致握手错误。

  • 升级开发服务器依赖
    检查package.json中开发服务器依赖(如webpack-dev-server、vite、vue-cli-service)的版本,旧版本可能与新环境不兼容。执行npm update [依赖名]升级至稳定版,重启服务测试。

内容的提问来源于stack exchange,提问作者ajsaule

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 08:10:30