服务器、公网 IP、SSH 与 Web 服务
服务器本质是长期联网、能够被远程访问的电脑。SSH 用来管理它,Web 服务负责监听端口并返回内容。
- 知道远程服务器不是黑盒,并能区分网络不通、端口未开与服务未运行。
- 公网 IP 与内网 IP、入站与出站连接
- 如果有测试服务器,使用 SSH 登录并观察路径;没有服务器则画出 SSH 登录需要的信息。
- 完成 2.3「浏览器如何找到一个网页」
FOUNDATION
必须理解
服务器本质是长期联网、能够被远程访问的电脑。SSH 用来管理它,Web 服务负责监听端口并返回内容。
服务器并不是特殊物种,而是一台长期运行程序并通过网络提供服务的电脑。把它拆成机器、操作系统、端口和进程,就能理解部署和远程排错。
服务器像一栋对外营业的大楼:公网 IP 是街道地址,防火墙与安全组是门禁,端口是不同窗口,进程是窗口里的工作人员,SSH 是管理员通道。
任务应用的 Next.js 进程监听内部端口,反向代理接收公网 HTTPS 请求并转交给它;数据库进程只允许应用所在网络访问。
公网 IP 与内网 IP、入站与出站连接
公网 IP 能从互联网找到,内网 IP 通常只在公司、宿舍或云网络内部使用。云平台的安全组还像一道门禁,决定谁能连哪个端口。
基础概念
公网 IP 可被互联网路由到,内网 IP 只在某个局部网络中有效。入站连接是外部主动连接本机服务,出站连接是本机主动访问外部服务。
进一步理解
云服务器往往同时有公网和内网地址。防火墙或安全组按来源、协议与端口决定允许哪些入站流量;应用主动下载依赖则属于出站。
把端口开放到全网只是建立网络入口,不能替代应用认证。数据库等内部服务通常只应让应用所在网络访问。
任务应用对公众开放 443 端口提供 HTTPS,但数据库端口只允许应用服务器内网连接,管理端口还要限制来源。
公网 IP 不意味着所有端口自动开放,端口开放也不代表对应进程正在监听。网络规则与应用状态要分别检查。
这一小节记住:先确定地址范围和连接方向,再配置最小必要入口。
SSH、用户、权限、防火墙与安全组
SSH 可以让你像坐在服务器面前一样操作终端,只不过连接经过了加密。登录要同时对上主机、用户名和凭证;私钥相当于真正的钥匙,不能发给别人。
基础概念
SSH(Secure Shell,安全外壳协议)用于加密地远程登录和执行命令。登录身份由主机、用户和凭证共同确定;文件权限决定该用户能做什么。
进一步理解
密码是一种凭证,密钥登录使用配对的公钥与私钥:公钥可放服务器,私钥必须留在可信设备并妥善保护。
防火墙决定连接能否到达 SSH 端口,SSH 服务决定是否监听,用户与凭证决定能否登录,系统权限再决定登录后能否读取或修改目标。
连接超时时先查地址和网络规则;连接被拒绝查端口与 SSH 服务;认证失败再查用户名、密钥和权限。
SSH 加密传输,但不会让误执行的高权限命令变安全;登录成功也不代表应当使用管理员账户运行所有应用。
这一小节记住:远程管理要分层检查连接、身份和操作权限。
Nginx 等 Web 服务如何把文件或请求交给浏览器
服务器开着并不代表网站就存在。还得有一个程序持续监听端口;Nginx 可以先接住公网请求,再把它转给真正处理业务的 Next.js 应用。
基础概念
Web 服务是监听网络端口并按 HTTP 返回内容的程序。Nginx 常作为反向代理先接收公网请求,再把请求转交给内部应用进程,也可以直接提供静态文件。
进一步理解
反向代理可以统一处理 HTTPS、域名、压缩和转发,让应用只监听内网端口。真正生成页面或 API 响应的仍可能是 Next.js 等应用。
服务器在线、Nginx 运行、应用进程运行是三件事。任一环节断开,外部表现都可能是网页打不开,需要按请求路径逐段检查。
浏览器连接 443 上的 Nginx,Nginx 根据域名把 `/api/tasks` 转给本机 3000 端口的任务应用,应用再查询数据库。
Nginx 不是后端业务本身,进程也不是端口;进程监听端口后,网络请求才有接收者。
这一小节记住:服务器只是运行场所,真正提供能力的是持续监听并正确配置的进程。
AI COLLABORATION
AI 如何参与
让 AI 根据连接超时、拒绝连接、权限不足等不同现象,列出对应检查层级。
推荐协作顺序
- 1
告诉 AI 你连接的主机、端口和具体错误,但不要提供密码或私钥。
- 2
让它把“超时”和“拒绝连接”分开解释,再给不同检查顺序。
- 3
每做一项检查就记录结果,直到能确定是网络、端口、进程还是权限。
我正在理解云服务器,不执行真实修改。请用“连接超时、连接被拒绝、SSH 权限不足、网页 502”四种现象,分别列出最可能的检查顺序。每一步说明要观察的证据,禁止建议关闭全部防火墙或开放所有端口。
按网络可达、端口监听、身份权限、进程状态和代理配置逐层排查,并保持最小权限。
人工检查清单
- 确认建议不会暴露私钥、密码或数据库端口,也不会把临时关闭安全控制当作长期方案。
- 要求 AI 根据超时、拒绝连接和认证失败分别给出证据链,不能混成一份清单。
- 在不暴露凭证的前提下,用端口监听、服务状态和实际请求逐层验证建议。
COMMON TRAPS
常见误区
错误不是需要隐藏的失败,而是帮助你看清系统边界的证据。下面三类问题在 AI 辅助学习中最常出现。
把服务器想成一个云端文件夹
- 你会看到
- 只会上传文件,不知道还需要进程监听端口。
- 为什么发生
- 私钥与密码直接代表身份,发送给任何第三方都会扩大控制权;开放所有端口则把无关服务暴露给全网扫描。
- 怎样纠正
- 把机器、运行中的程序和对外端口分开看。
连接失败就开放所有端口
- 你会看到
- 为了让 SSH 或网页通,把安全组改成全网可访问。
- 为什么发生
- 看到服务器状态为运行中只证明虚拟机存在,不证明网络规则、代理或应用进程正常。
- 怎样纠正
- 只开放明确需要的端口和来源,失败原因要靠日志与监听状态确认。
把私钥发给 AI 排错
- 你会看到
- 为了省事粘贴密钥、密码或完整配置。
- 为什么发生
- 高权限可以绕过保护,因此误命令的影响更大;排错时滥用管理员权限还会掩盖真实权限配置。
- 怎样纠正
- 只提供脱敏后的错误、权限和路径信息;凭证永远不进入对话。
HANDS-ON
动手任务
如果有测试服务器,使用 SSH 登录并观察路径;没有服务器则画出 SSH 登录需要的信息。
- 完成 2.3「浏览器如何找到一个网页」
跟着做
- 01
画出本机、路由器、互联网和云服务器的关系。
- 02
在图中标出公网 IP、内网 IP、SSH 与 HTTPS 端口。
- 03
为任务应用标出反向代理、Next.js 进程和数据库进程。
- 04
给四种常见错误各写一条第一检查项。
- 05
请 AI 审核图中是否混淆机器、端口和程序,再自行修订。
知道远程服务器不是黑盒,并能区分网络不通、端口未开与服务未运行。
为一台测试服务器写最小开放清单,并解释为什么数据库端口通常不应向全网开放。
离开本课前,自问四件事
- 公网 IP、内网 IP、入站连接和出站连接分别是什么?
- SSH 连接超时、被拒绝和认证失败应分别检查什么?
- Nginx、应用进程和数据库在请求链路中各自承担什么角色?
- 为什么数据库端口通常不应直接向全网开放?
确认完成后,会同步更新学习中心的课程学习进度。