温馨提示×

怎样禁止ip访问debian防火墙

小樊
54
2026-09-05 10:44:02
栏目: 智能运维

在 Debian 上禁止 某个 IP 访问服务器,通常使用 iptablesnftables(取决于系统版本和防火墙管理方式)。下面按常见情况说明。


一、先确认你用的是哪种防火墙

1. 查看是否使用 nftables

sudo nft list ruleset

如果有输出,说明用的是 nftables

2. 查看是否使用 iptables

sudo iptables -L

Debian 10+ 默认很多时候是 nftables,但可能通过 iptables 命令兼容。


二、使用 iptables 禁止某个 IP(最常见)

禁止单个 IP 访问所有端口

sudo iptables -A INPUT -s 1.2.3.4 -j DROP

禁止某个 IP 访问特定端口(如 80)

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

保存规则(非常重要)

sudo apt install iptables-persistent
sudo netfilter-persistent save

三、使用 nftables 禁止 IP(Debian 10+ 推荐)

1. 编辑 nftables 配置

sudo nano /etc/nftables.conf

2. 在 inet filter input 中加入

table inet filter {
    chain input {
        type filter hook input priority 0;
        policy drop;

        # 禁止 IP
        ip saddr 1.2.3.4 drop
    }
}

3. 重新加载

sudo systemctl restart nftables

四、使用 UFW(如果已启用)

禁止 IP

sudo ufw deny from 1.2.3.4

禁止 IP 访问某端口

sudo ufw deny from 1.2.3.4 to any port 22

五、验证是否生效

# iptables
sudo iptables -L -n

# nftables
sudo nft list ruleset

六、常见建议

  • DROP:直接丢弃(对方无响应,更安全)
  • REJECT:明确拒绝(对方知道被拦)
  • 若是SSH 被攻击,建议只限制 IP 或改用密钥登录

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

  • Debian 版本
  • 是否用 UFW / nftables / iptables
  • 要禁止的端口(如 22、80、3306)

我可以给你精确命令

0