返回知识库服务器 · 网络与入口
端口Port
端口是机器上区分服务的门牌号。应用只听 127.0.0.1 时外面进不来;对外只该开 443,应用端口交给 Nginx 转发,数据库端口永不对外。
先让朋友打开你的网站,再看哪些门不该开
下面是服务器的门牌表:每个端口里住着谁、它听哪个地址。先在本机测、再从外网测;改完门牌表要重新测,外网结果会落在每一行和朋友的浏览器上。
任务:让朋友用浏览器打开你的网站,同时只开必要的门。服务器公网 IP 是 203.0.113.10,AI 说应用已在 3000 端口跑起来。
门牌(端口)谁在里面 · 听哪个地址外网
22SSH 登录你自己管理服务器用;来源应限你的 IP(见安全组)
外网:未测 443Nginx 正门未启用:没有人守 443
外网:未测 3000你的应用监听 127.0.0.1(只接本机) 外网:未测 5432数据库监听 127.0.0.1(只接本机) 外网:未测 原因:还没从外网测过。下一步:先点「服务器本机测」,再点「从外网测」,对比两条结果。
知识点:门牌号、听谁、开哪扇
门牌表上已经演过,这里只给命名。
- 端口是一台机器上区分不同服务的门牌号:SSH 22、网页 80/443、应用常见 3000、数据库 5432。
- 监听 127.0.0.1 只接本机请求,所以本机 curl 通、外网超时;0.0.0.0 才接外面来的。
- 对外只开正门 443(和 80 跳转),应用端口交给 Nginx 在机器内部转发,见「反向代理」。
- 数据库、缓存的端口永远只听本机,不对公网。
- 门牌表都对了还打不开,就去查两道门:云安全组和机器防火墙,见「安全组与防火墙」。
什么时候用、怎么用
AI 说服务已经启动、你却打不开时,先按这个顺序问。
- 信号:AI 报告「运行在 localhost:3000」,你在自己电脑或手机上打不开;或报错里出现 EADDRINUSE(端口被占用)、ECONNREFUSED(门后没人)。
- 先问 AI:应用监听的是哪个地址和端口?在服务器本机 curl 通不通?
- 本机通、外网不通:查监听地址,再查安全组和防火墙有没有放行。
- 验收:从外网只能扫到 22 和 443(80);网站用域名 + HTTPS 打开,而不是 IP:3000。
- 不适用:用 Vercel 这类托管平台时端口由平台管,你只需要关心域名。
正反例:同一句「外网打不开」
目标都是让网站能访问,差别只在开哪扇门。
朋友用 https 域名打开;外网扫描只看到 22 和 443,应用和数据库都藏在机器里。
网站是能打开了,但 3000 和 5432 一起暴露,数据库开始收到陌生 IP 的登录尝试。
快速自测
AI 报告「服务已在 3000 端口启动,服务器上 curl localhost:3000 返回 200」,但你从家里访问 IP:3000 超时。最先该让 AI 查什么?
继续查证
术语的技术定义和行为以这些一手或权威资料为准。