☁️ 第八章 开始导入云服务准备工作
📄 一句话概括

VPC(虚拟私有云)回答的是最后一个问题:在云商那一大片网络里,哪一块是【你的】。做法是用软件划出一块逻辑隔离的网络空间——先圈一块 IP 地(网段),再在里面切格子(子网),配上路标(路由表)和门(网关),最后挂上两道墙(安全组和网络 ACL)。这两个 VPC 之间默认不通、同一个 VPC 内的子网默认互通——这一条默认规则,决定了网络设计里绝大部分的取舍。

📝 本节和前面几节的关系

它是 8-7 的【公有云版】:上一节讲【自建一套云】该怎么分层,这一节讲【在别人的云里】怎么划出属于自己的一块网络。 两者的思路其实一致——都是先有资源、再把资源组织成可管理的结构。

它同时是 3-14 那节【虚拟办公室】的落地:那一节把 VPC 当成一个概念提出来,这一节把它拆成能动手配的六个部件。

而它里面的【两道墙】,直接接上了 6-5 和 6-6:网络层的安全,在云上换了个形式,但逻辑还是【层层设防】。

一、VPC 是什么

在自建机房里,网络是自己拉的——交换机、路由器、网段,都是自己的。到了公有云上,网络设备是云商的,你没法真的去插一根网线。

VPC 就是解决这件事的:它用软件,在云商那一大片共享的网络里,给你划出一块【逻辑上隔离】的空间。 在这块空间里,你可以自己定 IP 段、自己划子网、自己配路由和防火墙——感觉上就像自己有一张独立的网络。

它的关键性质有两条,正好相反:

这两条默认规则合起来,就决定了网络设计的基本姿势:你需要强隔离的东西,分到不同的 VPC;需要互相访问的,放在同一个 VPC 里。

二、动手 Demo:VPC 的核心组件与两道墙

看到什么算成功:

==================================================================================================
【Demo 8】VPC 的构建:VPC 逻辑架构图
==================================================================================================

  【一】VPC 的核心组件

  组件        作用                                        一句话
  ------------------------------------------------------------------------------------------
  网段        VPC 的 IP 范围(如 10.0.0.0/16)            先圈一块地
  子网        在 VPC 里再切小块,绑定可用区               地里划格子
  路由表      决定流量往哪走                              路标
  网关        连接公网或本地数据中心                      大门
  安全组      实例级、有状态的防火墙                      每个房间的门锁
  网络 ACL    子网级、无状态的防火墙                      整层楼的门禁

  两个 VPC 之间默认不通;同一个 VPC 内的子网默认互通。
  这条默认规则决定了绝大部分网络设计。

  【二】安全组和网络 ACL:两道墙

  维度        安全组                        网络 ACL
  ------------------------------------------------------------------------------------------
  作用范围    实例级(绑定网卡)            子网级(绑定子网)
  状态        有状态,自动放回包            无状态,进出都要写
  规则类型    只有允许                      允许和拒绝都有
  默认策略    拒绝入站、允许出站            允许所有

  入站流量顺序:网络 ACL → 安全组 → 实例。
  两层都放行,流量才进得来 —— 这是【纵深防御】在网络层的具体样子。

读结果:

三、六个组件,逐个说清

网段——VPC 的 IP 范围,用 CIDR 表示(比如 10.0.0.0/16,意思是前面 16 位固定、后面 16 位可变)。它决定了这块地能装多少台机器:/16 能装六万多台,/24 只能装两百多台。所以规划时要给未来留余量——因为网段很难改(改网段意味着要重建整个 VPC)。

子网——VPC 里切出来的小块,每一块绑定一个可用区。子网是实际放机器的地方——所有云主机、数据库都必须部署在某个子网里。这里就接上了 8-1:子网绑可用区,所以【把机器分散到多个可用区】这件事,在配置上就是【把它们放到不同子网的子网里去】。

路由表——决定流量往哪走。每个子网绑定一个路由表;默认路由表保证同一个 VPC 内互通,要通公网就加一条指向网关的路由(0.0.0.0/0 → 网关)。

网关——门。常见的三种:互联网网关(让实例能访问公网)、NAT 网关(让内网机器能出去,但外面进不来)、VPN 或专线网关(连接本地机房)。

安全组和网络 ACL——两道墙,下一节展开。

四、两道墙:安全组和网络 ACL

为什么需要两道,而不是一道? 因为它们管的是不同粒度、不同方向的事:

对比 安全组 网络 ACL
级别 实例级(管单台机器) 子网级(管整个子网)
状态 有状态:出方向放行,回包自动放回来 无状态:进出方向都要单独写规则
规则 只有【允许】,没有【拒绝】 【允许】和【拒绝】都有
默认 拒绝入站、允许出站 允许所有

【有状态】和【无状态】这个区别,是理解它们的关键:

实际怎么用? 通常的做法是:安全组当主力(因为好写、够用),网络 ACL 当兜底(在子网级别挡住一整类流量,比如封掉某个网段的所有访问)。两者配合,就有了【粗到细】两道防线。

要注意一个常见坑:因为网络 ACL 在前,如果你在那里误封了,安全组配置再正确也没用——排障时要顺着这个顺序查(先看网络 ACL,再看安全组)。

五、2026 现状

