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://idctop.com/firewalld%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9flinux%e9%98%b2%e7%81%ab%e5%a2%99%e9%85%8d%e7%bd%ae%e6%95%99%e7%a8%8b/

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

相关推荐

  • IT行业没证书能行吗,数字证书怎么申请?

    IT行业既有职业认证证书,也有数字证书(如SSL证书),数字证书的常见格式包括PEM、DER、PKCS#12等,不同格式适用于不同场景,选择时需结合平台兼容性和使用需求,IT证书含金量高吗?值得考吗?很多刚入行或者想转行的人都会问:IT有证书吗?其实IT领域的证书分两类,一类是职业认证,比如思科CCNA、红帽R……

    2026年8月4日
    700
  • 服务器格式化了怎么办?数据恢复教程

    “服务器格式”这个表述比较宽泛,通常可能指代以下几种不同的概念,为了给您提供最准确的帮助,我将常见的几种“服务器相关格式”进行分类说明:服务器操作系统镜像格式(用于安装/部署)当您购买云服务器或安装服务器系统时,常会接触到以下镜像格式:ISO:通用的光盘镜像格式,可用于安装 Windows Server、Lin……

    2026年7月10日
    19700
  • 如何清空mysql数据库?清空mysql数据库后数据还能恢复吗

    清空 MySQL 数据库通常有几种不同的场景和需求,请根据你的具体情况选择最合适的方法,⚠️ 重要警告:以下操作都是不可逆的,执行前请务必备份重要数据!使用命令行(最常用、最推荐)清空单个数据库的所有表(保留数据库结构,删除所有数据)如果你希望保留数据库本身,但删除里面所有的表和数据,可以使用 mysqladm……

    2026年7月11日
    9400
  • ifstream _怎么用,为什么会出现错误?

    ifstream是C++标准库中用于从文件读取数据的输入流类,它封装了文件打开、读取和关闭等操作,是处理文件输入的首选工具, 很多开发者在使用ifstream时遇到读取失败、中文乱码或性能瓶颈,这些问题往往源于对底层机制理解不足,本文从实际场景出发,深入分析ifstream的典型问题,并给出可验证的解决方案,i……

    2026年8月20日
    800
  • 服务器按天租靠谱吗?云服务器按天计费多少钱

    服务器按天租是应对短期高并发、临时测试及突发流量场景的最优解,它能显著降低资金占用并实现资源弹性伸缩,在云计算普及的当下,传统的“买断式”服务器采购模式正逐渐显露出僵化与浪费的弊端,对于初创团队、独立开发者以及需要应对短期项目交付的企业来说,按需付费的租赁模式不仅灵活,更能精准匹配业务生命周期,这种模式打破了硬……

    2026年7月12日
    5700
  • 如何通过GEO设置推广ICO网站,网站推广技巧有哪些?

    ICO网站推广的成败,根植于SEO设置是否精准,2026年百度算法升级后,单纯依赖外链或关键词堆砌已失效,必须从技术优化、内容深度和用户信任三个层面综合发力,才能让ICO网站在搜索结果中获得持续曝光,ico网站推广的SEO基础配置关键词策略:从流量词到转化词ICO网站推广的第一步是锁定用户真实需求,多数ICO项……

    2026年7月30日
    800
  • 访问控制角色是什么?如何配置访问控制角色权限

    访问控制角色是安全架构中连接“谁”与“资源”的权限映射机制,通过最小权限原则和职责分离,有效防止越权操作和数据泄露,在数字化转型的深水区,单纯依靠防火墙或入侵检测系统已无法应对内部威胁,想象一下,一家拥有五千名员工的科技公司,如果每个员工都能访问核心代码库或财务数据库,后果不堪设想,访问控制角色(Access……

    2026年7月1日
    2210
  • IT行业模板网站哪个好?,模板网站推荐有哪些

    IT行业模板网站的选择直接关系到企业官网的展示效果和SEO排名,实践中应优先考虑具备行业针对性、代码干净且支持自定义的模板平台,IT行业网站模板哪个好?推荐前必看的三个标准市面上打着“IT行业模板”旗号的网站不少,但真正能拿来就用的并不多,选模板和选工具一样,先看底层逻辑再看表面设计,案例库是否覆盖真实科技场景……

    2026年8月12日
    900
  • IDC服务器托管租用有哪些产品功能?,怎么选?

    企业选择IDC服务器托管租用,核心产品功能在于稳定可靠的网络环境、电力保障、安全防护和专业技术支持,而根据业务需求选择托管或租用模式是控制成本与保障业务连续性的关键,服务器托管和租用有什么区别很多企业在初次接触IDC服务时,会陷入两种模式的纠结,服务器托管指企业自购硬件,放入IDC机房,由机房提供网络、电力、空……

    2026年8月20日
    1100
  • IP视频会议哪里发起?,视频会议软件哪个好?

    发起IP视频会议并不复杂,你只需要在会议软件或系统内找到“发起会议”或“新建会议”按钮,即可在任意设备上快速建立会议室,关键取决于你选择的平台和部署方式,如何发起视频会议?不同场景的操作指南无论你是在办公室用台式机,还是在外出途中用手机,发起视频会议的入口都集中在软件界面最显眼的位置,但具体到不同设备和平台,路……

    2026年8月20日
    700

发表回复

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