☰
华为云 VPC 与安全组:同 VPC 默认通,跨 VPC 一条 ping 就断
2026/11/5 3:56:33 网站建设 项目流程

很多人第一次用华为云都会卡在同一个问题上:三台机器建好了,两台能互相 ping 通,第三台怎么都 ping 不通——机器没坏、网也没断,是 VPC 把它们隔开了。这篇用「两个 VPC、三个子网、三台 ECS」的最小拓扑走一遍:先讲清 VPC 到底由什么组成,再动手建网,最后用三条 ping 验证「同 VPC 通、跨 VPC 不通、安全组能掐断通信」,顺手把安全组和网络 ACL 这两层防护的边界划清楚。

本文概要:

项目内容
文章主题华为云 VPC 的概念与组成、子网/路由表/安全组的分工,以及同 VPC 互通与跨 VPC 隔离的实测验证
所属类别云计算 → 华为云 → 网络类服务(VPC 与访问控制)
知识关键字VPC·子网·路由表·安全组·网络 ACL·虚拟 IP·弹性网卡·默认不通·ping

主线是「先认识容器、再装进机器、最后验证边界」:一到四章把 VPC 的组成和九个相关名词摆清楚,第五章建网建机器,六到八章做三次连通性实验,九、十章是命令表和排错顺序。看完你应该能回答那句最常被追问的话:为什么同一个 VPC 里的两台机器天生能通,而不同 VPC 的两台机器天生不通?

一、VPC 是什么:用隧道隔出来的私有网络

虚拟私有云(Virtual Private Cloud,VPC)为云服务器、云容器、云数据库等资源构建隔离的、用户自主配置和管理的虚拟网络环境。官方的定义里有两个关键词值得拆开看:

  • 隔离:不同 VPC 之间默认完全不通,哪怕它们用的是同一个网段。底层靠隧道网络技术把不同租户的流量分开,你在自己的 VPC 里怎么划网段,都不会影响别人。
  • 自主配置:网段、子网、路由、访问规则都由你自己定。云平台只提供「一层空的网络」,里面怎么摆是你的自由。

官方把 VPC 的优势归纳成四条,这四条几乎每次考试都问:

优势具体表现实际含义
安全可靠100% 逻辑隔离 + 多重安全防护你的 VPC 和别人天然不通;内部再用安全组、网络 ACL 层层收口
灵活配置自定义虚拟私有网络,支持跨可用区部署 ECS网段自己划,机器可以分散到同区域不同机房
高速访问全动态 BGP 协议接入多个运营商,寻路协议实时自动故障切换出公网走最优路径,某条链路故障自动切走
互联互通多种方式连接公网;靠对等连接用私有 IP 在两个 VPC 间通信既能上公网,也能和别的 VPC、本地机房打通

⚠️注意:VPC 是区域级资源。在华东-上海一建的 VPC,切到华北-北京四的控制台里根本看不到——这不是没建成,是区域隔离。跨区域的 VPC 想互通,不能靠对等连接,只能走 VPN 或云连接。

二、VPC 由什么组成:网段、路由表、子网

每个 VPC 由三样东西构成,缺一样都不成立:

组成是什么关键约束
私网网段整个 VPC 的地址空间,如192.168.0.0/16创建后不能改,改网段等于重建
路由表一组路由规则,控制子网出流量往哪走每个子网必须关联一个,一个子网同时只能关联一个
子网VPC 内的 IP 地址块,云资源必须放在子网里同一 VPC 内子网网段不能重复;子网建好后网段不能改

三者的关系是层层收窄:VPC 给一个大网段,子网从里面切一块出来,机器再从子网里拿一个 IP。

2.1 子网:机器真正待的地方

  • 子网是 VPC 内的 IP 地址块,所有云资源都必须部署在子网内——没有子网,ECS 连「网络」那一栏都是空的。
  • 同一 VPC 下,子网网段不能重复;子网创建成功后,网段无法修改。所以划子网要一次想清楚。
  • 子网默认启用DHCP,机器启动后自动拿到 IP,不用手工配。
  • 子网归属于某个可用区。可用区是同一地域内电力与网络互相独立的物理区域——把两台机器放不同可用区,就相当于放进了两个不同的机房。

