在 CentOS 中替换默认防火墙(通常是 firewalld)为 iptables,可以按以下步骤操作。请根据你的 CentOS 版本选择对应方案。
systemctl stop firewalld
systemctl disable firewalld
yum install -y iptables-services
systemctl start iptables
systemctl enable iptables
iptables -F
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -j DROP
保存规则:
service iptables save
# 或
iptables-save > /etc/sysconfig/iptables
⚠️ 注意:CentOS 9 已不再推荐使用 iptables,而是使用 nftables。
firewall-cmd --state
nft list ruleset
systemctl stop firewalld
systemctl disable firewalld
然后直接使用 nftables:
systemctl enable nftables
systemctl start nftables
配置示例(nftables):
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; }
nft add rule inet filter input tcp dport 22 accept
保存规则:
nft list ruleset > /etc/nftables.conf
| 系统版本 | 推荐防火墙 |
|---|---|
| CentOS 6 | iptables |
| CentOS 7 | firewalld / iptables |
| CentOS 8 | firewalld |
| CentOS 9+ | ✅ nftables |
✅ 官方建议:新系统优先使用 firewalld 或 nftables,而非直接退回到 iptables。
cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
如果你愿意,我可以:
你用的是 CentOS 几?