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

Node 18下无法通过/etc/hosts配置域名访问Vite前端求助

Node 18下修改hosts无法访问Vite站点的原因及解决方法

核心原因

  • Node.js 18 调整了localhost的DNS解析优先级:从Node 16及更早版本的优先IPv4(127.0.0.1),改为默认优先IPv6(::1)。
  • 你的/etc/hosts仅为my-domain.test配置了IPv4绑定127.0.0.1 my-domain.test,未添加对应的IPv6记录::1 my-domain.test。
  • 当Vite配置server.host: 'localhost'时,在Node 18环境下,服务会优先监听IPv6的::1地址;而你访问my-domain.test:3003时,请求实际指向IPv4的127.0.0.1,两者地址不匹配,导致无法正常访问站点。

解决方法

方法一:补充hosts的IPv6绑定

在/etc/hosts中添加以下记录:

::1 my-domain.test

方法二:让Vite监听所有地址

修改vite.config.ts的server.host为0.0.0.0,这样服务会同时监听IPv4和IPv6的所有本地地址,无论解析到哪种协议都能访问:

// vite.config.ts
{
  server: {
    host: '0.0.0.0',
    port: 3003
  },
  plugins: [vue(), vueJsx()],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
}

方法三:强制Vite监听IPv4地址

修改vite.config.ts的server.host为127.0.0.1,让服务仅监听IPv4地址,和你hosts里的配置完全匹配:

// vite.config.ts
{
  server: {
    host: '127.0.0.1',
    port: 3003
  },
  plugins: [vue(), vueJsx()],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:00:01