firewalld 与安全组的区别:服务器防火墙双保险
引言
端口明明放行了还是连不上?十有八九是只放了一层。云服务器的入站流量要过两道独立的门:云平台安全组和系统内防火墙,任何一道没开都不通。
一、两道门的分工
安全组:云平台侧的虚拟防火墙,作用于实例网卡之前,与操作系统无关(重装系统也保留)。规则是白名单制,通常默认拒绝所有入站。firewalld/iptables:操作系统内的防火墙,管的是到达实例之后的流量。宝塔等面板的防火墙功能改的就是这一层。
二、常见连通性坑
① 安全组放行了,firewalld 没放(或反过来)——两道都查;② firewalld 放行命令写错了 zone;③ 面板放行了,但系统层没重载;④ Docker 映射的端口会绕过 firewalld 直通,造成“我没开怎么通了”的安全反例——Docker 端口务必在安全组层面管控。
三、管理建议
自查两层:安全组看控制台,firewalld 用 firewall-cmd --list-all。变更顺序建议先安全组后系统层,并保持两边一致——不一致的规则表是排错最大的时间黑洞。只放行必要端口、来源尽量收窄到具体 IP 段,是两层共同的原则。
总结
安全组管入口的入口,firewalld 管入口的出口。排错先问“过了几道门”,变更保持同步,Docker 端口单独盯——这三句话能省下未来无数个排查的深夜。