以下是针对 183.7.0.0/16 封禁 24 小时的操作步骤:
1. 添加封禁规则
# 封禁 183.7.0.0/16 的所有入站流量 sudo iptables -I INPUT -s 183.7.0.0/16 -j DROP # 封禁 183.7.0.0/16 的所有出站流量(可选) sudo iptables -I OUTPUT -d 183.7.0.0/16 -j DROP
2. 保存 iptables 规则(确保重启后不丢失)
# 对于 CentOS/RHEL/Rocky Linux sudo service iptables save # 或 sudo /sbin/iptables-save # 对于 Ubuntu/Debian sudo apt-get install iptables-persistent sudo netfilter-persistent save
3. 设置定时解封(24小时后自动解除)
使用 at 命令
# 安装 at(如果尚未安装) sudo apt-get install at # Ubuntu/Debian sudo yum install at # CentOS/RHEL # 设置 24 小时后执行解封 echo "sudo iptables -D INPUT -s 183.7.0.0/16 -j DROP && sudo iptables -D OUTPUT -d 183.7.0.0/16 -j DROP" | at now + 24 hours
命令结构分解
echo "sudo iptables -D INPUT -s 183.7.0.0/16 -j DROP && sudo iptables -D OUTPUT -d 183.7.0.0/16 -j DROP" | at now + 24 hours
1. echo 部分
echo "sudo iptables -D INPUT -s 183.7.0.0/16 -j DROP && sudo iptables -D OUTPUT -d 183.7.0.0/16 -j DROP"
- 作用:输出字符串到标准输出
- 输出内容:两条 iptables 命令用 && 连接
2. 管道符 |
- 作用:将 echo 命令的输出作为 at 命令的输入
- 效果:相当于手动在 at 交互界面中输入这些命令
3. at 部分
at now + 24 hours
- 作用:设置一个 24 小时后执行的一次性任务
- 时间格式:now + 24 hours 表示从当前时间算起 24 小时后
4. 命令内容详解
第一条命令:
sudo iptables -D INPUT -s 183.7.0.0/16 -j DROP
-D INPUT
:从 INPUT 链中删除规则-s 183.7.0.0/16
:指定源 IP 段-j DROP
:丢弃数据包- 作用:解除对 183.7.0.0/16 入站流量的封禁
第二条命令:
sudo iptables -D OUTPUT -d 183.7.0.0/16 -j DROP
-D OUTPUT
:从 OUTPUT 链中删除规则-d 183.7.0.0/16
:指定目标 IP 段- 作用:解除对 183.7.0.0/16 出站流量的封禁
连接符 &&
- 作用:逻辑与操作,只有第一条命令执行成功后才会执行第二条
- 好处:如果第一条命令失败(规则不存在),不会执行第二条
完整执行流程
<0l>
sudo iptables -D INPUT -s 183.7.0.0/16 -j DROP
sudo iptables -D OUTPUT -d 183.7.0.0/16 -j DROP
0l>
4. 验证规则
# 检查是否添加成功 sudo iptables -L INPUT -n | grep 183.7.0.0 sudo iptables -L OUTPUT -n | grep 183.7.0.0 # 查看所有 iptables 规则 sudo iptables -L -n