高效封禁大量恶意IP
脚本
curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/ip_blacklist.sh && chmod +x ip_blacklist.sh && ./ip_blacklist.sh
快捷键
echo "alias ipban='/root/ip_blacklist.sh'" >> ~/.bashrc
source ~/.bashrc
输入ipban即可启动脚本
开机自动加载规则(脚本已经包含)
sudo cat > /etc/rc.local << 'EOF'
#!/bin/bash
ipset restore -f /etc/ipset.conf
iptables-restore < /etc/iptables/rules.v4
exit 0
EOF
sudo chmod +x /etc/rc.local
检查服务状态
systemctl status rc-local.service
手动查询
# ✅ 查看ipset集合
ipset list blacklist
# ✅ 查看iptables规则是否生效
iptables -L INPUT -n | grep blacklist
# ✅ 检查某个IP是否被封禁
ipset test blacklist 194.110.115.222
# 查看完整的INPUT链规则顺序
iptables -L INPUT -n --line-numbers
其他命令
# 手动添加IP(不用脚本)
ipset add blacklist 1.2.3.4
# 手动删除IP
ipset del blacklist 1.2.3.4
# 清空所有IP
ipset flush blacklist
# 查看黑名单的详细配置(包括类型、大小等)
ipset list blacklist -t
其他命令2
# 查看所有ipset集合
ipset list
# 只看集合名称
ipset list -n
# 查看 blacklist 中有哪些 IP
sudo ipset list blacklist
# 查看 gptbot_blacklist 中有哪些网段
sudo ipset list gptbot_blacklist
# 查看完整的 iptables INPUT 链规则
sudo iptables -L INPUT -n --line-numbers
删除规则
- 查看当前规则集
sudo ipset list -n
- 删除 blacklist
sudo iptables -D INPUT -m set --match-set blacklist src -j DROP
sudo ipset destroy blacklist
- 删除 gptbot_blacklist
sudo iptables -D INPUT -m set --match-set gptbot_blacklist src -j DROP
sudo ipset destroy gptbot_blacklist
- 保存配置
sudo ipset save > /etc/ipset.conf
sudo iptables-save > /etc/iptables.rules
- 验证删除
sudo ipset list -n
sudo iptables -L INPUT -v -n
注意事项
⚠️ 删除顺序很重要:
- 必须先删除使用该集合的 iptables 规则
- 然后才能删除 ipset 规则集
- 否则会报错:
ipset v7.x: Set cannot be destroyed: it is in use by a kernel component