当前位置:首页 > 云服务器 > 正文

查看linux服务器防火墙

Linux服务器 防火墙可用命令 iptables -L列出当前规则与策略,该命令直观展示系统配置的过滤条件及端口开放情况

使用iptables命令查看(传统方式)

若系统采用旧版netfilter/iptables框架(如CentOS 6及之前版本),可通过以下命令查看规则:

sudo iptables -L -n -v

  • 参数说明:-L表示列出所有规则;-n以数字形式显示IP地址和端口(避免DNS解析延迟);-v启用详细模式(展示流量统计等信息)。
  • 输出示例(部分字段):

    | 目标链 | 协议 | 源IP/掩码 | 目的IP/掩码 | 端口范围 | 动作(ACCEPT/DROP等) | 数据包计数 | 字节数 |

    |————–|——|—————–|—————–|————|———————|————|———|

    | INPUT | tcp | 0.0.0.0/0 | 192.168.1.100 | 8080 | ACCEPT | 1234 | 456789 |

    | FORWARD | udp | 10.0.0.5 | ANYWHERE | 53 | DROP | 0 | 0 |

注意:现代Linux发行版(如CentOS 7+、Ubuntu 16.04+)已默认转向nftables,但部分场景仍兼容iptables后端。


使用nft命令查看(新版主流方案)

对于基于nftables的防火墙(大多数现代系统),执行:

查看linux服务器防火墙 第1张

该命令会输出完整的表结构、链和规则细节,

table inet filter { chain input { type filter hook input priority 0 policy accept; rule ip protocol tcp port 22 accept rule ip protocol icmp reject } chain forward { ... } chain output { ... } }

若需简化查看某条链的规则,可指定链名:

sudo nft list chain inet filter input


通过firewalld服务管理工具(RHEL/CentOS系专用)

如果系统使用firewalld服务(常见于RHEL 7+、CentOS 7+),可通过图形化或命令行方式管理:

查看linux服务器防火墙 第2张

查看当前激活的区域及状态

sudo firewall-cmd --state # 输出示例:running

列出所有支持的区域类型

sudo firewall-cmd --get-available-zones # 常见区域:public, internal, trusted, dmz, external等

查看特定区域的详细规则(以public为例)

sudo firewall-cmd --zone=public --list-all

典型输出表格

| 属性 | 值 |

|——————–|——————————————————————–|

| 区域名称 | public |

| 默认入站策略 | reject |

| 默认出站策略 | allow |

| 已允许的服务/端口 | ssh (22/tcp), http (80/tcp), https (443/tcp), ping (icmp) |

| 已拒绝的IP/端口 | 无 |

| 伪装(MASQUERADE) | no |

| 富规则数量 | 5 |

实时监控日志(调试用)

临时开启日志记录,观察被拦截的流量:

sudo firewall-cmd --add-service=ssh --permanent && sudo firewall-cmd --reload journalctl -u firewalld -f | grep -i "DENY"


Ubuntu/Debian系的ufw工具

针对Debian衍生系统(如Ubuntu),默认使用轻量级防火墙ufw:

检查服务状态

sudo systemctl status ufw # 活跃状态应为“active (exited)”

查看当前规则摘要

sudo ufw status verbose

示例输出

| 方向 | 协议 | 端口/服务 | 动作 | 日志级别 | 备注 |

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

| IN | tcp | 22 | ALLOW | low | SSH连接 |

| IN | udp | 67:68 | ALLOW | disabled | TFTP传输 |

| ANY | any | anywhere | DENY | none | 默认拒绝所有未明确允许的流量 |

查看详细配置参数

sudo ufw show raw

会显示底层IPTABLES规则的实际实现细节。


相关问题与解答

Q1: 如果执行iptables -L无输出是否正常?

A: 是的,当没有手动添加任何自定义规则时,默认策略可能仅包含基础链(如INPUT允许回环接口通信),此时iptables -L可能显示为空,建议结合nft list ruleset或发行版专用工具(如firewalld/ufw)确认实际策略。

Q2: 如何判断当前系统使用的是哪种防火墙后端?

A: 可以通过以下方法快速识别:

  • CentOS/RHEL系:检查systemctl status firewalld是否活跃;若运行则说明使用firewalld(底层可能是nftables)。
  • Ubuntu/Debian系:执行ufw status,若返回信息则表明使用ufw(基于iptables)。
  • 通用方法:运行lsmod | grep -E 'iptables|nf_tables',加载了nf_tables模块通常表示使用`n

查看linux服务器防火墙 第3张

0