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

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

以下是关于 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. 使用服务名而非端口号:如 http80/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

相关推荐

  • 为什么文章显示fetching?百度收录慢怎么办

    “Fetching” 是一个英文单词,根据上下文有不同的含义,以下是几种常见的解释:动词 fetch 的现在分词:意思是“去取”、“拿来”、“吸引”等,例句:The dog is fetching the ball.(狗正在去捡球,)计算机/网络领域:指从服务器或数据库中获取数据的过程,Fetching dat……

    2026年7月10日
    19100
  • 大疆AI模型训练难吗?大疆AI模型训练教程

    大疆AI模型训练的核心在于利用其提供的SDK与算力平台,将无人机采集的多维数据转化为高精度的行业应用模型,从而实现从“航拍”到“智算”的跨越,大疆AI模型训练的核心逻辑与优势解析很多人对大疆的印象还停留在“会飞的相机”,但在2026年的今天,大疆已经深度介入了人工智能的底层基础设施建设,对于开发者、科研人员以及……

    2026年6月13日
    3110
  • iis7如何建立网站?通话建立后有哪些注意事项?

    IIS7建立网站后,真正考验人的不是点击“下一步”的创建过程,而是“通话建立后”——也就是网站首次被外部访问成功的那一刻起,权限、日志、绑定、性能这些细节才会露出真面目,很多朋友在Windows Server上装好IIS7,把站点一建,就以为大功告成,结果域名一解析,浏览器一打开,要么403,要么500,要么直……

    2026年8月14日
    300
  • IPv6管理配置怎么做,具体步骤有哪些?

    IPv6配置的核心路径就三条:路由器拨号获取地址、终端设备自动获取、服务器手动规划静态地址,掌握了这三条主线,大部分IPv6管理问题都能迎刃而解,我干了八年网络运维,前几年总跟人解释“IPv6到底有没有必要上”,今年改成解释“怎么把IPv6配得不出幺蛾子”,形势变化就这么快,家里光猫、单位路由器、云服务器,全都……

    2026年8月10日
    900
  • 服务器与客户端作用是什么?服务器和客户端的区别

    在计算机网络和互联网架构中,服务器(Server)与客户端(Client)是构成大多数网络应用(如 Web 浏览、即时通讯、在线游戏等)的两个核心角色,它们通过“请求-响应”模式协同工作,以下是两者的主要作用及区别:服务器(Server)的作用服务器是网络中为其他计算机(客户端)提供资源、服务或数据的计算机或程……

    2026年7月10日
    13200
  • 如何用inputbox代码实现用户发送消息?,有哪些方法?

    inputbox 代码使用示例用于用户发送消息,是前端开发中实现即时通讯的基础模块,通过监听输入事件和按钮点击即可完成消息发送的核心逻辑,本文提供可复制运行的完整代码和多种场景的适配方案,inputbox 代码使用示例:用户发送消息的核心实现一个典型的inputbox用于用户发送消息,包含三个基本部分:输入框……

    2026年8月11日
    600
  • 房产网站模板怎么找?2026年热门建站源码推荐

    选择房产网站模板时,核心在于平衡加载速度、移动端适配与SEO结构化数据,建议优先选用支持JSON-LD标记且源码轻量化的响应式主题,而非盲目追求功能堆砌的复杂模板,在2026年的数字营销环境中,房产行业的线上获客逻辑已经发生了根本性转变,用户不再满足于简单的房源列表展示,而是追求极致的浏览体验和精准的信息匹配……

    2026年7月6日
    11600
  • 大模型部署WebSocket通信怎么实现?大模型部署WebSocket通信延迟高怎么解决

    大模型部署中采用WebSocket通信,核心优势在于实现服务端向客户端的实时流式推送,彻底解决了HTTP轮询带来的高延迟与资源浪费问题,是构建低延迟AI应用的最佳实践,在传统的Web开发模式中,前端向后端发起请求,后端处理完毕后返回完整结果,这种“请求-响应”模式在处理大语言模型(LLM)生成文本时显得捉襟见肘……

    2026年6月18日
    3700
  • 分布式数据库都有哪些实现方式?,怎么选?

    深圳小学三年级数学辅导机构怎么选?2025年本地家长选课决策参考直接给答案综合深圳本地多个家长社群反馈,大多数家长认为,小学三年级数学辅导的核心在于匹配孩子的学习习惯和基础水平,而非盲目追求机构名气,对于基础薄弱的孩子,建议优先选择小班制(4-6人)或1对1教学,能针对性查漏补缺;而对于成绩中等以上的孩子,选择……

    2026年7月20日
    1200
  • iis7https基础配置与主体配置不会设置?,怎么办

    IIS7 HTTPS配置的主体配置,就是把SSL证书绑定到站点、设置HTTP强制跳转、调整SSL参数这三步走完,网站就能正常通过HTTPS协议访问,很多站长卡在证书导入或绑定环节,其实只要理清IIS管理器中「服务器证书」和「站点绑定」两个模块的关系,操作起来并不复杂,下面直接拆解完整流程,附带可验证的排查方法……

    2026年8月21日
    400

发表回复

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