← 返回localhost:3000 是什么?
1 / 8
Tutorial·8

localhost:3000 是什么?

网站在自己电脑上跑得好好的,发给朋友却打不开?拆开主机名和端口,讲清本地、线上和部署三者到底是什么关系

1
Step 1

开篇:为什么这个地址只有你能打开

你在 Vibe Coding 的时候,是不是经常看到这行神秘的地址:localhost:3000

AI 帮你把网站做好了,你在自己电脑上打开这个地址,一切正常,跑得特别顺。然后你把这个链接复制下来发给朋友,却发现别人打不开,甚至你用自己的手机也打不开。

是网站出 bug 了吗?是网络有问题吗?都不是。

这一期就用最直白的方式讲明白:Vibe Coding 的时候这个 localhost:3000 到底是什么、怎么用,以及怎么把自己做的网站真正分享给别人去用。


开篇:为什么这个地址只有你能打开
2
Step 2

拆开看:localhost 就是「这台电脑自己」

首先我们把这个地址拆开看:localhost + 冒号 + 3000。冒号前面这部分叫主机名,冒号后面这串数字叫端口

先说 localhost。它不是一个真实存在的网站,它的意思是:这台电脑自己。

  • 你的电脑上,localhost 指的就是你的电脑
  • 你朋友的电脑上,localhost 指的是他的电脑

你把这串东西发给朋友,就像你跟朋友说「来我家吃饭」,然后具体我家住哪呢——写的是「我家」这两个字。

他找得到你家吗?找不到。

电脑也一样,它看到 localhost,回的就是自己家。

拆开看:localhost 就是「这台电脑自己」
3
Step 3

端口:一栋楼里的房间号

再说端口,就是冒号后面这串数字。

一台电脑上可以同时跑很多个服务,就像一栋楼里有很多个房间。端口号就是房间号,它决定你的这个请求到底交给这台电脑上的哪一个程序。

300051738080 这些数字,不是什么规定,只是工具的默认习惯——它们都是房间号。

端口:一栋楼里的房间号
4
Step 4

端口被占用:地址变成 3001 不用慌

这里顺带说一个你以后一定会遇到的情况:端口被占用。

比如你上一个项目还开着,3000 这间房已经挂上它的门牌了;这时候新项目也要用 3000——一套房同一时间只能接待一个项目,工具就会给它安排隔壁的 3001

所以哪天你看到地址变成了 3001,不用慌,不是坏了,看一眼新数字就行。

端口被占用:地址变成 3001 不用慌
5
Step 5

项目「跑起来」到底发生了什么

你的项目「跑起来」,本质上是启动了一个程序

这个程序在你家开了一个房间,挂上 3000 的门牌,然后坐在里面。

你在浏览器输入 localhost:3000,就是回到自己家、敲 3000 号房间的门。房间里的程序听到敲门,把网页递出来——这就是你看到的页面。

如果你把运行它的终端关了,就相当于把它给赶出去了,你再访问这个房间,就没有程序响应了。

它不依赖网络,只运行在你电脑本地的一个小房间里面,只有你自己能访问。

项目「跑起来」到底发生了什么
6
Step 6

线上那个人人都能访问的网站,是怎么回事

地址拆完了,接下来讲讲线上那个人人都能访问的网站,又是怎么回事。

其实本地访问和线上访问是一一对应的。你的项目代码基本不用改,只不过它不再跑在你家的电脑上,而是跑在一台 24 小时开着的电脑上——这台电脑有个专门的名字,叫服务器

你的项目同样会在服务器上开一个端口等用户进来,只不过访客输入的是一个线上的公共地址,能够准确定位到你的服务器和这个项目正在运行的端口号。这个公共地址就叫域名,也就是你在浏览器里输入的那个地址。

本地线上
跑在哪台电脑上你自己的电脑24 小时开着的服务器
地址localhost:3000域名
谁能访问只有你自己所有人

所以你看,本地和线上其实只是这个程序搬了个家,搬到服务器上,然后把 localhost 换成了一个域名而已。

线上那个人人都能访问的网站,是怎么回事
7
Step 7

部署:让服务器上的版本和本地保持一致

那怎么把自己电脑上的程序搬到服务器,让其他人能访问;自己电脑上改了东西,怎么让服务器那边也一起更新?这个动作,就叫部署

这里不讲任何软件,只讲它的原理,其实特别简单:

部署说到底就是一个动作——把你本地这套项目文件原样搬到服务器上,让那边的程序换成最新版,重新开门接待。 你同步一次,线上就新一次。

那具体怎么搬呢?办法有两种:

方式怎么做每次改完
手动搬自己购买服务器、自己申请域名,自己把文件传上服务器、自己启动程序每改一次东西就要重新搬一遍
平台托管不想花钱买服务器,就把项目交给托管平台,搬文件、启动程序、给你地址,它一条龙全做完推送一下代码,它自动帮你重新同步

说白了,所谓的部署更新,就是让服务器上运行的代码和你本地的代码保持一致。

不管用哪种办法,部署的本质都是同一件事:让服务器上的版本和本地的版本保持一致。 听着很高端,其实也就这么回事。

部署:让服务器上的版本和本地保持一致
8
Step 8

总结:本地、线上和部署

到这里,什么是本地运行、什么是线上运行、什么是部署,你就全明白了。最后快速回顾一下:

概念是什么
localhost主机名,意思是「这台电脑自己」,发给别人没用
3000端口,也就是房间号,决定请求交给哪个程序
端口被占用一套房同时只接待一个项目,地址变成 3001 是正常的
项目跑起来启动了一个程序,在本地开了个房间坐在里面等你敲门
服务器一台 24 小时开着的电脑,代替你的电脑跑这个程序
域名线上的公共地址,代替 localhost 让所有人都能找到
部署把本地文件搬到服务器,让两边版本保持一致

本地运行只是程序在你家开了个房间;上线只是它搬了个家、换了个门牌。理解了这一点,localhost:3000 就再也不神秘了。

总结:本地、线上和部署
1 / 8