在 Debian 系统中,常用的防火墙工具是 iptables(传统)和 nftables(新一代,推荐)。下面分别介绍几种常见方式来禁止(封禁)某个 IP。
sudo iptables -A INPUT -s 1.2.3.4 -j DROP
说明:
-A INPUT:追加到 INPUT 链-s 1.2.3.4:来源 IP-j DROP:直接丢弃数据包(不返回任何信息)sudo iptables -A INPUT -s 1.2.3.4 -p tcp --dport 22 -j DROP
sudo iptables -L -n
先查看规则编号:
sudo iptables -L INPUT --line-numbers
删除第 N 条规则:
sudo iptables -D INPUT N
Debian 11 之前:
sudo apt install iptables-persistent
sudo netfilter-persistent save
sudo apt update
sudo apt install nftables
sudo systemctl enable nftables
sudo nft add table inet filter
sudo nft add rule inet filter input ip saddr 1.2.3.4 drop
sudo nft list ruleset
sudo nft list ruleset > /etc/nftables.conf
sudo apt install ufw
sudo ufw enable
sudo ufw deny from 1.2.3.4
sudo ufw status numbered
sudo ufw delete NUM
| 方式 | 是否重启失效 |
|---|---|
| iptables 未保存 | 是 |
| iptables + iptables-persistent | 否 |
| nftables | 否 |
| UFW | 否 |
iptables -A INPUT -s 1.2.3.4 -j REJECT
测试后再改为 DROP如果你愿意,可以告诉我:
我可以给你更精确的配置方案。