在 CentOS Stream 8 中,默认使用的是 firewalld 作为防火墙管理工具(基于 nftables/iptables)。下面给你一份常用操作指南。
systemctl status firewalld
或
firewall-cmd --state
# 启动
systemctl start firewalld
# 停止
systemctl stop firewalld
# 开机自启
systemctl enable firewalld
# 关闭开机自启
systemctl disable firewalld
firewall-cmd --list-all
# 临时生效
firewall-cmd --add-port=80/tcp
# 永久生效
firewall-cmd --add-port=80/tcp --permanent
# 重新加载
firewall-cmd --reload
firewall-cmd --remove-port=80/tcp --permanent
firewall-cmd --reload
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
firewall-cmd --list-ports
# 查看默认区域
firewall-cmd --get-default-zone
# 查看所有区域
firewall-cmd --get-zones
# 修改默认区域
firewall-cmd --set-default-zone=public
常见区域:
public(默认)trusted(全部允许)drop(全部拒绝)systemctl stop firewalld
systemctl disable firewalld
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 下防火墙配置),可以告诉我,我给你写具体命令。