当前位置:首页 > Linux > 正文

Linux防火墙状态怎么查?

在Linux中查看防火墙状态: ,- **firewalld** 系统使用 sudo firewall-cmd --state ,- **iptables** 系统使用 sudo iptables -L -n -v ,- **UFW** 防火墙使用 sudo ufw status ,直接运行对应命令即可显示当前状态(需root权限)。

检查防火墙服务状态(通用方法)

无论使用哪种防火墙工具,先确认服务是否运行:

systemctl status firewalld # 适用于firewalld(如CentOS/RHEL/Fedora) systemctl status ufw # 适用于ufw(如Ubuntu/Debian) systemctl status iptables # 传统iptables服务(部分旧系统)

  • 关键状态标识
    • active (running):防火墙已启用
    • inactive (dead):防火墙已停止


根据防火墙类型查看状态

firewalld(CentOS/RHEL/Fedora)

  • 查看运行状态: firewall-cmd --state # 显示"running"或"not running"
  • 查看详细规则: firewall-cmd --list-all # 显示所有规则(端口、服务等)

ufw(Ubuntu/Debian)

  • 查看状态: sudo ufw status # 显示规则列表及状态(激活/禁用) sudo ufw status verbose # 显示详细配置

iptables(传统工具,通用)

  • 查看规则: sudo iptables -L -n -v # 列出IPv4规则(含数据包计数) sudo ip6tables -L -n -v # 列出IPv6规则
  • 检查是否启用

    若输出中包含非空规则(如ACCEPT/DROP),则防火墙已配置。

nftables(新一代替代iptables)

  • 查看规则集: sudo nft list ruleset # 显示所有规则


特殊场景处理

  • 防火墙未安装?

    通过包管理器安装工具:

    Linux防火墙状态怎么查? 第1张

  • 工具冲突处理

    若系统同时存在多个防火墙(如iptables和firewalld),建议停用其中一个:

    Linux防火墙状态怎么查? 第2张

    sudo systemctl stop iptables && sudo systemctl disable iptables sudo systemctl start firewalld

  • 验证防火墙是否生效

    1. 模拟端口访问(需nc工具): nc -zv 服务器IP 端口号 # 成功提示"Connected",失败提示"Connection refused"
    2. 查看日志: sudo journalctl -u firewalld -f # 实时查看firewalld日志 sudo grep UFW /var/log/syslog # 查看ufw日志


    总结建议

    • 优先使用发行版默认工具

      Ubuntu/Debian → ufw | CentOS/RHEL → firewalld

    • 关键命令速查

      | 工具 | 命令 |

      |————-|————————–|

      | firewalld | firewall-cmd --state |

      | ufw | sudo ufw status |

      | iptables | sudo iptables -L -n -v |

      | nftables | sudo nft list ruleset |

    重要提示

    • 操作防火墙前建议备份规则:iptables-save > rules.bak
    • 修改配置后需重载服务:firewall-cmd --reload 或 ufw reload


    引用说明: 基于Linux官方文档(kernel.org)及主流发行版手册(UbuntuRed Hat),所有命令经过CentOS 8、Ubuntu 22.04及Debian 11环境实测验证。

    Linux防火墙状态怎么查? 第3张

0