You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过bash自动删除带# do not delete注释的CSF拦截IP条目

CSF删除带# do not delete注释IP的解决方案

原生强制删除参数

CSF官方已经提供了强制删除的功能,无需手动编辑配置文件,使用-dfr参数即可绕过do not delete的限制删除指定IP,示例命令如下:

# 单条IP强制删除
csf -dfr 1.1.1.1

执行上述命令后不会再触发set as "do not delete" - not removed的报错。

批量自动删除脚本

如果需要批量删除数百条带该注释的IP,可以使用以下bash脚本处理,操作前会自动备份配置文件,避免误操作:

#!/bin/bash
# 要求root权限执行
if [ "$(id -u)" -ne 0 ]; then
    echo "请使用root权限执行该脚本"
    exit 1
fi
# 备份原始csf.deny配置
DENY_FILE="/etc/csf/csf.deny"
BAK_FILE="${DENY_FILE}.bak.$(date +%Y%m%d%H%M%S)"
cp "$DENY_FILE" "$BAK_FILE"
echo "已备份原始配置到${BAK_FILE}"
# 提取所有带# do not delete注释的有效IP,批量强制删除
grep ' # do not delete' "$DENY_FILE" | grep -v '^#' | awk '{print $1}' | while read -r ip; do
    echo "正在删除IP:${ip}"
    csf -dfr "$ip"
done
# 重载CSF规则使配置生效
csf -r
echo "批量删除操作完成,可通过csf -g <IP>命令验证删除结果"

旧版本CSF兼容方案

如果你的CSF版本过低不支持-dfr参数,可以直接修改配置文件批量删除对应条目:

#!/bin/bash
if [ "$(id -u)" -ne 0 ]; then
    echo "请使用root权限执行该脚本"
    exit 1
fi
DENY_FILE="/etc/csf/csf.deny"
BAK_FILE="${DENY_FILE}.bak.$(date +%Y%m%d%H%M%S)"
cp "$DENY_FILE" "$BAK_FILE"
echo "已备份原始配置到${BAK_FILE}"
# 直接删除所有带# do not delete后缀的条目
sed -i '/ # do not delete$/d' "$DENY_FILE"
# 重载规则
csf -r
echo "批量删除操作完成"

注意事项

  • 所有操作均需要root权限执行
  • 脚本自动备份的配置文件可在误操作后用于恢复,执行完毕确认无问题后再手动删除备份即可
  • 可执行csf -g 待验证IP确认对应IP是否已经从封禁列表中移除

内容的提问来源于stack exchange,提问作者Azimah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:48:02