① 【默认 VPC】让入门更容易,但也埋了坑。 现在几乎所有云商都会自动为你创建一个默认 VPC 和默认子网,让你开机器时不用先配网络。方便是方便,但默认配置通常【很宽松】(比如子网是公网可达的)——所以生产环境前的第一件事,往往就是把默认配置收紧。

② 【私有连接】替代了【绕公网】的土办法。 早年让两个 VPC 互通,要么走公网、要么配一堆 VPN。2026 年主流做法是用【私有连接】在云商内部打通——流量不经过公网,更安全也更快。

③ 网络与安全的边界在融合。 安全组、WAF、入侵检测这些能力,正在从【独立设备】变成【网络的一部分】——所以在云上设计安全,不再是在网络外面加设备,而是在划网络的时候就把安全一起考虑进去。

30 秒实验

打开任意一家云商的控制台(或文档),做两件事:

  1. 找到【VPC】这一项,看看一个 VPC 里都有哪些配置项——数一数是不是正好是 Demo 里那六个(网段、子网、路由表、网关、安全组、网络 ACL)。
  2. 再看一眼它的默认安全组规则——是不是【允许所有出站】?

做完你会确认一件事:这一节讲的六个部件,就是云商控制台上真实存在的那些按钮。 而【默认安全组允许所有出站】这条,正是很多人第一次做云安全时该动手收紧的地方——它不危险,但它是你可以做得更好的地方。

常见误区

  1. 错误:VPC 就是把几台机器放进一个网络里,跟普通的局域网差不多。——纠正:VPC 和实体局域网最大的一点不同,是【它的隔离是逻辑的,而且默认更严】。不同 VPC 之间默认完全不通——这是软件的强制隔离,不靠物理设备,也不靠配置约定。 另外VPC 有个实体网络没有的特性:同一个 VPC 可以横跨多个可用区(子网绑可用区,但 VPC 本身跨区域)。这些性质决定了它的用法和局域网不一样。

  2. 错误:我配了安全组,就不需要网络 ACL 了。——纠正:它们管的粒度不一样,是互补的。安全组管【单台机器】,网络 ACL 管【整个子网】。当你需要【挡住一整个子网的某类流量】时(比如封掉某个可疑来源网段),逐个去改十几台机器的安全组,远不如在子网级别加一条网络 ACL 来得干脆。 反过来说,网络 ACL 也替代不了安全组——因为它做不到【精细到每台实例】。 两道墙,各管各的。

  3. 错误:子网划分随便定个小段就行,反正够用就好。——纠正:网段和子网【事后很难改】。网段改不了(要重建 VPC),子网一旦有机器在里面,也不方便随意调整范围。 所以规划时要预留余量——按【未来可能的规模】而不是【当前的需要】来定。这一点和 8-1 里【区域选择】是同一个道理:能一次定对的事,就不要留到最后返工。

  4. 错误:用了 VPC 就自然安全了。——纠正:VPC 提供的是【网络隔离】,不是【安全防护】——它把不同的 VPC 隔开,但同一个 VPC 里的机器互相之间默认是通的。安全要靠你在里面继续做:收紧安全组、划分子网层次(公网子网 / 私网子网分开)、把数据库放进私网子网。VPC 给了你一块可以设计的地,但地上盖成什么样,还是你自己的事。

自测三问(点开对答案) 1. 为什么【不同 VPC 默认不通、同 VPC 子网默认互通】这两条规则,决定了绝大部分网络设计? —— 因为**它给了一个【天然的分界线】**。**你不需要额外配置,就已经获得了【VPC 之间隔离】和【VPC 内部连通】这两种状态**。**于是设计思路就变成了【对号入座】**:**需要强隔离的东西(比如不同环境的系统、不同客户的数据),分到不同 VPC;需要互相访问的,放进同一个 VPC**。**顺着默认走,配置最少、也最不容易出错**——**逆着默认走(硬要在同一个 VPC 里隔离),就要额外加规则,也就更容易出问题。** 2. 为什么说【安全组】和【网络 ACL】是两道互补的墙,而不是两个竞争的选择? —— 因为**它们的作用对象和力度不一样**。**安全组管到【每台实例】,粒度最细,但只能写【允许】**——**适合做精细的通行控制**;**网络 ACL 管到【整个子网】,粒度较粗,但能写【拒绝】**——**适合做批量封堵**。**一个负责【精确放行谁】,一个负责【粗暴挡住谁】**——**两者配合,才形成从粗到细的防线。** 少了任何一道,都会留下一种操作做不了(要么没法批量封,要么没法精细控)。 3. 为什么排障时要【先查网络 ACL,再查安全组】? —— 因为**流量的检查顺序就是这样**:**入站先过网络 ACL,再过安全组**。**如果网络 ACL 那一层就把包拦掉了,安全组配置得再正确也毫无意义**——**你会看到【明明放行了却还是不通】的迷惑现象**。**顺着流量的实际路径去排查,才不会在错误的层上浪费时间**。**这也是所有【分层系统】排障的一般方法**:**从最先经过的那一层开始,逐层往下找。**

🎉 全书完结

这本教材到此,全部完结。 从第一章的【什么是云】,一路走到这一节的【怎么在云里划出自己的一块网络】——

一句话带得走:云把【动手】这件事变简单了,于是【想清楚】成了唯一还没被简化的那一步。 🎉

相关笔记