2.2 路由表:决定流量出子网往哪走

路由表由一系列路由规则组成,控制 VPC 内子网的出流量走向。两条硬规则先记住:

  1. 每个子网都必须关联一个路由表;
  2. 一个子网一次只能关联一个路由表,但一个路由表可以关联多个子网。

这就解释了后面第五章的现象:同一个 VPC 里的subnet-01和subnet-02,默认都关联同一张默认路由表,互相知道对方网段,所以天生能通;而另一个 VPC 的subnet-03在另一张路由表里,压根没有通往192.168.0.0/16的路由,所以天生不通。

三、九个相关概念一次分清

VPC 控制台左侧那一长串菜单,初学时最容易糊成一团。下面这张表按「管什么」分类,先建立骨架:

概念一句话定义管哪一层
子网VPC 内的 IP 地址块,资源必须放在里面地址分配
路由表一组路由规则,决定出流量走向路径
安全组逻辑分组,为组内实例提供访问策略实例级防护
网络 ACL对一个或多个子网的访问控制策略系统子网级防护
对等连接两个 VPC 之间的网络连接,用私有 IP 通信VPC 间互联
虚拟 IP未分配给真实网卡的 IP,可在多台机器间漂移高可用
弹性网卡虚拟网卡,可创建、附加、解绑实例接入
IP 地址组一个或多个 IP 的集合,供安全组/ACL 引用规则简化
弹性公网 IP独立的公网 IP 与出口带宽出公网

几个容易混的点单独说:

  • 安全组是逻辑上的分组,为具有相同安全保护需求并相互信任的云服务器、云容器、云数据库等实例提供访问策略。实例加入安全组后,就受这些规则保护。规则分入方向(外部访问实例)和出方向(实例访问外部)。
  • 网络 ACL是对一个子网或多个子网的访问控制策略系统,是子网级别的安全层,通过与子网关联的出/入方向规则判断数据包能否流入/流出关联子网。
  • 虚拟 IP(VIP)是一个不分配给真实网卡的 IP。机器除了私网 IP,还能再挂一个 VIP,用其中任意一个都能访问它——主备切换就是把 VIP 从主机器挪到备机器。它拥有和私网 IP 同样的接入能力,包括 VPC 内二三层通信、对等连接访问,以及 EIP、VPN、云专线接入。
  • 弹性网卡分三种:随实例创建的是主弹性网卡;后来加挂、可解绑的是扩展弹性网卡;辅助弹性网卡是为了突破单实例网卡数量上限而衍生的资源,通过VLAN 子接口挂在弹性网卡上。
  • IP 地址组就是一个 IP 集合,可关联到安全组、网络 ACL,省得在每条规则里重复填一串地址。

安全组与网络 ACL 的区别值得单独一张表——这是本节最容易被问混的地方:

四、VPC 与传统 IDC 的四维对比

为什么上云不自己在机房拉网线?官方给了四个维度的对比,背这四条比背定义有用:

对比项虚拟私有云传统 IDC
部署周期无需工程规划、布线,自主规划网段/子网/路由,分钟级可用自行搭建网络并测试,周期长,需专业技术支持
总成本多种计费方式,无前期投入与后期网络运维,降低 TCO机房、供电、施工、硬件物料都是固定重资产,还要养运维团队
灵活性服务可自由搭配,带宽等资源随时动态扩展部署要严格遵守前期网络规划,业务变了改不动
安全性VPC 逻辑隔离,叠加网络 ACL、安全组、DDoS 防护网络难得到专业维护,安全性依赖自身团队

落到场景上就两类:云端专属网络(生产环境和测试环境用两个 VPC 严格隔离)和Web 应用托管(VPC 里放 ECS,用 EIP 或 NAT 网关连 Internet,前面再挂一个 ELB 分流量)。这三样东西怎么组合,是后面两篇的主题。

五、实操:两个 VPC、三个子网、三台 ECS

拓扑很小,但把关键点都覆盖了:一个 VPC 里放两个子网,另一个 VPC 里放一个子网,三个子网各一台机器。

