上云时,网络通常是最先要定下来的基础设施。阿里云专有网络(VPC)为每个客户提供一块逻辑隔离的私有网络,云上资源之间的通信,以及与公网和本地数据中心的连接,都在这个环境里完成。这里先讲清几个核心组件,再用一个电商企业的例子说明规划和配置怎么做。

专有网络解决什么问题
如果没有隔离,服务器、数据库和测试环境常常放在同一个网段里。一台机器被攻破后,攻击者可以横向访问其他资源。专有网络用网段划定边界,让不同业务各自运行在独立网络中,再由访问控制规则决定哪些流量能通过。
实际使用中,专有网络主要带来三方面的变化:
- 隔离:不同 VPC 默认互不相通。业务之间需要访问时,必须显式配置。
- 可控:私网 IP 段、子网划分和路由规则都可以自定义,方便按业务和环境切分。
- 可扩展:通过对等连接、云企业网(CEN)或高速通道,可以把多个 VPC 和本地数据中心连在一起。
核心组件
用好专有网络,先要分清下面几个组件各自管什么。
- 专有网络(VPC):整个私有网络的顶层容器。创建时要指定私网网段,常见选择是 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16 中的某一段。
- 交换机(vSwitch):VPC 下的子网,归属于某一个可用区。同一业务的多个子网可以分布在不同可用区,提高容灾能力。
- 路由表:决定子网的流量往哪里走。比如访问公网走 NAT 网关,访问其他 VPC 走对等连接。
- 安全组:实例级别的访问控制,按端口和来源地址设置入站、出站规则。
- NAT 网关:让没有公网 IP 的实例可以访问互联网,同时阻止外部主动发起的连接。
案例:某电商企业的网络规划
这是一个示意案例。某电商公司有订单系统、商品系统和数据库。原来所有服务器都在一个扁平网络里,测试环境甚至能直接连上生产数据库。迁移到阿里云时,团队借此重新规划了网络。
第一步:规划网段,避开地址冲突
公司本地机房使用 10.10.0.0/16。如果云上也用这一段地址,专线打通后路由就会冲突,所以云上网段必须避开它。团队的分配如下:
- 生产 VPC:172.16.0.0/16
- 测试 VPC:172.20.0.0/16
- 生产 VPC 的应用子网:172.16.1.0/24(可用区 A)、172.16.2.0/24(可用区 B)
- 生产 VPC 的数据库子网:172.16.10.0/24(可用区 A)、172.16.11.0/24(可用区 B)
VPC 网段创建后,调整余地很小。所以团队在迁移前就把未来三到五年的主机数量算进去,为每个环境预留了足够的地址。建议把地址分配表记在文档里,每次新建子网前对照一遍,避免两个环境之间出现重复网段。
第二步:按层划分子网和路由
应用子网需要访问公网下载依赖包,数据库子网则不能有任何公网出口。团队的做法是:
- 应用子网的路由表指向 NAT 网关。实例可以主动访问外部,外部无法直接进入。
- 数据库子网不配置公网路由,只保留 VPC 内部路由。
- 负载均衡实例放在应用子网中,对外提供 80 和 443 端口的服务。
第三步:用安全组限定最小访问范围
安全组规则按最小权限设置。团队配置了三组规则:
- 负载均衡的安全组:允许公网访问 80 和 443 端口。
- 应用服务器的安全组:只允许负载均衡的安全组访问应用端口,拒绝其他来源。
- 数据库的安全组:只允许应用服务器的安全组访问 3306 端口,拒绝其他所有来源,包括测试 VPC。
规则引用的是安全组,而不是写死的 IP。服务器扩容时,新实例只要加入对应安全组,就自动获得正确的访问权限,不用逐条改规则。
迁移后的变化
数据库没有了公网入口,测试环境也读写不到生产数据。排查网络问题时,团队可以沿着路由表和安全组规则逐层检查,不必在扁平网络里猜。这套规划之后成了新业务上云的模板。
实施时的几个提醒
- 先定网段,再建资源。跨环境互联时,网段冲突最常见。越早确定,后面返工越少。
- 子网分布在两个以上可用区。单可用区的子网在该可用区故障时会整体不可用。
- 安全组只留必要规则。规则越多,越难看出哪一条在起作用。定期检查,删掉已经不用的规则。
- 数据库、缓存和管理后台不绑定公网 IP。对外服务只开放必需的端口,其余端口保持关闭。
- 网络配置纳入版本管理。用 Terraform 等基础设施即代码工具管理 VPC 资源,每次改动都有记录,出问题时也能回滚。