当前位置:首页 > 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张

    # Ubuntu/Debian
    sudo apt install ufw
    # CentOS/RHEL
    sudo yum install firewalld
  • 工具冲突处理
    若系统同时存在多个防火墙(如iptablesfirewalld),建议停用其中一个:

    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 --reloadufw reload

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

0