香港/韩国云服务器、独立服务器租用

使用 ipset+iptables封禁大量IP

自营机房/高防服务器/高防VPS/美国高防/洛杉矶VPS/洛杉矶高防服务器

配置过程

1.安装ipset

sudo apt update && sudo apt install ipset –y

2.创建 IP 集合(命名为 blocklist)

sudo ipset create blocklist hash:ip hashsize 65536 maxelem 500000

3.批量添加 IP 到集合(假设 IP 列表在 logs_ip.log 中):

while read ip; do sudo ipset add blocklist $ip; done < logs_ip.log

4.创建 iptables 规则引用集合:

sudo iptables -I INPUT -m set --match-set blocklist src -j DROP
sudo iptables -I FORWARD -m set --match-set blocklist src -j DROP

5.持久化配置(重启后生效):

sudo ipset save blocklist > /etc/ipset.conf
sudo apt install iptables-persistent -y
sudo netfilter-persistent save

验证封禁是否生效

1.检查 ipset 内容

sudo ipset list blocklist | head -n 10  # 查看前10个IP

2.测试封禁效果

ping -c 1 被封禁的IP
curl -v --connect-timeout 5 http://被封禁的IP

3.解锁IP

sudo ipset del blocklist 1.2.3.4  # 解除单个IP
sudo ipset flush blocklist        # 清空整个集合(慎用!)

4.性能监控

watch -n 1 "sudo ipset list blocklist | grep 'Number of entries'"

后续追加封禁新IP

1. 查看当前已封禁的 IP 集合

sudo ipset list blocklist  # 替换为你的ipset名称

确认现有集合的 名称、类型(如 hash:ip)和 已有IP列表。

2. 临时追加单个 IP

sudo ipset add blocklist 1.2.3.4  # 替换为要封禁的IP

即时生效,无需重启服务。

3. 批量追加 IP(从文件导入)

假设新 IP 列表在 new_ips.txt 中(每行一个 IP):

while read ip; do sudo ipset add blocklist "$ip"; done < new_ips.txt

4. 验证新 IP 是否已加入集合

sudo ipset test blocklist 1.2.3.4  # 测试IP是否在集合中
sudo ipset list blocklist | tail -n 5  # 查看最后5个IP

5. 持久化保存(重启后依然有效)

sudo ipset save blocklist > /etc/ipset.conf
sudo netfilter-persistent save  # 适用于Debian/Ubuntu

或手动保存:

sudo ipset save > /etc/ipset.rules

6.更方便的大批量追加IP

直接编辑 /etc/ipset.conf 后重新加载(适合成千上万个IP):

sudo nano /etc/ipset.conf  # 手动添加IP
sudo ipset restore < /etc/ipset.conf  

备份/导出规则

sudo iptables-save > ~/iptables_backup.txt
sudo ipset save > ~/ipset_backup.txt

恢复/导入规则

sudo iptables-restore < ~/iptables_backup.txt
sudo ipset restore < ~/ipset_backup.txt

注意:恢复会覆盖原来已有的规则,恢复规则重启后会失效,为了使规则在重启后仍然有效,需要将恢复后的规则保存到 /etc/ipset.conf 文件中。

sudo ipset save > /etc/ipset.conf

如果系统使用 iptables-persistentnetfilter-persistent,则运行 sudo netfilter-persistent save 确保 iptables 规则也加载 ipset 集合

本站QQ群:683851361,联系我:zrblog@qq.com

便宜VPS/10美元VPS/洛杉矶、圣何塞等多个机房