已将Svelte暴露至网络,其他设备无法访问该应用
问题描述
我需要在笔记本电脑上运行Svelte应用,实现同一网络下其他设备可访问该应用。Vite启动后已显示多个网络访问地址:
VITE v4.0.4 ready in 874 ms ➜ Local: http://localhost:3333/ ➜ Network: http://192.168.xxx.1:3333/ ➜ Network: http://172.22.xxx.1:3333/ ➜ Network: http://10.0.0.xxx:3333/ ➜ press h to show help 11:17:48 PM [vite-plugin-svelte] ssr compile done.
但其他设备访问这些地址均失败。当前使用Windows系统,已针对3333端口添加防火墙允许规则,问题仍未解决。
排查与解决步骤
确认设备处于同一网络
确保其他设备和笔记本连接的是同一个局域网(如同一Wi-Fi),避免跨子网访问(比如一个设备在192.168.x.x网段,另一个在10.0.x.x网段)。强制Vite绑定所有网卡
默认Vite会绑定0.0.0.0,但手动配置可确保生效。修改项目根目录的vite.config.js:import { defineConfig } from 'vite'; import { svelte } from '@sveltejs/vite-plugin-svelte'; export default defineConfig({ plugins: [svelte()], server: { host: '0.0.0.0', port: 3333 } });重启Vite服务后再尝试访问。
检查防火墙规则细节
- 打开Windows Defender防火墙→高级设置→入站规则,找到3333端口的规则
- 确认规则设置为允许连接,且应用到所有网络类型(域、专用、公网)
- 验证规则协议为TCP,本地端口指定为
3333 - 可临时关闭Windows防火墙测试,若能访问则说明规则配置有误,需重新创建规则
确认端口监听状态
在笔记本的命令提示符中运行:netstat -ano | findstr :3333查看是否存在
0.0.0.0:3333或对应局域网IP的监听记录。若无记录,说明Vite未成功绑定端口,需检查配置或确认是否有其他程序占用3333端口。使用正确的局域网IP访问
在笔记本上运行ipconfig,找到当前活跃网卡(如Wi-Fi)的IPv4地址,其他设备需访问该IP加3333端口(如192.168.xxx.1:3333),而非虚拟机、VPN等其他网卡的IP。排查第三方安全软件拦截
除Windows防火墙外,杀毒软件、第三方安全工具也可能拦截端口,可临时关闭这类软件测试是否能正常访问。
内容的提问来源于stack exchange,提问作者Won Young Jung
相关产品推荐
相关产品推荐

