在 CentOS 系统中,使用 iptables 屏蔽(封禁)某个 IP 或 IP 段,常见做法如下。下面以 CentOS 6 / 7(iptables 模式) 为主说明。
iptables -I INPUT -s 1.2.3.4 -j DROP
说明:
-I INPUT:插入到 INPUT 链最前面-s 1.2.3.4:来源 IP-j DROP:直接丢弃数据包(不响应)iptables -I INPUT -s 192.168.1.0/24 -j DROP
iptables -I INPUT -s 1.2.3.4 -p tcp --dport 80 -j DROP
iptables -I OUTPUT -d 1.2.3.4 -j DROP
iptables -L -n --line-numbers
查看指定链:
iptables -L INPUT -n --line-numbers
iptables -D INPUT 1
iptables -D INPUT -s 1.2.3.4 -j DROP
service iptables save
或:
iptables-save > /etc/sysconfig/iptables
如果使用的是 iptables-service:
iptables-save > /etc/sysconfig/iptables
systemctl restart iptables
如果系统用的是 firewalld,不建议直接操作 iptables。
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.2.3.4" drop'
firewall-cmd --reload
查看:
firewall-cmd --list-all
✅ 可先测试:
iptables -I INPUT -s 1.2.3.4 -j REJECT
✅ 或设置定时清除规则(防止被锁外面):
sleep 120 && iptables -D INPUT -s 1.2.3.4 -j DROP
| 场景 | 命令 |
|---|---|
| 防暴力破解 | iptables -I INPUT -s 攻击者IP -j DROP |
| 封整个国家段 | 使用 CIDR |
| 只封 TCP | -p tcp |
| 只封某端口 | --dport 22 |
如果你愿意,可以告诉我:
我可以帮你给出最安全、最合适的封 IP 方案。