温馨提示×

怎样屏蔽CentOS iptables IP

小樊
39
2026-08-03 00:48:20
栏目: 智能运维

在 CentOS 系统中,使用 iptables 屏蔽(封禁)某个 IP 或 IP 段,常见做法如下。下面以 CentOS 6 / 7(iptables 模式) 为主说明。


一、临时屏蔽 IP(重启后失效)

1️⃣ 屏蔽单个 IP 访问本机

iptables -I INPUT -s 1.2.3.4 -j DROP

说明:

  • -I INPUT:插入到 INPUT 链最前面
  • -s 1.2.3.4:来源 IP
  • -j DROP:直接丢弃数据包(不响应)

2️⃣ 屏蔽 IP 段(CIDR)

iptables -I INPUT -s 192.168.1.0/24 -j DROP

3️⃣ 仅屏蔽某个端口(如 80)

iptables -I INPUT -s 1.2.3.4 -p tcp --dport 80 -j DROP

4️⃣ 屏蔽出站 IP(本机访问对方)

iptables -I OUTPUT -d 1.2.3.4 -j DROP

二、查看当前 iptables 规则

iptables -L -n --line-numbers

查看指定链:

iptables -L INPUT -n --line-numbers

三、删除已屏蔽的 IP

1️⃣ 根据规则编号删除

iptables -D INPUT 1

2️⃣ 按条件删除

iptables -D INPUT -s 1.2.3.4 -j DROP

四、永久保存 iptables 规则(非常重要)

✅ CentOS 6

service iptables save

或:

iptables-save > /etc/sysconfig/iptables

✅ CentOS 7(iptables 服务方式)

如果使用的是 iptables-service

iptables-save > /etc/sysconfig/iptables
systemctl restart iptables

五、CentOS 7 使用 firewalld 的情况(常见)

如果系统用的是 firewalld,不建议直接操作 iptables。

屏蔽 IP(firewalld)

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.2.3.4" drop'
firewall-cmd --reload

查看:

firewall-cmd --list-all

六、推荐:防止误封自己的 IP

✅ 可先测试:

iptables -I INPUT -s 1.2.3.4 -j REJECT

✅ 或设置定时清除规则(防止被锁外面):

sleep 120 && iptables -D INPUT -s 1.2.3.4 -j DROP

七、常见封 IP 场景示例

场景 命令
防暴力破解 iptables -I INPUT -s 攻击者IP -j DROP
封整个国家段 使用 CIDR
只封 TCP -p tcp
只封某端口 --dport 22

如果你愿意,可以告诉我:

  • ✅ CentOS 版本
  • ✅ 是否被攻击(SSH / HTTP / DDoS)
  • ✅ 是否使用 firewalld / 云服务器

我可以帮你给出最安全、最合适的封 IP 方案

0