⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议
Skip to content

1.8 Localhost 与端口

阅读完本节后,你将会收获:

  • 理解 localhost 的作用和 IP 地址的基础概念
  • 掌握端口的含义和常见端口
  • 学会启动/停止开发服务器,处理端口占用问题

创建好项目后,下一步就是启动开发服务器,在浏览器中查看你的应用。

基本概念

Localhost 本地主机

localhost 是你电脑的"内部地址",用于本地开发测试。

地址作用
localhost本地主机名,自动解析为 127.0.0.1
127.0.0.1本地回环 IP 地址
http://localhost:3000本地运行的第 3000 端口服务

两者是等价的:

bash
ping localhost      # 和下面效果相同
ping 127.0.0.1

localhost vs 公网地址

开发环境生产环境
localhost:3000https://example.com
只有你能访问所有人都能访问
用于开发调试用于正式运营

端口 Port

端口就像房子的门,一个 IP 地址可以有 65535 个端口,每个端口可以运行不同的服务。

如果把 IP 地址比作大楼地址,端口就是房间号

端口服务应用
3000Next.js 开发服务器http://localhost:3000
5173Vite 开发服务器http://localhost:5173
8000Python HTTP 服务器http://localhost:8000

常见开发端口

端口用途
3000Next.js、Express
5173Vite
8000/8080通用备用端口
80HTTP(生产环境,可省略)
443HTTPS(生产环境,可省略)

端口号规则

  • 0-1023:系统端口,需要管理员权限
  • 1024-49151:注册端口,常见服务使用
  • 49152-65535:动态端口,临时使用

启动开发服务器

bash
# 进入项目目录(my-app 改为你创建的项目名)
cd my-app

# 安装依赖(首次运行)
pnpm install

# 启动开发服务器
pnpm dev

为什么先安装依赖?

pnpm install 会下载项目所需的所有代码包(依赖),没有这一步,项目无法运行。这就像拼装家具前,需要先确认所有零件都齐全了。

启动后会显示类似信息:

▲ Next.js 16.1.4
- Local:        http://localhost:3000
- Network:      http://192.168.1.100:3000

✓ Ready in 1.2s

打开浏览器访问 http://localhost:3000

什么时候需要运行 pnpm dev?

每次开始工作时都需要运行:

  • 第一次打开项目
  • 修改代码后想看效果(服务器会自动刷新,不需要重启)
  • 关闭服务器后想继续工作

服务器启动后可以一直开着,直到你完成工作。

Network 地址有什么用?

Local 地址只有你能访问。Network 地址可以让局域网内其他设备(如手机)访问,用于测试移动端效果。

停止开发服务器

在终端中按 Ctrl + C 即可停止。

系统操作
Windows / Mac / LinuxCtrl + C

服务器关闭后页面会失效

当你关闭终端或按 Ctrl+C 停止服务器后,localhost:3000 的页面会无法访问。

这是正常的:开发服务器只在运行时提供服务。下次工作只需重新运行 pnpm dev

端口占用处理

启动时如果提示端口被占用:

Error: listen EADDRINUSE: address already in use :::3000

直接让 AI 帮你解决:把报错信息发给 AI,它会帮你处理。

你也可以手动更换端口:

bash
# Next.js:指定端口启动
pnpm dev -- -p 3001

端口冲突的自动处理

现代开发工具(如 Next.js 14+)会自动检测端口占用,如果 3000 被占用,会自动尝试 3001、3002...

但如果看到 EADDRINUSE 报错,说明自动检测失败,让 AI 帮你处理即可。

AI 可用的命令

如果你想知道 AI 会用什么命令解决,参考如下:

Mac / Linux

bash
lsof -ti:3000 | xargs kill -9

一条命令搞定:查找占用 3000 端口的进程并直接终止。

Windows

powershell
netstat -ano | findstr :3000

先查看占用端口的进程 PID,然后:

powershell
taskkill /PID 12345 /F

12345 替换为实际的 PID。

常见问题

Q: 为什么启动服务器后浏览器自动打开 localhost?

开发工具的便利功能。Vercel、Vite 等工具会自动检测到服务器启动并打开浏览器。

Q: 修改代码后页面没变化?

开发服务器支持热重载,保存文件后自动刷新。如果没有:

  • 检查服务器是否正常运行
  • 尝试手动刷新浏览器(F5)

Q: 可以在局域网访问 localhost 吗?

不可以。localhost 只能在本机访问。局域网访问需要使用本机的局域网 IP:

bash
# 查看本机 IP
ipconfig        # Windows
ifconfig        # Mac/Linux

# 局域网访问
http://192.168.1.100:3000

Q: 生产环境也用 3000 端口吗?

可以,但通常不直接让用户访问 3000 端口。

生产环境的典型架构

用户访问 https://example.com 时,请求先到 Nginx(监听 80/443 端口),然后 Nginx 转发给你的应用(3000 端口)。

当然,也可以直接让用户访问 IP + 端口

http://你的服务器IP:3000

但这样不太美观,而且暴露了端口号。推荐使用 Nginx 做反向代理,用户只需要记住域名。

核心理念

Localhost 是本地开发的基础

  • ✅ localhost = 127.0.0.1,都指向本地计算机
  • ✅ 端口区分服务,同一台电脑可运行多个服务
  • ✅ 开发用 localhost,生产用域名
  • ✅ 一个端口同时只能有一个进程
  • Ctrl + C 停止服务器

相关内容