在阿里云等公有云平台上部署服务,与在本地物理机房或私有环境中自建 Linux 虚拟机(VM),在网络配置逻辑上存在本质差异。这种差异不仅体现在操作界面和命令上,更核心的是网络抽象层级、权限边界以及安全模型的不同。
以下从五个核心维度进行深度对比分析:
1. 网络架构的抽象层级不同
-
自建 VM(传统虚拟化):
- 底层依赖宿主机的物理网卡。 你通常直接配置
eth0、ens33等接口 IP。 - 桥接模式常见: 如果是在 KVM/Xen 环境下,常使用
br0网桥将虚拟网卡绑定到物理网卡,使 VM 获得独立的公网 IP 或处于同一局域网段。 - 路由表由宿主机决定: VM 的路由表相对简单,主要指向默认网关(通常是宿主机或物理路由器)。
- 底层依赖宿主机的物理网卡。 你通常直接配置
-
阿里云 ECS/轻量应用服务器:
- VPC(专有网络)隔离: 阿里云默认使用 VPC 技术,你的 ECS 实例位于一个逻辑隔离的网络空间中。你看到的网卡(如
eth0)背后是 弹性网卡(ENI, Elastic Network Interface)。 - 软件定义网络(SDN): 流量不经过物理网线直连,而是通过 VXLAN 等隧道技术在阿里云内部数据中心传输。
- 多层级结构: 网络拓扑为
VPC -> vSwitch(交换机) -> 路由表 -> NAT 网关/公网 IP。你配置的不仅是 IP,更是这个层级关系。
- VPC(专有网络)隔离: 阿里云默认使用 VPC 技术,你的 ECS 实例位于一个逻辑隔离的网络空间中。你看到的网卡(如
2. IP 地址分配与管理机制
| 特性 | 自建 Linux VM | 阿里云 ECS |
|---|---|---|
| IP 类型 | 多为静态 IP 或 DHCP(来自内网 DHCP 服务器) | 支持私网 IP + 公网 IP(EIP 或绑定 EIP) |
| IP 变更 | 修改配置文件重启网络服务即可,可能涉及 ARP 刷新 | 私网 IP 固定;公网 IP 可通过 弹性公网 IP(EIP) 解绑/绑定其他实例,实现故障转移 |
| 多网卡支持 | 需手动添加虚拟网卡并配置路由策略 | 原生支持主 ENI + 辅助 ENI,可跨 VPC 挂载(需走云企业网 CEN) |
| IPv6 | 需自行配置内核参数和 DHCPv6 | 一键开启 IPv6,自动分配前缀,无需复杂配置 |
✅ 关键区别: 阿里云中,公网访问能力是通过 EIP(弹性公网 IP) 实现的,而非直接给 ECS 绑定公网 IP。EIP 是一个独立资源,可以像 U 盘一样插拔到不同的 ECS 实例上,这是自建环境难以实现的灵活调度。
3. 安全组 vs iptables/firewalld:双重防火墙体系
这是最容易混淆的部分。
-
自建 VM:
- 唯一防线:
iptables或firewalld(Linux 内核 netfilter)。 - 所有入站/出站控制都在这台机器上完成。
- 若被攻破,攻击者可直接修改规则。
- 唯一防线:
-
阿里云 ECS:
- 第一道防线:安全组(Security Group) —— 基于状态的包过滤,运行在 hypervisor 层(虚拟化层之外)。
- 作用范围:整个实例级别。
- 特点:无状态检查(但现代安全组已优化)、高性能、不影响实例内 CPU 负载。
- 必须优先配置! 即使实例内 firewall 关闭,安全组仍会拦截流量。
- 第二道防线:系统内部防火墙(firewalld/iptables)
- 作用范围:仅该实例内部。
- 用途:精细控制端口、协议、源 IP(当安全组过于宽松时作为补充)。
- 第一道防线:安全组(Security Group) —— 基于状态的包过滤,运行在 hypervisor 层(虚拟化层之外)。
⚠️ 最佳实践: 先通过阿里云控制台配置安全组开放必要端口(如 80, 443, 22),再在 Linux 内部用
firewalld做二次加固。两者缺一不可,且顺序不能颠倒。
4. 网络连通性与路由策略
-
自建 VM:
- 默认路由指向物理网关。
- 若要访问互联网,需在宿主机设置 SNAT(源地址转换)。
- 多子网间通信需手动配置静态路由或 OSPF/BGP。
-
阿里云 ECS:
- 默认路由由云平台管理: 你无法修改
/etc/sysconfig/network-scripts/ifcfg-eth0中的 GATEWAY。 - 自定义路由表: 每个 vSwitch 关联一个路由表。你可以创建多条路由条目,例如:
0.0.0.0/0 -> 系统路由(默认出口)10.0.0.0/8 -> 云企业网 CEN192.168.1.0/24 -> NAT 网关(用于私网实例出公网)
- NAT 网关替代 SNAT: 不再需要在每台 ECS 上写 iptables SNAT 规则,而是通过集中式的 NAT 网关处理私网实例的出向流量,节省带宽成本并提升性能。
- 默认路由由云平台管理: 你无法修改
5. DNS 与服务发现
-
自建 VM:
- 使用
/etc/resolv.conf指定外部 DNS(如 8.8.8.8)或内网 DNS 服务器。 - 服务发现依赖内部 DNS 服务器或 Consul/Etcd 等工具。
- 使用
-
阿里云 ECS:
- 内网 DNS 解析: 默认使用阿里云提供的内网 DNS(如
100.64.0.2),可实现:- 通过实例名解析私网 IP(如
i-uf6xxxxxxxxx) - 通过域名解析 SLB、RDS、Redis 等云产品的内网端点
- 通过实例名解析私网 IP(如
- 网络 DNS: 同样建议使用阿里云公共 DNS(
223.5.5.5/223.6.6.6),延迟更低、抗 DDoS 能力更强。 - 重要提示: 不要随意修改
/etc/resolv.conf中的 nameserver,否则可能导致无法解析 RDS、OSS 等云产品内网地址。
- 内网 DNS 解析: 默认使用阿里云提供的内网 DNS(如
总结对比表
| 配置项 | 自建 Linux VM | 阿里云 ECS |
|---|---|---|
| 网络基础单元 | 物理网卡 / 网桥(br0) | VPC + vSwitch + ENI |
| 公网接入方式 | 直接绑定公网 IP 或 SNAT | 弹性公网 IP(EIP)或 NAT 网关 |
| 安全防护机制 | 仅 firewalld/iptables | 安全组(外层) + firewalld(内层) |
| 路由配置权限 | 用户完全掌控 /etc/sysctl.conf 和路由表 |
受限于云平台,通过控制台配置路由表 |
| DNS 解析 | 手动配置 resolv.conf | 推荐使用阿里云内网 DNS(自动解析云产品) |
| 高可用切换 | 需手动迁移 IP 或使用 VIP(Keepalived) | EIP 可秒级切换至备用 ECS,实现快速故障转移 |
实操建议(针对阿里云用户)
- 不要试图修改 ECS 的网络配置文件中的 GATEWAY 和 BROADCAST,这些字段由云平台动态注入,重启后会被覆盖。
- 善用“辅助弹性网卡”:如果你需要一台 ECS 同时连接两个不同子网(如业务网和管理网),请创建辅助 ENI 并绑定到实例,而不是在主网卡上做复杂路由。
- 关闭不必要的端口:在安全组中遵循最小权限原则,只开放 80/443/22,其余全部拒绝。然后在 Linux 内部再用 firewalld 做细化控制。
- 使用 CLI 工具自动化:对于大规模部署,推荐使用
aliyun-cli或 Terraform 来管理 VPC、路由表和安全组,避免手动点击控制台出错。
掌握这些差异,才能真正做到“云上原生”网络架构设计,而非把本地思维简单移植到云端。
云技术博客