温馨提示×

centos stream8如何防火墙

小樊
36
2026-09-18 01:33:14
栏目: 智能运维

CentOS Stream 8 中,默认使用的是 firewalld 作为防火墙管理工具(基于 nftables/iptables)。下面给你一份常用操作指南。


一、防火墙基本管理(firewalld)

1. 查看防火墙状态

systemctl status firewalld

firewall-cmd --state

2. 启动 / 停止 / 开机自启

# 启动
systemctl start firewalld

# 停止
systemctl stop firewalld

# 开机自启
systemctl enable firewalld

# 关闭开机自启
systemctl disable firewalld

二、常用防火墙配置(firewall-cmd)

1. 查看当前生效规则

firewall-cmd --list-all

2. 开放端口(如 80、443)

# 临时生效
firewall-cmd --add-port=80/tcp

# 永久生效
firewall-cmd --add-port=80/tcp --permanent

# 重新加载
firewall-cmd --reload

3. 关闭端口

firewall-cmd --remove-port=80/tcp --permanent
firewall-cmd --reload

4. 开放服务(预定义)

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

5. 查看已开放端口

firewall-cmd --list-ports

三、区域(zone)概念(简要)

# 查看默认区域
firewall-cmd --get-default-zone

# 查看所有区域
firewall-cmd --get-zones

# 修改默认区域
firewall-cmd --set-default-zone=public

常见区域:

  • public(默认)
  • trusted(全部允许)
  • drop(全部拒绝)

四、如果你不想用 firewalld(不推荐)

关闭 firewalld

systemctl stop firewalld
systemctl disable firewalld

使用 iptables(需手动安装)

dnf install iptables-services
systemctl start iptables
systemctl enable iptables

⚠️ CentOS 8 以后官方推荐 firewalld,不建议混用。


五、排错常用命令

# 查看详细规则
firewall-cmd --list-all-zones

# 查看是否被屏蔽
firewall-cmd --query-port=80/tcp

如果你有具体需求(比如:只开放 SSH、Web,禁止其他端口Docker 下防火墙配置),可以告诉我,我给你写具体命令。

0