资源名称网段说明
VPCVPC-SH01192.168.0.0/16主 VPC,两个子网
子网subnet-01192.168.0.0/24放ecs-sh-01
子网subnet-02192.168.1.0/24放ecs-sh-02
VPCVPC-SH0210.0.0.0/16另一个 VPC,验证隔离
子网subnet-0310.0.0.0/24放ecs-sh-03

5.1 建两个 VPC

  1. 控制台右上角把区域切到华东-上海一,进「服务列表 → 网络 → 虚拟私有云 VPC」。
  2. 点「创建虚拟私有云」,按上表填 VPC 名称与网段;创建 VPC 时同时会建一个默认子网,第一个子网就在这里填。
  3. VPC-SH01建完再进它的详情页,点「创建子网」补第二个子网subnet-02(192.168.1.0/24)。
  4. 回列表,用同样方式建VPC-SH02与subnet-03。

⚠️注意:两个 VPC 的网段不能重叠。这不只是本实验的要求——以后要建对等连接、要接本地机房,网段重叠的 VPC 根本连不起来,只能重建。规划时避开家里和办公室最常用的192.168.0.0/16、10.0.0.0/8里已被占用的段。

5.2 建三台 ECS

三台机器参数完全一致,只有「网络」不同。关键参数如下:

参数取值
计费模式按需计费
区域 / 可用区华东-上海一 / 随机分配
规格s6.small.1(1 vCPU / 1 GiB)
镜像公共镜像 CentOS 7.6 64bit
系统盘高 IO 40 GiB
安全组默认安全组default
弹性公网 IP暂不购买(这一篇还不需要出公网)
登录凭证密码

三台分别选:ecs-sh-01→VPC-SH01/subnet-01,ecs-sh-02→VPC-SH01/subnet-02,ecs-sh-03→VPC-SH02/subnet-03。

建完把三台的私有 IP记下来,后面每一步 ping 都用它:

机器所在 VPC / 子网私有 IP(示例)
ecs-sh-01VPC-SH01 / subnet-01192.168.0.169
ecs-sh-02VPC-SH01 / subnet-02192.168.1.13
ecs-sh-03VPC-SH02 / subnet-0310.0.0.38

⚠️注意:云上的私有 IP 是动态分配的,不是按创建顺序排的。每次重建机器 IP 都可能变,所以「用 IP 判断机器对不对」这件事在云上不成立,要对机器名。实验里把 IP 记在表格里,就是为了避免 ping 错对象还以为网络有问题。

六、验证一:同 VPC 通,跨 VPC 不通

6.1 同 VPC 内两台机器:天生通

远程登录ecs-sh-02(Linux 默认用户名root),直接 pingecs-sh-01的私有 IP:

[root@ecs-sh-02 ~]# ping 192.168.0.169PING192.168.0.169(192.168.0.169)56(84)bytes of data.64bytes from192.168.0.169:icmp_seq=1ttl=64time=0.869ms64bytes from192.168.0.169:icmp_seq=2ttl=64time=0.343ms64bytes from192.168.0.169:icmp_seq=3ttl=64time=0.293ms ^C ---192.168.0.169pingstatistics ---6packets transmitted,6received,0% packet loss,time5000ms rtt min/avg/max/mdev=0.171/0.340/0.869/0.245 ms
# 中文:6 个包全通,0% 丢包,时延 0.1~0.9 ms——同 VPC 内两台机器默认互通

注意ttl=64:一路没经过任何路由器,说明流量在同一个 VPC 的虚拟交换里直接过去了。这个数字后面会变成判断依据。

6.2 跨 VPC:一条 ping 就断

在ecs-sh-02上再 ping 另一个 VPC 的ecs-sh-03:

[root@ecs-sh-02 ~]# ping 10.0.0.38PING10.0.0.38(10.0.0.38)56(84)bytes of data. ^C ---10.0.0.38pingstatistics ---3packets transmitted,0received,100% packet loss,time2003ms
# 中文:3 个包全丢,100% 丢包——不同 VPC 默认不通,这是隔离生效,不是故障

