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://idctop.com/article/477719.html

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

相关推荐

  • PHP分布式缓存怎么用?PHP实现分布式缓存方案

    在PHP项目中引入分布式缓存,核心在于利用Redis或Memcached解决高并发下的数据库压力问题,通过“读写分离”与“数据分层”策略,将热点数据驻留内存,从而将接口响应时间从秒级降低至毫秒级,随着互联网业务规模的扩张,单体应用架构已难以支撑百万级日活流量,数据库作为系统的瓶颈,往往在流量峰值时成为“拦路虎……

    2026年7月10日
    3700
  • 防攻击软件到底有没有用,哪个牌子最值得买?

    防攻击软件的选择依赖业务暴露面与攻击类型,没有万能方案,但需求匹配远比价格和品牌更重要,防攻击软件的核心功能与分类防攻击软件的核心是区分正常流量与攻击流量,并执行清洗或阻断,这类软件通常部署在网络入口或应用前端,覆盖DDoS防护、Web应用防火墙(WAF)、IP信誉过滤等能力,流量监控与异常检测:实时分析带宽……

    2026年7月21日
    100
  • 杭州ai大模型公司哪家好?2026最新排名推荐

    杭州作为“中国AI第一城”,其大模型产业已形成从底层算力到行业应用的完整闭环,2026年选择杭州AI大模型公司,核心在于获取具备深厚场景落地能力与高性价比私有化部署方案的服务商,而非单纯购买通用基座模型,杭州AI大模型产业格局与核心优势解析杭州之所以能在2026年稳居全国AI高地,并非偶然,而是得益于阿里云、网……

    2026年6月14日
    4800
  • fionread是什么牌子,fionread包包官网正品查询

    fionread是一款专注于提升阅读体验的智能工具,通过优化排版与内容聚合,帮助用户在碎片化时间中高效获取高质量信息,在信息过载的当下,如何从海量数据中筛选出真正有价值的内容,成为许多职场人和学习者的痛点,传统的阅读方式往往伴随着频繁的跳转、广告的干扰以及排版混乱的问题,这不仅消耗了用户的注意力,也降低了知识吸……

    2026年7月10日
    12100
  • 服务器管理系统怎么选?企业服务器监控管理解决方案

    “服务器管理系统”是一个广泛的概念,通常指用于监控、配置、维护、自动化部署和管理服务器(物理机或虚拟机/容器)的软件平台或工具集,根据你的需求场景(个人学习、中小企业运维、大型云原生环境),可以选择不同类型的解决方案,以下是分类整理的主流服务器管理系统及工具推荐: 综合型服务器管理平台(Web UI + 功能全……

    2026年7月10日
    8900
  • 分布式数据库中间件开源怎么选?主流开源中间件对比

    分布式数据库中间件开源是解决海量数据读写瓶颈、实现水平扩展的核心方案,其本质是在应用层与数据库层之间充当智能路由与事务协调器,而非替代底层存储引擎,在2026年的技术语境下,企业面临的不再是简单的“存不下”问题,而是“高并发下的数据一致性”与“运维复杂度”之间的博弈,开源分布式数据库中间件通过屏蔽底层异构数据库……

    2026年7月5日
    8200
  • 分布式缓存服务哪家专业?2026年主流分布式缓存服务对比

    若追求极致性能与稳定性,阿里云Redis、腾讯云Tendis及AWS ElastiCache是行业内的首选方案,具体选择需结合业务场景、预算及团队技术栈综合评估,在2026年的数字化浪潮中,分布式缓存已不再仅仅是提升系统响应速度的辅助工具,而是决定用户体验和业务连续性的核心基础设施,面对市场上琳琅满目的服务商……

    2026年7月6日
    14000
  • 如何修改服务器管理口地址?服务器管理口地址怎么查

    修改服务器管理口地址的核心在于登录后台修改网络配置并重启服务,操作前务必确保新地址可达,否则可能导致永久失联,服务器管理口(Management Port)是运维人员的“生命线”,一旦配置失误,轻则业务中断,重则数据丢失,很多新手在初次接触华为服务器管理口地址修改时,往往因为紧张而忽略细节,本文将通过实操步骤……

    2026年7月8日
    14700
  • 服务器上的邮件与客户端的邮件有什么区别?邮箱数据不同步怎么解决

    服务器上的邮件与客户端的邮件并非对立关系,而是“仓库”与“提货单”的协作关系,服务器负责永久存储和路由转发,客户端负责界面展示和操作交互,二者通过IMAP或POP3协议同步数据,很多人容易混淆这两个概念,以为邮件要么在服务器上,要么在本地电脑里,现代邮件系统是一个分布式架构,想象一下,服务器就像是一个巨大的邮政……

    2026年7月3日
    600
  • FTP共享MySQL数据库怎么操作?如何安全高效管理结构化数据

    通过FTP共享MySQL结构化数据库在技术上不可行且极度危险,正确做法是利用数据库远程连接协议(如TCP/IP)配合防火墙策略,或使用文件传输服务同步备份文件而非直接共享运行中的数据库实例,很多人对“共享”的理解存在偏差,认为只要能把文件丢进一个文件夹,让所有人下载就能实现数据共享,这种思维在文本文件时代或许行……

    2026年7月1日
    900

发表回复

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