firewalld是什么?linux防火墙配置教程

firewalld 是 Linux 系统(特别是基于 RHEL/CentOS/Fedora 的系统)中默认使用的动态防火墙管理器,它使用 iptables 或 nftables 作为底层工具,但提供了一个更友好、更动态的管理接口。

以下是关于 firewalld 的核心概念、常用命令及管理技巧的完整指南。

Linux学习之路28_Linux防火墙_firewalld
加载中
Linux学习之路28_Linux防火墙_firewalld

核心概念

  • 区域 (Zones):
    firewalld 的核心思想是“区域”,每个网络接口可以关联一个区域,每个区域定义了一组允许或拒绝的规则。

    • 常见区域:public(默认,仅允许 ssh 和 dhcpv6-client)、trusted(完全信任)、block(拒绝所有)、drop(丢弃所有,无响应)。
  • 服务 (Services):
    为了方便管理,firewalld 预定义了一些常见服务(如 http, https, ssh, mysql),你可以通过服务名来开放端口,而不是直接指定端口号。
  • 运行时配置 vs 永久配置:
    • 运行时 (Runtime):立即生效,重启后失效。
    • 永久 (Permanent):写入配置文件,重启后生效,但需要重新加载才能立即生效。

基本操作命令

1 服务管理

# 启动 firewalld 服务
sudo systemctl start firewalld
# 设置开机自启
sudo systemctl enable firewalld
# 查看防火墙状态
sudo firewall-cmd --state
# 查看当前活动的区域
sudo firewall-cmd --get-active-zones
# 查看默认区域
sudo firewall-cmd --get-default-zone

firewalld是什么?linux防火墙配置教程

2 区域与端口管理

# 查看所有可用区域
sudo firewall-cmd --get-zones
# 查看指定区域的所有规则(public 区域)
sudo firewall-cmd --zone=public --list-all
# 开放端口(仅运行时生效)
sudo firewall-cmd --add-port=8080/tcp
# 开放端口(永久生效)
sudo firewall-cmd --permanent --add-port=8080/tcp
# 移除端口(永久生效)
sudo firewall-cmd --permanent --remove-port=8080/tcp
# 重新加载配置(使永久配置立即生效,不中断现有连接)
sudo firewall-cmd --reload

3 服务管理

# 查看预定义的服务列表
sudo firewall-cmd --get-services
# 允许 HTTP 服务(运行时)
sudo firewall-cmd --add-service=http
# 允许 HTTPS 服务(永久)
sudo firewall-cmd --permanent --add-service=https
# 移除 HTTP 服务
sudo firewall-cmd --permanent --remove-service=http

4 富规则 (Rich Rules)

富规则允许更复杂的逻辑,如限制 IP、指定接口等。

# 允许来自特定 IP 的所有访问
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept'
# 拒绝来自特定 IP 的 SSH 访问
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.5" service name="ssh" reject'
# 查看富规则
sudo firewall-cmd --list-rich-rules

firewalld是什么?linux防火墙配置教程


高级功能

1 端口转发 (Port Forwarding)

将外部请求的端口转发到内部其他 IP 或端口。

# 将外部 8080 端口转发到本地 80 端口
sudo firewall-cmd --permanent --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=127.0.0.1
# 或者转发到另一个 IP
sudo firewall-cmd --permanent --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=192.168.1.10

2 接口绑定

将网络接口绑定到特定区域。

# 将 eth0 接口绑定到 trusted 区域
sudo firewall-cmd --permanent --zone=trusted --add-interface=eth0
# 重新加载以生效
sudo firewall-cmd --reload

3 日志记录

firewalld 本身不直接记录日志,但可以通过富规则触发 LOG 目标,或者结合 iptables 日志模块。

# 记录所有被拒绝的包(需要配合 iptables 或 nftables 配置)
# 更简单的方式是使用 firewalld 的 rich rule 记录特定流量
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="0.0.0.0/0" service name="ssh" log prefix="SSH_LOG" level="warning" accept'

常见问题与故障排除

Q1: 如何查看防火墙是否正在运行?

sudo systemctl status firewalld

firewalld是什么?linux防火墙配置教程

Q2: 修改配置后不生效?

确保使用了 --permanent 并执行了 --reload:

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

Q3: 如何临时禁用防火墙(仅用于调试)?

sudo systemctl stop firewalld

⚠️ 注意:在生产环境中不建议长期禁用防火墙。

Q4: 如何查看详细的防火墙规则?

# 查看 iptables 规则(如果底层是 iptables)
sudo iptables -L -n -v
# 查看 nftables 规则(如果底层是 nftables)
sudo nft list ruleset

Q5: firewalld 和 iptables 的关系?

firewalld 是 iptables/nftables 的前端管理工具,你不需要直接操作 iptables 命令,除非你需要调试底层规则。


最佳实践

  1. 始终使用 --permanent 和 --reload:确保配置在重启后依然有效。
  2. 使用服务名而非端口号:如 http 比 80/tcp 更易读且不易出错。
  3. 最小权限原则:只开放必要的端口和服务。
  4. 定期审计:使用 sudo firewall-cmd --list-all 定期检查当前规则。
  5. 备份配置:
    sudo cp /etc/firewalld/zones/public.xml /etc/firewalld/zones/public.xml.bak

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/477719.html

