新手配置vpc内网安全隔离的核心是分层控制:先用子网按角色(web/app/db)逻辑分区,再以安全组白名单精准管控端口与来源,最后通过显式拒绝规则兜底vpc级防火墙,并通过实例间telnet实测验证连通性。

新手配置VPC内网环境下的服务器安全隔离,核心是“分层控制”:用子网做物理/逻辑分区,用安全组做实例级细粒度管控,再辅以路由和防火墙规则守住边界。不靠堆规则,而靠结构清晰的设计。
先划好子网,把不同角色的服务器隔开
子网不是随便分的,它是第一道隔离防线。比如一个典型三层架构:
- Web子网:部署前端服务器,CIDR建议用 10.1.10.0/24,放在可用区A;
- App子网:部署应用服务,CIDR用 10.1.20.0/24,放在可用区B;
- DB子网:部署数据库,CIDR用 10.1.30.0/24,放在可用区A或C。
关键点:同一VPC内子网默认互通,但你后续会用安全组来限制——所以子网划分要提前想清楚谁该和谁通信,避免后期规则混乱。
安全组按角色配,只放行必需的端口和来源
安全组是虚拟防火墙,必须当成白名单用。不要用“0.0.0.0/0”开放所有IP,而是精准指定来源子网或安全组ID:
- Web服务器安全组:入方向只放行 TCP 80/443(来自公网),出方向允许访问App子网的 TCP 8080;
- App服务器安全组:入方向只允许 Web子网 CIDR(如10.1.10.0/24)的TCP 8080,出方向允许访问DB子网的 TCP 3306;
- DB服务器安全组:入方向仅允许 App子网 CIDR(如10.1.20.0/24)的TCP 3306,禁止任何公网入向。
注意:阿里云/华为云/谷歌云都支持“引用其他安全组”作为源,比写CIDR更稳定(IP变动不影响规则)。
关掉默认全通,加一道VPC级防火墙兜底
很多新手忽略一点:VPC自带的默认防火墙规则可能允许全部内网互通。务必检查并清理:
- 删除或禁用名称含 default-allow-internal 或 allow-all-internal 的规则;
- 新建一条显式拒绝规则(优先级最高),目标为所有实例,协议为ALL,来源为 0.0.0.0/0,动作设为 deny;
- 再逐条添加你真正需要的允许规则(如上面Web→App、App→DB)。
这样即使某个安全组配错,也不会因默认策略导致越权访问。
测试连通性时,用实例本身去验证,别只看控制台
配置完别急着上线,登录到一台Web服务器,执行:
telnet 10.1.20.5 8080 # 看是否能通App telnet 10.1.30.10 3306 # 看是否被拦在DB外
真实走一遍流量,比查一百遍控制台界面更可靠。如果不通,按顺序排查:子网路由 → 安全组入站 → 安全组出站 → 目标服务器本地防火墙(如iptables)。










