LESSON 2.4 / COMPUTER & INTERNET

服务器、公网 IP、SSH 与 Web 服务

服务器本质是长期联网、能够被远程访问的电脑。SSH 用来管理它,Web 服务负责监听端口并返回内容。

预计阅读15–20 分钟
完成结果知道远程服务器不是黑盒,并能区分网络不通、端口未开与服务未运行。
本课目标
  • 知道远程服务器不是黑盒,并能区分网络不通、端口未开与服务未运行。
  • 公网 IP 与内网 IP、入站与出站连接
  • 如果有测试服务器,使用 SSH 登录并观察路径;没有服务器则画出 SSH 登录需要的信息。
开始之前
  • 完成 2.3「浏览器如何找到一个网页」
01

FOUNDATION

必须理解

服务器本质是长期联网、能够被远程访问的电脑。SSH 用来管理它,Web 服务负责监听端口并返回内容。

服务器并不是特殊物种,而是一台长期运行程序并通过网络提供服务的电脑。把它拆成机器、操作系统、端口和进程,就能理解部署和远程排错。

先建立整体直觉

服务器像一栋对外营业的大楼:公网 IP 是街道地址,防火墙与安全组是门禁,端口是不同窗口,进程是窗口里的工作人员,SSH 是管理员通道。

贯穿本课的实际场景

任务应用的 Next.js 进程监听内部端口,反向代理接收公网 HTTPS 请求并转交给它;数据库进程只允许应用所在网络访问。

概念 1

公网 IP 与内网 IP、入站与出站连接

先用白话理解

公网 IP 能从互联网找到,内网 IP 通常只在公司、宿舍或云网络内部使用。云平台的安全组还像一道门禁,决定谁能连哪个端口。

基础概念

公网 IP 可被互联网路由到,内网 IP 只在某个局部网络中有效。入站连接是外部主动连接本机服务,出站连接是本机主动访问外部服务。

进一步理解

云服务器往往同时有公网和内网地址。防火墙或安全组按来源、协议与端口决定允许哪些入站流量;应用主动下载依赖则属于出站。

把端口开放到全网只是建立网络入口,不能替代应用认证。数据库等内部服务通常只应让应用所在网络访问。

放进实际场景

任务应用对公众开放 443 端口提供 HTTPS,但数据库端口只允许应用服务器内网连接,管理端口还要限制来源。

容易混淆的地方

公网 IP 不意味着所有端口自动开放,端口开放也不代表对应进程正在监听。网络规则与应用状态要分别检查。

这一小节记住:先确定地址范围和连接方向,再配置最小必要入口。

概念 2

SSH、用户、权限、防火墙与安全组

先用白话理解

SSH 可以让你像坐在服务器面前一样操作终端,只不过连接经过了加密。登录要同时对上主机、用户名和凭证;私钥相当于真正的钥匙,不能发给别人。

基础概念

SSH(Secure Shell,安全外壳协议)用于加密地远程登录和执行命令。登录身份由主机、用户和凭证共同确定;文件权限决定该用户能做什么。

进一步理解

密码是一种凭证,密钥登录使用配对的公钥与私钥:公钥可放服务器,私钥必须留在可信设备并妥善保护。

防火墙决定连接能否到达 SSH 端口,SSH 服务决定是否监听,用户与凭证决定能否登录,系统权限再决定登录后能否读取或修改目标。

放进实际场景

连接超时时先查地址和网络规则;连接被拒绝查端口与 SSH 服务;认证失败再查用户名、密钥和权限。

容易混淆的地方

SSH 加密传输,但不会让误执行的高权限命令变安全;登录成功也不代表应当使用管理员账户运行所有应用。

这一小节记住:远程管理要分层检查连接、身份和操作权限。

概念 3

Nginx 等 Web 服务如何把文件或请求交给浏览器

先用白话理解

服务器开着并不代表网站就存在。还得有一个程序持续监听端口;Nginx 可以先接住公网请求,再把它转给真正处理业务的 Next.js 应用。

基础概念

Web 服务是监听网络端口并按 HTTP 返回内容的程序。Nginx 常作为反向代理先接收公网请求,再把请求转交给内部应用进程,也可以直接提供静态文件。

进一步理解

反向代理可以统一处理 HTTPS、域名、压缩和转发,让应用只监听内网端口。真正生成页面或 API 响应的仍可能是 Next.js 等应用。