结论只有一句:同一个 VPC 内的两台 ECS 默认互通;不同 VPC 内的 ECS 默认不通。不通是设计如此,要让它们通,得建对等连接(同区域)或 VPN(跨区域)——那是第三篇的内容。

七、验证二:安全组决定谁能进这台机器

上一节证明「同 VPC 天生通」,但这句话有个前提:安全组没拦。把规则清空,同样的两台机器立刻断。

  1. 进「网络控制台 → 访问控制 → 安全组」,点开两台机器所在的安全组(默认default)。
  2. 选「入方向规则」,把里面的规则全部删除。
  3. 回 ECS 控制台,用 VNC 登录ecs-sh-02,再 ping 一次ecs-sh-01:不通。
  4. 回安全组,点「一键放通」把常用端口(22、80、443、ICMP 等)恢复。

再 ping 一次,通了。这一删一加说明:安全组的入方向规则就是「谁能进来」的白名单,删掉规则等于把这台机器对外关死,连 ICMP 都进不来。

默认安全组的初始规则是这样的(这也是「为什么刚建的机器互相能通」的真正原因):

方向默认规则效果
入方向只允许同一安全组内的实例互通同组机器互相能 ping,组外来的一律进不去
出方向全部放行机器想访问谁都可以出去

所以「同 VPC 默认通」这句话要补完整:同 VPC + 同一安全组 → 通;同 VPC 但分属不同安全组,且没互相放行 → 一样不通。这也解释了一个常见现象:机器建好了却 SSH 不上——不是网络问题,是新安全组没放通 22 端口。

⚠️注意:安全组是有状态的。入方向放行了一个连接,这条连接的回包会自动放行,不需要再单独配出方向规则。所以「只配了入方向,怎么回包能出去」不是漏洞,是设计。

八、验证三:网络 ACL 在子网边界再拦一道

安全组管的是单台机器。如果要整个子网统一封禁,就该网络 ACL 上场了。它的行为和预期不太一样,值得实测一次:

  1. 在「网络控制台 → 访问控制 → 网络 ACL」新建一个 ACL,关联到subnet-02(ecs-sh-02所在子网),先不加任何规则。
  2. 此时ecs-sh-01pingecs-sh-02、ecs-sh-02pingecs-sh-01,两个方向都不通——ACL 关联子网后默认拒绝所有出入子网的流量,直到加上放通规则。
  3. 在 ACL 的入方向加一条:允许源192.168.0.0/24、协议 ICMP。
  4. 再测:ecs-sh-01→ecs-sh-02通了;但ecs-sh-02→ecs-sh-01仍然不通。

第 4 步的结果是最容易被问倒的地方。原因是 ACL 的规则分方向生效:

  • ecs-sh-01访问ecs-sh-02:流量进入subnet-02,走 ACL 的入方向规则,我们配了,所以通。
  • ecs-sh-02访问ecs-sh-01:流量离开subnet-02,走 ACL 的出方向规则,我们没配,所以不通。

也就是说,ACL 虽然是有状态的(响应流量不受规则限制),但主动发起的方向必须自己有规则。想让反方向也通,得在出方向补一条「允许目的192.168.0.0/24、协议 ICMP」。

⚠️注意:安全组和网络 ACL 是两层串联的关系——流量要先进 ACL(子网边界),再过安全组(网卡)。任何一层拒绝,包就到不了实例。所以「连不上」永远有两种可能,别只盯着安全组。

九、命令速查:ping 与 ssh

这一篇的验证全靠两条命令,参数逐个列清楚。

9.1 ping 用法速查表

参数含义英文原意
ping用 ICMP 回显请求测连通性,看丢包率与时延—
-c 数量发多少个包就停,不加会一直发count
-i 秒发包间隔,默认 1 秒,普通用户最小 0.2interval
-W 秒每个包等回应的超时时间Wait
-s 字节指定包大小,用来测 MTU 或大包丢不丢size
-t 跳数设 TTL 上限,配合-c可当简易 traceroutettl
-4/-6强制走 IPv4 / IPv6—
-I 网卡指定从哪块网卡发出,多网卡机器常用Interface
-f洪水模式,只显示通与不通,需要 rootflood
-q只打印汇总,不打印每个包quiet

