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

相关推荐

  • 服务器版怎么开启无线网络,Windows Server如何开启无线网卡?

    Windows Server 服务器版开启无线网络(Wi-Fi)指南在 Windows Server 系列操作系统(如 2016, 2019, 2022)中,无线局域网服务(Wireless LAN Service) 默认是禁用的,这是因为服务器通常要求极高的网络稳定性,因此默认倾向于使用有线以太网连接,如果需……

    2026年7月13日
    3100
  • info域名多少钱_PDB Info

    info域名注册价格通常在几十元到上百元人民币/年之间,促销时部分注册商甚至低至个位数,但续费价格普遍高于首年, 如果你正在考虑为PDB Info这类项目搭建网站,info域名是一个兼顾性价比与辨识度的选择,但具体花多少钱,取决于注册商、促销活动以及你选择的年限,info域名多少钱:先说价格,再谈值不值很多人第……

    2026年8月12日
    700
  • 如何配置IIS的HTTPS?,IIS安装步骤有哪些?

    IIS配置HTTPS和安装IIS其实是一套标准流程,核心在于正确安装Web服务器组件、获取并绑定SSL证书,无需编写代码即可完成安全部署,无论你是本地调试还是线上部署,只要跟着操作路径走,多数情况下都能在半小时内搞定,下面我把安装IIS、配置HTTPS、证书处理以及常见问题拆开细讲,每个步骤都对应实际场景,方便……

    2026年8月6日
    1100
  • IDC牌照和列表如何查询?,办理流程是什么?

    IDC牌照查询是验证企业是否具备合法开展互联网数据中心业务资质的核心手段,而调用“查询IDC列表-ListIDcs”接口则是获取该资质信息的高效技术路径,可直接对接工信部官方数据,实现对企业资质、许可证编号及业务范围的实时核验,IDC牌照是什么?为什么查询对企业至关重要IDC牌照,全称为互联网数据中心业务经营许……

    2026年8月4日
    600
  • idc是什么_IDC资源配置

    IDC(互联网数据中心)是提供服务器托管、租用及网络带宽等基础资源服务的物理场所,而IDC资源配置则是根据业务需求科学分配计算、存储、网络等资源的过程,直接决定企业IT成本和运行效率,IDC是什么?它和云计算有什么区别IDC的全称是互联网数据中心,简单理解就是一个专门存放服务器、网络设备和配套设施的物理机房,企……

    2026年8月6日
    700
  • 服务器托管哪里好?,服务器托管费用多少钱

    服务器托管首选一线城市核心机房,重点考察BGP多线接入、电力冗余及物理安防,2026年市场共识认为“高可用+低延迟”是选型核心,选择服务器托管地点并非简单的地理位置对比,而是对网络质量、运维成本和业务稳定性的综合权衡,随着云计算技术的普及,许多企业误以为本地机房已无必要,但对于高并发、低延迟要求的业务,物理服务……

    2026年7月6日
    20200
  • 服务器mysql数据库备份还原失败怎么办?mysql数据库备份还原教程

    服务器MySQL数据库备份与还原的核心在于建立“本地快照+异地容灾”的双重保障机制,通过mysqldump或XtraBackup工具结合定时任务实现自动化,确保数据在故障发生时能以最小损失恢复,数据是现代企业的生命线,而MySQL作为最流行的开源关系型数据库,其稳定性直接关系到业务连续性,许多运维人员往往在服务……

    2026年7月6日
    2300
  • 如何查看服务器数据库?服务器数据库查看方法详解

    查看服务器数据库最直观的方法是通过SSH登录服务器后使用命令行工具,或者通过宝塔、phpMyAdmin等可视化面板直接管理,具体取决于你的服务器环境和权限设置,很多刚接触服务器运维的朋友,面对黑漆漆的终端界面往往会感到无从下手,查看数据库并不是什么高深莫测的黑科技,它更像是在图书馆里找书,关键在于你手里有没有正……

    2026年7月9日
    12000
  • 服务器SSL证书怎么申请?ssl证书免费申请方法

    服务器的SSL证书是保障数据传输加密的核心组件,它能有效防止信息泄露并提升搜索引擎排名,建议优先选择支持多域名且具备自动续期功能的DV或OV证书,在数字化时代,网络安全不再是一个可选项,而是必需品,当你访问一个网站时,浏览器地址栏那把绿色的小锁,就是SSL证书存在的证明,它像是一位隐形的保镖,在用户和服务器之间……

    2026年7月3日
    18200
  • 服务器与客户端怎么传文件?文件传输工具推荐

    服务器与客户端之间传输文件的核心在于选择正确的协议(如SFTP、SCP或HTTP)并配置好权限,对于大文件推荐使用断点续传工具,小文件则直接使用命令行或图形化界面即可高效完成,在数字化转型的浪潮中,文件传输早已不再是简单的“复制粘贴”,无论是运维人员同步代码,还是设计师上传高清素材,稳定、安全的传输通道都是业务……

    2026年7月4日
    4700

发表回复

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