在 CentOS 6 及更早版本 中,默认使用 iptables 作为防火墙;而在 CentOS 7/8 中,默认使用 firewalld,但 iptables 仍然存在。下面分别说明如何查看 iptables 状态。
service iptables status
或
/etc/init.d/iptables status
输出示例:
Table: filter
Chain INPUT (policy ACCEPT)
...
iptables -L -n -v
常用参数说明:
-L:列出规则-n:不解析域名(更快)-v:显示详细信息--line-numbers:显示规则编号示例:
iptables -L INPUT -n -v --line-numbers
systemctl status iptables
如果未安装 iptables-services,可能会提示:
Unit iptables.service could not be found.
CentOS 7/8 默认使用 firewalld,iptables 只是一个后端。
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
yum install -y iptables-services
systemctl enable iptables
systemctl start iptables
无论是否启用 iptables 服务,都可以直接查看:
iptables -L -n -v
或查看 NAT 表:
iptables -t nat -L -n -v
iptables -L | wc -l
如果大于 0,说明存在规则(即使服务未显示“running”)
systemctl is-enabled iptables
| 目的 | 命令 |
|---|---|
| 查看 iptables 规则 | iptables -L -n -v |
| 查看某条链 | iptables -L INPUT -n -v |
| 查看服务状态 | systemctl status iptables |
| 查看 firewalld 状态 | systemctl status firewalld |
| NAT 表 | iptables -t nat -L -n -v |
如果你愿意,可以告诉我:
我可以给你更针对性的命令或排查步骤。