温馨提示×

centos防火墙怎么配置

小樊
56
2026-09-02 19:37:14
栏目: 智能运维

在 CentOS 中,防火墙通常使用 firewalld(CentOS 7 及以后版本)。下面从基础概念 → 常用操作 → 实战示例给你讲清楚。


一、确认防火墙状态

查看 firewalld 是否运行

systemctl status firewalld

启动 / 停止 / 开机自启

# 启动
systemctl start firewalld

# 停止
systemctl stop firewalld

# 开机自启
systemctl enable firewalld

# 关闭开机自启
systemctl disable firewalld

二、firewalld 核心概念

  • zone(区域):不同信任级别的网络(如 public、trusted)
  • service(服务):预定义端口集合(如 http、ssh)
  • port(端口):直接放行某个端口

常用 zone:

  • public:默认外网区域
  • trusted:完全信任(所有流量允许)

三、常用防火墙配置命令

1️⃣ 查看当前配置

# 查看当前 zone
firewall-cmd --get-active-zones

# 查看 public 区域规则
firewall-cmd --zone=public --list-all

2️⃣ 开放端口(以 80 为例)

临时生效(重启失效)

firewall-cmd --zone=public --add-port=80/tcp

永久生效

firewall-cmd --zone=public --add-port=80/tcp --permanent

重新加载配置

firewall-cmd --reload

3️⃣ 开放服务(推荐方式)

# 开放 SSH
firewall-cmd --zone=public --add-service=ssh --permanent

# 开放 HTTP
firewall-cmd --zone=public --add-service=http --permanent

# 开放 HTTPS
firewall-cmd --zone=public --add-service=https --permanent

firewall-cmd --reload

4️⃣ 关闭端口 / 服务

# 关闭端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent

# 关闭服务
firewall-cmd --zone=public --remove-service=http --permanent

firewall-cmd --reload

四、实战示例

✅ 场景 1:Web 服务器(80 / 443)

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

✅ 场景 2:只允许指定 IP 访问 22 端口

firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="192.168.1.100"
service name="ssh"
accept'
firewall-cmd --reload

✅ 场景 3:端口转发(如 8080 → 80)

firewall-cmd --permanent --add-forward-port=port=8080:proto=tcp:toport=80
firewall-cmd --reload

五、CentOS 6(iptables,老系统)

如果是 CentOS 6:

# 开放 80 端口
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables save
service iptables restart

六、排错建议

  • 配置后不生效?→ 是否忘了 --reload
  • 端口通不了?→ 检查服务是否监听 + 云服务器安全组
  • 不确定规则?→ firewall-cmd --list-all

如果你有具体需求(比如:开放某个端口、限制 IP、Docker 场景),告诉我,我可以直接给你命令。

0 踩