温馨提示×

Debian防火墙如何禁止IP

小樊
41
2026-07-06 18:24:41
栏目: 智能运维

在 Debian 系统中,常用的防火墙工具是 iptables(传统)和 nftables(新一代,推荐)。下面分别介绍几种常见方式来禁止(封禁)某个 IP


一、使用 iptables 禁止 IP(传统方式)

1. 禁止单个 IP 访问本机

sudo iptables -A INPUT -s 1.2.3.4 -j DROP

说明:

  • -A INPUT:追加到 INPUT 链
  • -s 1.2.3.4:来源 IP
  • -j DROP:直接丢弃数据包(不返回任何信息)

2. 禁止 IP 访问某个端口(如 22)

sudo iptables -A INPUT -s 1.2.3.4 -p tcp --dport 22 -j DROP

3. 查看当前规则

sudo iptables -L -n

4. 删除规则

先查看规则编号:

sudo iptables -L INPUT --line-numbers

删除第 N 条规则:

sudo iptables -D INPUT N

5. 保存规则(防止重启失效)

Debian 11 之前:

sudo apt install iptables-persistent
sudo netfilter-persistent save

二、使用 nftables(Debian 10+ 推荐)

1. 安装 nftables

sudo apt update
sudo apt install nftables
sudo systemctl enable nftables

2. 创建表

sudo nft add table inet filter

3. 添加禁止 IP 规则

sudo nft add rule inet filter input ip saddr 1.2.3.4 drop

4. 查看规则

sudo nft list ruleset

5. 永久保存规则

sudo nft list ruleset > /etc/nftables.conf

三、使用 UFW(适合新手,基于 iptables)

1. 安装并启用 UFW

sudo apt install ufw
sudo ufw enable

2. 禁止 IP

sudo ufw deny from 1.2.3.4

3. 查看规则

sudo ufw status numbered

4. 删除规则

sudo ufw delete NUM

四、临时封禁 vs 永久封禁

方式 是否重启失效
iptables 未保存
iptables + iptables-persistent
nftables
UFW

五、常见建议

  • 不要把自己 IP 封掉(尤其是 SSH)
  • 建议先用:
    iptables -A INPUT -s 1.2.3.4 -j REJECT
    
    测试后再改为 DROP
  • 生产环境推荐 nftables

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

  • Debian 版本
  • 是封 SSH、网站还是全部端口
  • 是否需要自动封禁(如 fail2ban)

我可以给你更精确的配置方案。

0