安全组是云上虚拟防火墙,通过控制台或api配置有状态的入站/出站规则,核心为明确“源→协议+端口→目标”,不支持iptables等命令行脚本;入站需最小开放,出站默认全放通,规则按优先级顺序匹配,绑定多安全组时取规则并集。

云服务器安全组不是传统意义上的“防火墙策略脚本”,它不支持写 iptables 或 firewall-cmd 那类命令行规则,而是通过图形化控制台或 API 设置有状态的入站/出站规则条目。配置的核心是明确“谁(源)→ 能访问什么(协议+端口)→ 到哪台机器(目标实例)”,而不是编写代码。
下面按实际操作逻辑,分四块讲清楚怎么配:
入站规则:决定谁能连你的服务器
这是最关键的防护层,必须遵循最小开放原则。
- 每条规则包含:协议类型(TCP/UDP/ICMP)、端口范围(如 22、80、443 或 3306-3310)、授权对象(即来源 IP 或 IP 段)
- 常见配置示例:
- SSH 登录(Linux):TCP 协议,端口 22,授权对象填办公公网 IP(如
203.0.113.50/32),绝不长期用0.0.0.0/0 - Web 服务:TCP 协议,端口 80 和 443,授权对象可填
0.0.0.0/0(面向公网) - 数据库远程访问(如 MySQL):TCP 协议,端口 3306,授权对象仅限应用服务器内网 IP 段(如
172.16.0.0/16)
- SSH 登录(Linux):TCP 协议,端口 22,授权对象填办公公网 IP(如
- 注意:多条规则之间按列表顺序生效,越靠上优先级越高;一旦匹配某条允许规则,后续拒绝规则不再判断
出站规则:控制服务器能主动访问哪些外部资源
默认建议放通全部出站(TCP/UDP/ICMP 全端口,目标 0.0.0.0/0),因为多数业务需要主动更新、调用 API、发邮件等。
- 仅在特殊场景下限制出站:
- 禁止访问已知恶意 IP:添加一条「拒绝」规则,协议选 ALL,目标填该风险 IP(如
192.0.2.100/32) - 锁定只允许访问特定 SaaS 接口:比如只允许 TCP 443 出站到
api.example.com(需先解析为 IP 并填入 CIDR)
- 禁止访问已知恶意 IP:添加一条「拒绝」规则,协议选 ALL,目标填该风险 IP(如
- 关键点:安全组是有状态的——只要入站请求被允许,对应响应流量自动放行,无需额外配返回规则
安全组绑定与生效逻辑
- 一个云服务器实例可绑定多个安全组,最终效果是所有规则的并集(允许规则叠加,拒绝规则不叠加)
- 但要注意:若多个安全组含冲突规则(如 A 组放行 22 端口,B 组拒绝 22 端口),以优先级数字小的安全组为准(控制台里排第一的优先级最高)
- 修改规则后立即生效,无需重启服务器或网络服务
实际配置时的避坑提醒
- 不要直接使用“放通全部端口”模板,风险极高
- 临时调试可开宽泛规则,验证后再收紧(如把
0.0.0.0/0改成具体办公 IP) - 定期清理:删除已下线业务对应的旧端口规则(比如停用 FTP 后及时关闭 21 端口)
- 敏感端口(22/3389)务必搭配 IP 白名单,条件允许时启用密钥登录+ fail2ban 进一步加固
不复杂但容易忽略细节,关键是想清楚“这个端口到底谁需要访问、为什么需要、能不能更窄”。











