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
相关产品推荐
相关产品推荐

