第十章:Localhost 与公网访问

序言

你看着电脑上完美的网页,想让朋友惊叹一下。你自信地把浏览器地址栏里的 http://localhost:3000 复制发给了微信上的朋友。 一分钟后,朋友回了你一个问号:“打不开啊,什么情况?”

那一刻,你脸红到了耳根。你终于明白了本地环境和互联网的区别。

网络层级

为了解决这个问题,老师傅从 IP 地址的可达性 角度,为你划分了三个网络层级:

分享

你意识到,Localhost 只是开发的起点。想要打破物理隔离,让别人看到或参与你的项目,你需要根据目标受众建立不同的通道:

场景一:面向用户交付 (Deployment) 如果你希望朋友或用户直接使用你的产品,你需要进行应用部署。 通过将代码构建(Build)并发布到 Vercel、腾讯云 EdgeOne 或传统的云服务器上,你会获得一个公共域名(如 https://my-app.com)。用户通过域名即可访问应用,无需关心底层代码。

场景二:面向开发者协作 (Git) 如果你希望朋友参与开发,或者请高手帮你 Review 代码,你需要进行代码同步。 通过将源代码推送到 GitHub、Gitee 等代码托管平台,协作者可以将代码拉取(Pull)到他们自己的电脑上。此时,他们在自己的 Localhost 环境运行项目,从而实现跨设备的协同开发。

场景三:快速演示与测试 在开发阶段,你可能需要快速给外地朋友看看效果,但又不想正式部署,这时内网穿透工具就派上用场了。

老师傅告诉你,内网穿透的本质是在你的本地电脑和公网之间打一条隧道。外部用户访问一个临时地址,流量会通过这条隧道转发到你本地电脑上。

这种方式的优点是快速、无需部署。缺点也很明显:地址会变、速度不稳定、你的电脑必须一直开着。它适合开发阶段的快速演示,但不适合作为长期的访问方式。

如果你希望产品稳定地被所有人访问,就需要正式的部署方案。

弄懂了这些,你不再执着于发 localhost 的链接,而是转身投入到了 Git 深入的学习中——因为在把应用发布给全世界之前,首先要解决的是代码的安全管理与版本同步。

网络安全最佳实践

三层防御模型

  1. Localhost:仅限本机,物理隔离,最安全
  2. 局域网:同网络设备可访问,需要防火墙控制
  3. 公网:任何人可访问,需要严格的身份验证和加密

关键原则

分享场景决策速查表

目标受众推荐方案工具成本时长
自己(多设备)局域网访问-免费临时
朋友演示内网穿透ngrok/cpolar免费几小时
用户使用应用部署Vercel/云服务器付费长期
开发者协作代码托管GitHub免费长期

内网穿透安全警告

使用内网穿透时