这一篇是 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 22SSH 对全网开中(改默认端口 + 用 key 就还好)
ufw allow 80, 443HTTP/HTTPS 对全网开低(本来就是公开网站)
ufw allow 3306MySQL 对全网开🔴 重高,99% 是错的
ufw allow 5432PostgreSQL 对全网开🔴 重高,99% 是错的
ufw allow 27017MongoDB 对全网开🔴 重高,有过整库泄漏的著名事故
ufw allow from 10.0.0.0/8允许内网整段访问低(内网通常可信)

端口过滤 是云加固的第一道。AI 给你 ufw allow <数据库端口> 时,问它:“为什么要对全网开,有没有办法只对应用服务器开?”——99% 的情况这步能拦下大祸。


VPN — 修一条加密隧道

VPN 的核心动作是 封装 + 加密:

你的 HTTPS 请求 → 装进一个 VPN 包(加密) → 走 VPN 服务器 → 出来
                  ↑
                  外人只看到"你 → VPN 服务器"这一段,看不到里面有什么

VPN 解决的问题

  1. 公共 Wi-Fi 防嗅探 — 咖啡店 Wi-Fi 上,VPN 把你的流量打包加密,旁边坐的人抓包只看到你在跟 VPN 服务器通信,看不到内容
  2. 绕过地域限制 — 你的流量从 VPN 服务器出去,网站看到的 IP 是 VPN 的 IP
  3. 远程访问公司内网 — 你 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 个问题:

  1. 它在哪一层做事? L3 防火墙规则 / L4 反向代理 / 跨层 VPN?
  2. 保护的是谁? 用户(正向代理 / VPN)还是服务器(防火墙 / 反向代理)?
  3. 暴露面是变大还是变小? 开了端口 = 变大,加反向代理 / 加 VPC 私网 = 变小

3 个问题过完,AI 给你做的”中间层”为什么这么做、做得对不对,你都能心里有数。


“在 nginx 加 reverse proxy” 不是一句咒语。 它的意思是:让 nginx 替你的应用接客,你的应用躲在后面。 看懂”替你接客”——你就理解了一半的云上安全架构。