赞 (0)
8250cdn是什么,8250cdn
上一篇 2026年7月10日 02:48
python挂起怎么操作?python挂起线程方法
下一篇 2026年7月10日 02:48

相关推荐

  • 服务器功率一般多大?服务器功率怎么计算

    服务器功率并非固定数值,而是随负载动态变化的物理量,通常待机时仅为峰值功率的20%-30%,满载时则接近额定值,合理选型与散热管理是降低PUE的关键,很多刚接触数据中心运维的朋友,容易陷入一个误区:认为服务器功率就是机箱上贴的那张标签写的瓦数,那张标签代表的是“最大潜在消耗”,而在实际运行中,服务器就像一辆汽车……

    2026年7月6日
    12500
  • 分布式系统模型深度学习是什么?深度学习在分布式系统中的应用

    分布式系统模型深度学习的核心在于将大规模集群的计算资源与AI算法的动态调度相结合,通过实时感知网络负载与硬件状态,实现算力的高效分配与故障自愈,从而在降低运维成本的同时显著提升系统稳定性,传统分布式架构往往面临“静态配置”与“动态需求”之间的天然矛盾,当流量洪峰突至,固定规则难以快速响应;而当资源闲置时,又会造……

    2026年7月7日
    2500
  • ai大模型最新比分是多少?ai大模型预测比分准吗

    AI大模型在体育比分预测领域的最新进展表明,其核心能力已从单纯的数据统计转向多维度的实时战术模拟与概率推演,但受限于体育竞技的不可控变量,任何AI预测均存在显著误差,用户应将其视为辅助参考而非绝对真理,AI大模型预测比分的底层逻辑与能力边界从数据堆砌到战术模拟的进化早期的比分预测依赖简单的历史胜率统计,而202……

    2026年6月13日
    7000
  • iar ewarm 8.4数据库引擎和版本怎么选,哪个版本好?

    IAR EWARM 8.4 默认使用 SQLite 3.8.11 作为其内置数据库引擎,负责管理项目配置、调试断点和日志文件,了解该引擎的版本和兼容性,是避免调试异常、保障项目迁移顺畅的关键,IAR EWARM 8.4 数据库引擎的角色IAR EWARM 8.4 本身是嵌入式开发IDE,并非数据库软件,但它内嵌……

    2026年8月17日
    300
  • I_帮助文档的用途是什么,如何下载和使用

    I_帮助文档的用法并不复杂,掌握目录检索和搜索操作后,你就能在几秒钟内定位到任何一条操作说明,很多人第一次打开I_帮助文档时,会被左侧的目录和右侧的正文吓到,其实它更像是产品内置的“活地图”,每条路径都按真实操作顺序设计,下面从入口开始,一步步拆解,如何快速上手I_帮助文档I_帮助文档是一套在线文档体系,常见于……

    2026年8月21日
    200
  • AlpacaEval评测到底是什么意思?大模型AlpacaEval评测标准详解

    AlpacaEval是评估大语言模型能力的一套标准化基准测试,它通过让AI模型对另一AI模型的回复进行打分,来量化模型的指令遵循、安全性和逻辑推理水平,是目前衡量开源模型性能的核心参考指标,在2024年之前,评估大模型主要依赖人类专家进行主观打分,这种方式成本高且难以规模化,随着开源社区的发展,研究者发现让大模……

    2026年6月21日
    1800
  • 大模型的泛化能力怎么评估?大模型泛化能力测试方法

    大模型的泛化能力评估并非单一指标测试,而是通过构建涵盖零样本、少样本及跨领域迁移的多维基准测试集,结合人工专家评分与自动化逻辑校验,来综合衡量模型在未见数据上的适应性与鲁棒性,在人工智能技术飞速迭代的当下,评估大模型的泛化能力已成为行业共识认为的关键环节,泛化能力指的是模型在训练数据之外,面对全新、未知或分布偏……

    2026年6月21日
    2400
  • ai大模型怎么研发

    AI大模型的研发并非单纯写代码,而是数据清洗、算力调度、算法训练与人类反馈强化学习(RLHF)的系统工程,其核心在于通过海量数据训练让模型具备理解、推理和生成能力,AI大模型研发的核心流程拆解研发一个大模型,就像培养一个超级学霸,你需要给它提供最好的教材(数据),最聪明的老师(算法),以及足够的自习时间(算力……

    2026年6月12日
    4000
  • IIS网站建设中如何修改已绑定的网站域名,具体步骤有哪些

    修改IIS网站绑定的域名,核心是通过IIS管理器或命令行工具调整绑定设置,确保新旧域名平稳过渡,同时避免访问中断和SEO降权,为什么需要修改IIS网站绑定的域名域名变更的常见场景在网站建设过程中,域名变更几乎是每个运维人员都会遇到的操作,比如品牌升级后更换主域名,或者业务调整需要将多个子域名合并,另一种情况是服……

    2026年8月13日
    300
  • 如何设置IDEA类注释模板?,IDEA类注释模板怎么配置?

    配置IDEA类注释模板,核心是修改File and Code Templates中的File Header或使用Live Templates,前者简单统一,后者灵活多变,开发者可根据团队规范选择合适方案,idea类注释模板设置详解在IntelliJ IDEA中,类注释模板的设置位置比较集中,但理解其逻辑能避免很……

    2026年8月10日
    1000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注