直接用 iptables -I INPUT -s 恶意IP -j DROP 即可立即封禁单个IP,-I确保规则优先匹配;需验证规则、保存以防重启失效,并注意防自锁——如封SSH前先放行自身IP。

直接用 iptables -I INPUT -s 恶意IP -j DROP 就能生效,但必须注意规则顺序、保存机制和防自锁——否则可能把自己关在外面。
快速封禁单个恶意 IP
最常用也最直接的方式是插入一条丢弃规则:
-
立即生效(临时):运行
sudo iptables -I INPUT -s 192.168.1.100 -j DROP。这里-I表示插入到规则最前面,确保优先匹配,比-A(追加到末尾)更可靠。 -
验证是否添加成功:执行
sudo iptables -L INPUT -n --line-numbers,检查输出中第一列是否有对应 IP 的DROP条目。 -
注意协议范围:默认该规则拦截所有协议(TCP/UDP/ICMP)。如只想封 SSH 攻击,可加限定:
sudo iptables -I INPUT -p tcp --dport 22 -s 192.168.1.100 -j DROP。
让封禁长期有效
重启后规则会丢失,必须显式保存:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
CentOS/RHEL 6 或旧版:运行
sudo service iptables save,规则存入/etc/sysconfig/iptables。 -
Debian/Ubuntu:执行
sudo iptables-save > /etc/iptables/rules.v4(需提前创建目录及文件)。 -
CentOS/RHEL 7+(若用 firewalld):不建议混用 iptables 命令,应改用
firewall-cmd --permanent --direct --add-rule ...或停用 firewalld 再操作 iptables。
批量封禁多个 IP 或网段
逐条写命令效率低,推荐两种方式:
-
脚本批量添加:把恶意 IP 列在
badips.txt中(每行一个),然后执行:while read ip; do sudo iptables -I INPUT -s "$ip" -j DROP; done < badips.txt -
用 ipset 高效管理(推荐):适合几十个以上 IP。
先安装:sudo apt install ipset(Debian)或sudo yum install ipset(RHEL);
再建集合:sudo ipset create blacklist hash:net;
导入 IP:sudo ipset add blacklist 192.168.1.100;
最后一条规则即可覆盖全部:sudo iptables -I INPUT -m set --match-set blacklist src -j DROP。
安全操作关键提醒
误操作容易导致失联,务必遵守:
- 封 SSH(22端口)前,先加一条允许你当前 IP 的规则:
sudo iptables -I INPUT -s 你的IP -p tcp --dport 22 -j ACCEPT。 - 不要依赖
iptables -F清空规则,尤其远程操作时;可用sudo iptables -D INPUT -s 某IP -j DROP精准删除。 - 生产环境建议先在本地终端测试,或设置定时自动清理规则(例如用
at命令安排 5 分钟后回滚)。

















