温馨提示×

Debian iptables怎么禁止IP

小樊
87
2026-07-15 09:18:22
栏目: 智能运维

在 Debian 上使用 iptables 禁止(屏蔽)某个 IP,常见做法如下(含临时生效和开机自动生效)。


一、临时禁止单个 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 访问指定端口(如 22)

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

3️⃣ 禁止 本机访问某个 IP

iptables -I OUTPUT -d 1.2.3.4 -j DROP

二、禁止 IP 段(CIDR)

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

三、查看当前规则

iptables -L -n --line-numbers

四、删除已添加的禁止规则

方法 1:按编号删除(推荐)

iptables -L INPUT -n --line-numbers
iptables -D INPUT 1

方法 2:按规则删除

iptables -D INPUT -s 1.2.3.4 -j DROP

五、让规则 开机自动生效(非常重要)

✅ Debian 推荐方式(使用 iptables-persistent)

1️⃣ 安装

apt update
apt install iptables-persistent

中间会提示是否保存当前规则 → 选 Yes

2️⃣ 保存规则

netfilter-persistent save

规则会保存到:

/etc/iptables/rules.v4

3️⃣ 重启验证

reboot
iptables -L -n

六、⚠️ 注意事项(非常重要)

❗ 防止把自己关在外面

建议先加一条 允许自己 SSH

iptables -I INPUT -p tcp --dport 22 -j ACCEPT

❗ 慎用 DROP

更温和的方式(返回拒绝):

iptables -I INPUT -s 1.2.3.4 -j REJECT

七、示例:完整常见安全规则(参考)

iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -s 1.2.3.4 -j DROP

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

  • 禁止访问本机,还是 禁止访问别人
  • 是否用于 防止攻击 / 封禁爬虫 / 防火墙

我可以帮你写一份 完整可用规则配置

0