最简演示:

[root@ecs-sh-02 ~]# ping -c 3 -i 0.2 192.168.0.169# 中文:发 3 个包、间隔 0.2 秒,看丢包率和平均时延

读结果只看三处:packet loss是不是 0%、ttl是 64 还是 63、rtt avg是零点几毫秒还是几十毫秒。同 VPC 内是ttl=64、亚毫秒;过了对等连接或 VPN 是ttl=63、毫秒级;跨地域 VPN 通常是二三十毫秒。

9.2 ssh 用法速查表

参数含义英文原意
ssh 用户@地址以指定用户登录远程主机secureshell
-i 私钥文件用私钥认证,替代密码identity file
-p 端口指定端口,默认 22port
-o 选项临时设置一个配置项,如-o StrictHostKeyChecking=nooption
-v打印握手过程,排错时看卡在哪一步verbose
-L 本地:目标:端口本地端口转发Local forward
-N只建隧道不执行命令No command
-T不分配终端,跑批量命令时用noTty

最简演示:

[root@ecs-sh-02 ~]# ssh -i ~/.ssh/key.pem root@192.168.0.169# 中文:私钥登录另一台机器,不需要输密码

⚠️注意:绑了 EIP 之后才发现 SSH 不上,八成是安全组没放通 22。用 VNC 登录改规则,别在公网反复试密码——试多了账号会被锁。

十、排错速查:连不上按这个顺序查

现象先查什么判据
两台机器互相 ping 不通是不是同一个 VPC跨 VPC 要建对等连接,光建 VPC 不会通
同 VPC 但不通安全组入方向是否放通 ICMP默认只放通同组内互通,不同组要手工加规则
放通后仍不通子网是否关联了网络 ACLACL 默认全拒,入方向/出方向都要放通
能 ping 通但 SSH 不上安全组是否放通 22ping 走 ICMP,SSH 走 TCP 22,是两条规则
换了台机器 IP 对不上私有 IP 是否被重新分配云上 IP 动态分配,用机器名核对
切区域后资源全消失是否切错了区域VPC 是区域级资源,跨区域不可见

附:命令英文全称速查表

命令 / 缩写英文全称 / 原意作用
pingPacket InterNet Groper用 ICMP 回显请求测连通性
sshsecureshell加密远程登录
ICMPInternet Control Message Protocol互联网控制报文协议,ping 的底层协议
VPCVirtual Private Cloud虚拟私有云
ACLAccess Control List访问控制列表
DHCPDynamic Host Configuration Protocol动态主机配置协议,子网默认启用
VIPVirtual IP Address虚拟 IP 地址
ENIElastic Network Interface弹性网卡
AZAvailability Zone可用区
TTLTime To Live生存时间,每过一跳减 1
RTTRound Trip Time往返时延
TCOTotal Cost of Ownership总拥有成本
IDCInternet Data Center互联网数据中心

📚 参考资料(官方文档 · 中英双语)

  • 华为云 VPC 产品介绍与产品架构:https://support.huaweicloud.com/productdesc-vpc/zh-cn_topic_0017946550.html
  • 华为云 VPC 访问控制概述(安全组与网络 ACL 对比表):https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0052003963.html
  • 网络 ACL 工作原理:https://support.huaweicloud.com/usermanual-vpc/vpc_acl_0001.html
  • 虚拟 IP 地址(VIP)概述:https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0118842223.html
  • What Is a VPC?(英文版):https://support.huaweicloud.com/intl/en-us/productdesc-vpc/en-us_topic_0017946550.html

总结:VPC 就是「一个网段 + 一张路由表 + 若干子网」,子网决定机器住在哪,路由表决定流量往哪走,安全组和网络 ACL 决定谁能进来。同 VPC 天生通、跨 VPC 天生不通——这两句不是口诀,是这套结构必然的结果。下一篇讲另外两件事:机器怎么出公网(EIP),以及一堆机器怎么分摊流量(ELB)。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询