这一篇是 Networks and Network Security 课程的配套深度文,把 Module 2 的 防火墙 / VPN / 代理 整理成一张能审 AI 配置的对照。
前置阅读:IP 4 层和数据包——本篇所有”放行/拦截/封装”的动作都发生在那 4 层里。
三个工具的核心差异 — 先记这一张表
| 工具 | 它做的事 | 在哪一层 | 部署在哪里 | AI 让你装它,通常因为 |
|---|---|---|---|---|
| 防火墙 | 按规则放行 / 拦截数据包 | L3 传输层(端口/IP) | 服务器边界 / 路由器 / 云防火墙 | 你云服务器要对外暴露,要挡 |
| VPN | 把流量加密 + 封装走另一条路 | 跨 L2/L3(改 header) | 你本地客户端 ↔ 远程 VPN 服务器 | 担心被中间人窥探 / 跨区域访问 |
| 代理 | 当数据流的中间人,改请求 / 改身份 | L4 应用层(改 HTTP) | 在客户端前面(正向)或服务器前面(反向) | 想加 反向代理 (Cloudflare/nginx) 或控制员工出口流量 |
三句话:防火墙挡门,VPN 修隧道,代理替你说话。
防火墙 — AI 让你开 / 关端口在做什么
防火墙的工作只有一件事:看每个进出的数据包,按规则决定放行还是丢弃。
三类防火墙
| 类型 | 怎么判断 | 比喻 |
|---|---|---|
| Stateless 无状态 | 只看当前这个包(端口、IP),不管前因后果 | 安检员只看每个人的票,不记谁进来过 |
| Stateful 有状态 | 记住”已建立的连接”,回包自动放 | 安检员记得你刚进去过,你出来时不再查 |
| 云防火墙 | Stateful 升级版,云厂商管 | 整层楼的安保,云厂商自己跑 |
实战 90% 都是 stateful。AWS Security Group / Vultr Firewall / UFW 默认都是 stateful——你只需要写”允许从外面来的 22 端口”,回包自动放行,不用写规则。
AI 让你做的”开端口”语法,逐个读懂
# 1. 允许 SSH (22) 从任何地方进来
sudo ufw allow 22/tcp
# 2. 把默认 SSH 端口改到 2222 (安全加固常见操作)
sudo ufw allow 2222/tcp
sudo ufw delete allow 22/tcp
# 3. 只允许某个 IP 访问 22 端口 (更严格)
sudo ufw allow from 1.2.3.4 to any port 22
# 4. 拒绝某个 IP 的所有流量
sudo ufw deny from 5.6.7.8端口暴露的红线 — 必须看懂
| AI 写这个 | 它在做的事 | 风险 |
|---|---|---|
ufw allow 22 | SSH 对全网开 | 中(改默认端口 + 用 key 就还好) |
ufw allow 80, 443 | HTTP/HTTPS 对全网开 | 低(本来就是公开网站) |
ufw allow 3306 | MySQL 对全网开 | 🔴 重高,99% 是错的 |
ufw allow 5432 | PostgreSQL 对全网开 | 🔴 重高,99% 是错的 |
ufw allow 27017 | MongoDB 对全网开 | 🔴 重高,有过整库泄漏的著名事故 |
ufw allow from 10.0.0.0/8 | 允许内网整段访问 | 低(内网通常可信) |
端口过滤 是云加固的第一道。AI 给你 ufw allow <数据库端口> 时,问它:“为什么要对全网开,有没有办法只对应用服务器开?”——99% 的情况这步能拦下大祸。
VPN — 修一条加密隧道
你的 HTTPS 请求 → 装进一个 VPN 包(加密) → 走 VPN 服务器 → 出来
↑
外人只看到"你 → VPN 服务器"这一段,看不到里面有什么
VPN 解决的问题
- 公共 Wi-Fi 防嗅探 — 咖啡店 Wi-Fi 上,VPN 把你的流量打包加密,旁边坐的人抓包只看到你在跟 VPN 服务器通信,看不到内容
- 绕过地域限制 — 你的流量从 VPN 服务器出去,网站看到的 IP 是 VPN 的 IP
- 远程访问公司内网 — 你 VPN 进公司,获得”公司内网设备”的身份
VPN 不解决的问题(常见误解)
- ❌ “用了 VPN 就完全匿名” — VPN 公司知道你是谁、看了什么。你只是把信任从 ISP 转移到 VPN 公司。
- ❌ “VPN 能挡所有黑客” — VPN 只加密”你到 VPN 服务器”这一段。VPN 服务器之后的流量,和不用 VPN 一样。
- ❌ “VPN 能让我变成本地用户” — IP 地理位置 ≠ 完整身份。网站还能通过 cookie / fingerprint / 账号识别你。
AI 给你装 VPN 的常见姿势
# WireGuard - 现代 VPN, AI 最常推荐
sudo apt install wireguard
# AI 会生成 server / client 两边的 config 文件 (wg0.conf)
# OpenVPN - 老牌, 比 WireGuard 慢但兼容性好
sudo apt install openvpn看到 AI 让你装 WireGuard 服务端,记一个心智图:你的本地客户端 ↔ Vultr/AWS 的 VPN 服务器 ↔ 互联网。这一条隧道是你的——但隧道只到 VPN 服务器为止,出了服务器还是裸奔。
代理 — 替你说话的中间人
代理 和 VPN 都是”中间人”,但代理是应用层(L4)的中间人——它看得懂你说的话,可以改你的话。
正向代理 vs 反向代理 — 经常被搞混
记住一个判断:代理在保护谁?
| 它在保护谁 | 真实例子 | |
|---|---|---|
| 正向代理 | 保护用户(隐藏用户身份) | 公司控制员工出口流量 / 你用 Squid 翻墙 |
| 反向代理 | 保护服务器(隐藏服务器身份/分担流量) | Cloudflare / nginx / Vercel Edge |
AI 让你”在 nginx 加 reverse proxy” 在做什么
server {
listen 443 ssl;
server_name api.example.com;
location / {
proxy_pass http://localhost:3000; # 把请求转给后台 Node.js
proxy_set_header X-Real-IP $remote_addr;
}
}AI 在做的事:
- 用户访问
api.example.com→ 打到 nginx(端口 443) - nginx 把请求转给本机 3000 端口的 Node.js
- Node.js 不知道用户的真实 IP,nginx 通过
X-Real-IP把 IP 传过去
为什么这样做:Node.js 直接对公网开 3000 端口风险大;让 nginx 做前线,nginx 是用得多年的成熟工具,挡攻击比 Node.js 强。这就是”反向代理保护服务器”。
Cloudflare 是什么
Cloudflare 是世界上最大的反向代理之一。你把域名 DNS 指向 Cloudflare → Cloudflare 收到流量 → 它过滤掉垃圾(DDoS / 爬虫 / 攻击) → 把干净的流量转给你的服务器。
效果:你的真实服务器 IP 从公网消失——攻击者直接打不到你,只能打 Cloudflare,Cloudflare 扛得住。
安全区 — 服务器世界的”客厅/书房/保险箱”
不是所有服务都该平等地暴露在公网。网络分段 把网络切成几个区,不同区不同信任级别:
| 区 | 谁能进 | 放什么 |
|---|---|---|
| 非受控区 | 全网 | 你的官网(对外页面) |
| DMZ(隔离区) | 公网可以触达,但内网不直接信任它 | 接公网流量的代理 / 邮件服务器 |
| 受控区 | 内网设备 | 你的应用服务器 |
| 限制区(Restricted) | 只有少数人 | 数据库 / 备份 / 密钥库 |
AI 让你”把数据库放进 VPC 私网”——它在做的事就是把数据库从”非受控区”拉到”限制区”,只让应用服务器能访问它,公网完全打不到。这是云上最重要的加固之一。
看 AI 的网络配置,3 个问题过一遍
读到任何一行 AI 写的网络配置,默念这 3 个问题:
- 它在哪一层做事? L3 防火墙规则 / L4 反向代理 / 跨层 VPN?
- 保护的是谁? 用户(正向代理 / VPN)还是服务器(防火墙 / 反向代理)?
- 暴露面是变大还是变小? 开了端口 = 变大,加反向代理 / 加 VPC 私网 = 变小
3 个问题过完,AI 给你做的”中间层”为什么这么做、做得对不对,你都能心里有数。
“在 nginx 加 reverse proxy” 不是一句咒语。 它的意思是:让 nginx 替你的应用接客,你的应用躲在后面。 看懂”替你接客”——你就理解了一半的云上安全架构。