如何详细查询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 INPUT下Target为ACCEPT、Port为22,表示允许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如何暴露PHP服务到外网?

    配置Web服务器安装并启动Web服务器Apache:sudo apt update && sudo apt install apache2 php libapache2-mod-php # 安装Apache与PHP模块sudo systemctl start apache2 &&amp……

    2025年7月12日
    23800
  • Linux下fgets如何检测tab字符?

    fgets是Linux/C语言标准库中用于从文件流读取一行数据的核心函数,其原型为char *fgets(char *str, int size, FILE *stream),功能是从stream指向的文件流中读取至多size-1个字符,存入str指向的缓冲区,并在末尾自动添加’\0’终止符,在文本处理场景中……

    2025年8月27日
    22000
  • Linux如何通过内核机制保证实时性?

    Linux作为一款广泛应用于服务器、嵌入式系统及实时控制领域的操作系统,其实时性保障能力是关键性能指标之一,实时性指系统在确定时间内对外部事件或请求做出响应的能力,通常分为硬实时(必须在严格截止时间内完成,否则导致系统失败)和软实时(尽量在截止时间内完成,偶尔超时可容忍),Linux默认并非实时操作系统,但通过……

    2025年9月17日
    25900
  • 如何用光盘安装Linux并下载视频教程?

    为什么选择光盘安装Linux?光盘安装是最稳定可靠的Linux安装方式之一,尤其适合:无U盘或网络环境差的用户需要反复安装/修复系统的场景确保安装文件无篡改(通过校验ISO完整性)📌 专业提示:根据Linux基金会2023年报告,光盘安装的成功率比U盘高15%,且能避免U盘兼容性问题,准备工作清单工具要求注意事……

    2025年7月18日
    28300
  • 如何通过外网安全登录Linux服务器地址的操作步骤?

    要通过外网登录Linux服务器,需要完成服务器端配置、网络设置及客户端连接操作,以下是详细步骤,涵盖准备工作、核心配置、连接方法及常见问题排查,准备工作服务器必备条件Linux服务器已安装并运行SSH服务(默认大多数发行版已安装),服务器拥有公网IP地址(如云服务器的弹性公网IP,或路由器端口映射后的内网IP……

    2025年10月9日
    33800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信