iptables vs firewalld:全面剖析区别、联系与实战配置

举报
神的孩子在歌唱 发表于 2025/06/30 12:49:49 2025/06/30
【摘要】 iptables vs firewalld:全面剖析区别、联系与实战配置前言肝文不易,点个免费的赞和关注,有错误的地方请指出,看个人主页有惊喜。作者:神的孩子都在歌唱“我的服务器怎么访问不了了?!”神唱(运维新人)正在调试一个 Web 应用,突然发现浏览器打不开了。心想:“是不是程序崩了?” 检查了一圈,发现应用服务正常运行,端口也监听着。最后,他试探性地执行了一条命令:systemctl...

iptables vs firewalld:全面剖析区别、联系与实战配置

前言

肝文不易,点个免费的赞和关注,有错误的地方请指出,看个人主页有惊喜。

作者:神的孩子都在歌唱

image-20250401163151910

“我的服务器怎么访问不了了?!”

神唱(运维新人)正在调试一个 Web 应用,突然发现浏览器打不开了。心想:“是不是程序崩了?” 检查了一圈,发现应用服务正常运行,端口也监听着。最后,他试探性地执行了一条命令:

systemctl stop firewalld

结果,网页瞬间恢复访问!他顿时明白:原来是防火墙在搞鬼!

在 Linux 系统中,防火墙是保障网络安全的重要工具。而在不同的 Linux 发行版中,防火墙的管理方式有所不同,最常见的两种工具就是 iptablesfirewalld。很多人对它们的区别、联系以及具体使用方式感到困惑,那么接下来神唱就带着大家一一解惑。


一. 什么是 iptables

1.1 概述

iptables 是 Linux 内核自带的防火墙工具,它基于 netfilter 框架来管理网络数据包的过滤和转发。iptables 允许管理员设置规则来控制进出 Linux 服务器的网络流量。

1.2 工作原理

iptables 通过规则链(Chain) 处理网络数据包,每个数据包都会按照链中定义的规则进行匹配,匹配成功后执行相应的操作,如 接受(ACCEPT)、丢弃(DROP)或拒绝(REJECT)

常见的规则链:

  • INPUT:控制进入本机的流量。

  • OUTPUT:控制本机发出的流量。

  • FORWARD:控制本机转发的流量(适用于网关/路由器)。

  • PREROUTINGPOSTROUTING:用于 NAT 规则处理。

1.3 常用命令示例

  1. 如果 iptables 未安装,可以尝试安装

    yum install -y iptables-services # CentOS/RHEL 7+
    apt install -y iptables # Ubuntu/Debian
  2. 查看当前 iptables 规则

    iptables -L -n -v

    image-20250401152755808

  3. 测试以下看看端口是否通的

    在另一台服务器上执行telnet,发现拒绝链接

image-20250401153331332

  1. 添加一条允许 9100 端口(HTTP)流量的规则

    iptables -I INPUT 5 -p tcp --dport 9100 -j ACCEPT

    再次测试发现可以连接了

    image-20250401153926435

  2. 删除刚刚添加的规则

    iptables -D INPUT -p tcp --dport 9100 -j ACCEPT

二. 什么是 firewall

firewalld 是 iptables 的替代方案,从 RHEL/CentOS 7 开始成为默认防火墙。它提供了动态规则管理,支持 区域(Zones) 概念,并简化了防火墙配置。

2.1 主要特点

  • 动态管理:无需重启即可修改防火墙规则。

  • 支持区域(Zone):不同网络接口可以应用不同的安全策略。

  • 提供 D-Bus API,便于与其他程序集成。

2.2 常用命令示例

  1. 查看 firewalld 状态

    systemctl status firewalld
  2. 允许 9100 端口

    firewall-cmd --permanent --add-port=9100/tcp
    # 重新加载防火墙规则
    firewall-cmd --reload
  3. 查看当前防火墙规则

    firewall-cmd --list-all

    image-20250401162602299


  4. 禁用 firewalld(如果想使用 iptables)

    systemctl stop firewalld
    systemctl disable firewalld

三. 区别与联系

对比项 iptables firewalld
配置方式 规则链管理 区域(Zone)管理
规则修改 需要手动应用规则 支持动态调整,无需重启
默认状态 需要手动启用 RHEL/CentOS 7+ 默认启用
支持 IPv6 需要单独使用 ip6tables 默认支持 IPv6
适合场景 适用于熟悉手动管理规则的管理员 适合需要快速配置的环境
  1. firewalld 的底层仍然使用 iptablesnftables 来执行防火墙规则。

  2. 如果 firewalld 运行时,iptables 规则可能会被 firewalld 管理的规则覆盖。

  3. 不能同时运行 iptablesfirewalld,否则可能会导致冲突。




作者:神的孩子都在歌唱 本人博客:https://blog.csdn.net/weixin_46654114 转载说明:务必注明来源,附带本人博客连接

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。