如何详细查询Linux防火墙的开启状态、规则列表和配置方法?

Linux防火墙是系统安全的核心组件,及时查询其规则状态、开放的端口及服务,对保障系统安全和排查网络问题至关重要,不同Linux发行版可能采用不同的防火墙工具(如iptables、firewalld、nftables),查询方法也存在差异,本文将详细介绍主流防火墙的查询方式,帮助用户快速掌握规则查看技巧。

如何查询linux防火墙

iptables防火墙查询(适用于CentOS 6、Debian 7等旧系统)

iptables是Linux传统的防火墙工具,通过规则链控制流量,查询规则的核心命令是iptables -L -n -v,参数解释如下:

  • -L:列出所有规则链(如INPUT、OUTPUT、FORWARD);
  • -n:以数字形式显示IP和端口(避免DNS解析延迟);
  • -v:显示详细统计(数据包数、字节数)。

输出表格关键列说明
| 列名 | 含义 | 示例值 |
|————|————————–|—————–|
| Chain | 规则链 | INPUT |
| Target | 目标动作(ACCEPT/DROP) | ACCEPT |
| Proto | 协议(tcp/udp/icmp) | tcp |
| Source | 源IP地址 | 0.0.0.0/0 |
| Destination| 目标IP地址 | 0.0.0.0/0 |
| Port | 端口号 | 22 |
| pkts | 匹配的数据包数 | 1024 |
| bytes | 匹配的字节数 | 102400 |

Chain INPUTTargetACCEPTPort22,表示允许SSH流量访问。

firewalld防火墙查询(适用于CentOS 7+、RHEL 7+等新系统)

firewalld是动态防火墙管理工具,支持区域(Zone)和服务(Service)策略,查询命令更灵活:

如何查询linux防火墙

  • firewall-cmd --list-all:显示当前区域的所有配置(接口、服务、端口等);
  • firewall-cmd --list-ports:仅列出开放的端口(如“8080/tcp”);
  • firewall-cmd --list-services:显示允许的服务名称(如“http”“ssh”)。

输出表格关键列说明
| 列名 | 含义 | 示例值 |
|————|————————–|—————–|
| Zone | 安全区域(如public/内部)| public |
| Interface | 绑定的网络接口 | eth0 |
| Services | 允许的服务列表 | ssh, https |
| Ports | 开放的端口列表 | 8080/tcp |
| Sources | 信任的源IP段 | 192.168.1.0/24 |

public区域下Services包含https,表示允许HTTPS流量通过。

nftables防火墙查询(适用于Ubuntu 20.04+、CentOS 8+等新系统)

nftables是iptables的替代方案,语法更简洁,查询命令为nft list ruleset,输出以“表(table)-链(chain)-规则(rule)”结构呈现。

table inet filter {  
  chain input {  
    type filter hook input priority 0;  
    policy accept;  
    tcp dport 22 accept;  # 允许SSH  
  }  
}  

其中tcp dport 22 accept明确表示允许22端口流量。

如何查询linux防火墙

通用查询步骤

  1. 确认防火墙状态
    • firewalld:systemctl status firewalld(查看是否运行);
    • iptables:service iptables status(查看是否启动)。
  2. 查看日志
    • firewalld日志:journalctl -u firewalld
    • iptables日志:grep iptables /var/log/messages(需开启日志记录)。

相关问答FAQs

问题1:如何判断当前系统使用的是哪种防火墙?
解答:可通过以下方式判断:

  1. 检查服务状态:systemctl status firewalld,若显示“active (running)”,则使用firewalld;service iptables status,若显示“running”,则使用iptables。
  2. 查看命令是否存在:which firewalld存在则优先使用firewalld,which iptables存在则可能使用iptables。
  3. 查看配置文件路径:firewalld配置在/etc/firewalld/,iptables规则在/etc/sysconfig/iptables(CentOS 6)或/etc/iptables/rules.v4(Ubuntu)。

问题2:查询到防火墙规则后,如何临时开放某个端口(如8080端口)?
解答:根据防火墙类型操作:

  1. firewalld:
    • 临时开放(重启后失效):firewall-cmd --add-port=8080/tcp
    • 永久开放:firewall-cmd --add-port=8080/tcp --permanent,然后重载防火墙firewall-cmd --reload
  2. iptables:
    • 临时开放:iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
    • 永久保存规则(CentOS 6):service iptables save
    • Ubuntu系统:iptables-save > /etc/iptables/rules.v4

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/38508.html

(0)
酷番叔酷番叔
上一篇 2025年10月8日 19:29
下一篇 2025年10月8日 20:25

相关推荐

  • 如何将linux压缩成iso文件下载

    命令行工具如 mkisofs 将文件系统制作成ISO,再通过

    2025年8月18日
    10200
  • iPhone如何远程连接Linux服务器?

    在数字化时代,连接服务器是管理网站、传输文件或远程运维的核心技能,本文详细讲解Linux系统和iPhone设备连接到服务器的专业方法,涵盖主流协议(SSH、FTP、SFTP)及安全实践,确保操作安全高效,基础概念:连接服务器的关键要素协议与端口SSH(安全外壳协议):默认端口22,用于加密命令行操作(如服务器运……

    2025年8月4日
    13300
  • Linux操作系统中如何查看当前的主机名hostname?

    在Linux系统中,hostname(主机名)是标识网络中一台计算机的名称,它用于网络通信、服务认证、日志记录等多种场景,准确查看当前系统的hostname是系统管理和网络配置的基础操作,本文将详细介绍Linux系统中查看hostname的多种方法,包括命令行工具、配置文件读取及系统信息查询等,并对比不同方法的……

    2025年8月28日
    10100
  • 为什么安装依赖总是失败?

    在 Linux 系统上安装 QEMU 的完整指南QEMU(Quick Emulator)是一款开源的硬件虚拟化工具,允许你在 Linux 系统中创建和运行虚拟机(支持 Windows、Linux 等多种操作系统),它通过硬件加速技术(如 KVM)提供接近原生的性能,适用于开发测试、系统模拟和云计算环境,以下是详……

    2025年8月8日
    10100
  • Linux安装Eclipse如何确保兼容?

    安装前提条件Java环境Eclipse依赖Java,优先选择OpenJDK 11或17(推荐LTS版本):# Ubuntu/Debiansudo apt updatesudo apt install openjdk-17-jdk# Fedora/CentOSsudo dnf install java-17-op……

    2025年7月12日
    10800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信