通过 iptables 查看(传统工具)
适用于较旧系统(如CentOS 6)或未迁移到新工具的环境。
操作步骤:
-
查看规则:
sudo iptables -L -n -v # 列出IPv4规则(含数据包计数) sudo ip6tables -L -n -v # 查看IPv6规则
-L
:列出规则;-n
:禁用反向解析(加速显示);-v
:显示详细信息。 -
查看特定链(如INPUT链):
sudo iptables -L INPUT -n -v
通过 firewalld 查看(主流工具)
CentOS/RHEL 7+、Fedora、OpenSUSE等默认使用。
操作步骤:
-
检查服务状态:
sudo systemctl status firewalld # 确认firewalld是否运行
若状态为
active (running)
,则防火墙已启用。 -
查看所有规则:
sudo firewall-cmd --list-all # 显示默认区域规则
输出示例:
public (active) target: default services: ssh dhcpv6-client http ports: 80/tcp forward: no
-
查看详细配置:
sudo firewall-cmd --list-ports # 开放端口 sudo firewall-cmd --list-services # 允许的服务 sudo firewall-cmd --list-rich-rules # 复杂规则(如IP白名单)
通过 UFW 查看(Ubuntu/Debian 系列)
Ubuntu的简化工具(底层基于iptables)。
操作步骤:
-
检查状态:
sudo ufw status # 若显示"Status: active"则已启用
输出示例:
Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 80/tcp ALLOW 192.168.1.0/24
-
查看详细规则:
sudo ufw status verbose numbered # 带编号的详细规则
通过 nftables 查看(新一代工具)
逐步替代iptables(Debian 10+、CentOS 8+默认)。
操作步骤:
sudo nft list ruleset # 列出所有规则
输出包含表(table)、链(chain)、规则(rule)的层级结构。
通用检查方法
-
确认防火墙是否运行:
sudo systemctl is-active firewalld # 检查firewalld sudo systemctl is-active ufw # 检查UFW
-
查看内核级规则(所有工具底层依赖):
sudo cat /proc/net/ip_tables_names # 检查iptables模块 sudo lsmod | grep nf_tables # 检查nftables模块
注意事项
- 权限要求:所有命令需
root
权限,否则会提示权限不足。 - 多工具冲突:避免同时启用多个防火墙(如iptables+firewalld),可能导致规则混乱。
- 规则持久化:
- iptables:规则重启失效,需用
iptables-save > /etc/iptables/rules.v4
保存。 - firewalld/UFW:规则自动保存。
- iptables:规则重启失效,需用
- 诊断工具:
sudo ss -tuln # 查看实际监听的端口(辅助验证防火墙是否生效)
工具 | 适用系统 | 关键命令 |
---|---|---|
iptables | 旧版系统 | iptables -L -n -v |
firewalld | CentOS/RHEL/Fedora | firewall-cmd --list-all |
UFW | Ubuntu/Debian | ufw status |
nftables | 新版系统(≥2018年) | nft list ruleset |
根据系统类型选择对应工具,若命令未找到,说明该工具未安装(如Ubuntu需手动安装firewalld)。
引用说明:
- iptables 手册页:
man iptables
- firewalld 官方文档:firewalld.org
- UFW 社区指南:Ubuntu Wiki UFW
- nftables 快速参考:nftables wiki
(操作前建议查阅官方文档以获取最新信息。)
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7315.html