在 CentOS 中,你可能会遇到“iptables 不支持 / 用不了 / 命令无效”的情况,这并不是 iptables 本身被移除,而是系统默认防火墙机制发生了变化。常见原因主要有下面几种:
从 CentOS 7 开始:
iptables 服务不再是默认启用的iptables 命令仍然存在,但规则由 firewalld 管理systemctl status iptables
# 提示:Unit iptables.service could not be found
如果你确实想用 iptables,而不是 firewalld:
# 关闭 firewalld
systemctl stop firewalld
systemctl disable firewalld
# 安装 iptables 服务
yum install iptables-services -y
# 启动 iptables
systemctl start iptables
systemctl enable iptables
从 CentOS 8 开始:
iptables 实际是 iptables-nft(兼容层)iptables -V
# 可能显示:iptables v1.8.4 (nf_tables)
iptables 命令仍然可用如果你在 Docker 环境 中:
# 修改 /etc/docker/daemon.json
{
"iptables": false
}
然后重启 Docker(⚠️ 会影响容器网络)
getenforce
你可以补充一下:
cat /etc/redhat-release)我可以直接给你对应可用的配置示例。