服务器在线、Nginx 运行、应用进程运行是三件事。任一环节断开,外部表现都可能是网页打不开,需要按请求路径逐段检查。

放进实际场景

浏览器连接 443 上的 Nginx,Nginx 根据域名把 `/api/tasks` 转给本机 3000 端口的任务应用,应用再查询数据库。

容易混淆的地方

Nginx 不是后端业务本身,进程也不是端口;进程监听端口后,网络请求才有接收者。

这一小节记住:服务器只是运行场所,真正提供能力的是持续监听并正确配置的进程。

02

AI COLLABORATION

AI 如何参与

让 AI 根据连接超时、拒绝连接、权限不足等不同现象,列出对应检查层级。

推荐协作顺序

  1. 1

    告诉 AI 你连接的主机、端口和具体错误,但不要提供密码或私钥。

  2. 2

    让它把“超时”和“拒绝连接”分开解释,再给不同检查顺序。

  3. 3

    每做一项检查就记录结果,直到能确定是网络、端口、进程还是权限。

可直接使用的 Prompt
我正在理解云服务器,不执行真实修改。请用“连接超时、连接被拒绝、SSH 权限不足、网页 502”四种现象,分别列出最可能的检查顺序。每一步说明要观察的证据,禁止建议关闭全部防火墙或开放所有端口。
应该得到什么

按网络可达、端口监听、身份权限、进程状态和代理配置逐层排查,并保持最小权限。

人工检查清单

  • 确认建议不会暴露私钥、密码或数据库端口,也不会把临时关闭安全控制当作长期方案。
  • 要求 AI 根据超时、拒绝连接和认证失败分别给出证据链,不能混成一份清单。
  • 在不暴露凭证的前提下,用端口监听、服务状态和实际请求逐层验证建议。
03

COMMON TRAPS

常见误区

错误不是需要隐藏的失败,而是帮助你看清系统边界的证据。下面三类问题在 AI 辅助学习中最常出现。

误区 1

把服务器想成一个云端文件夹

你会看到
只会上传文件,不知道还需要进程监听端口。
为什么发生
私钥与密码直接代表身份,发送给任何第三方都会扩大控制权;开放所有端口则把无关服务暴露给全网扫描。
怎样纠正
把机器、运行中的程序和对外端口分开看。
误区 2

连接失败就开放所有端口

你会看到
为了让 SSH 或网页通,把安全组改成全网可访问。
为什么发生
看到服务器状态为运行中只证明虚拟机存在,不证明网络规则、代理或应用进程正常。
怎样纠正
只开放明确需要的端口和来源,失败原因要靠日志与监听状态确认。
误区 3

把私钥发给 AI 排错

你会看到
为了省事粘贴密钥、密码或完整配置。
为什么发生
高权限可以绕过保护,因此误命令的影响更大;排错时滥用管理员权限还会掩盖真实权限配置。
怎样纠正
只提供脱敏后的错误、权限和路径信息;凭证永远不进入对话。
04

HANDS-ON

动手任务

如果有测试服务器,使用 SSH 登录并观察路径;没有服务器则画出 SSH 登录需要的信息。

准备条件
  • 完成 2.3「浏览器如何找到一个网页」

跟着做

  1. 01

    画出本机、路由器、互联网和云服务器的关系。

  2. 02

    在图中标出公网 IP、内网 IP、SSH 与 HTTPS 端口。

  3. 03

    为任务应用标出反向代理、Next.js 进程和数据库进程。

  4. 04

    给四种常见错误各写一条第一检查项。

  5. 05

    请 AI 审核图中是否混淆机器、端口和程序,再自行修订。

完成标志

知道远程服务器不是黑盒,并能区分网络不通、端口未开与服务未运行。

加餐挑战

为一台测试服务器写最小开放清单,并解释为什么数据库端口通常不应向全网开放。

离开本课前,自问四件事

  • 公网 IP、内网 IP、入站连接和出站连接分别是什么?
  • SSH 连接超时、被拒绝和认证失败应分别检查什么?
  • Nginx、应用进程和数据库在请求链路中各自承担什么角色?
  • 为什么数据库端口通常不应直接向全网开放?
完成本课了吗?

确认完成后,会同步更新学习中心的课程学习进度。