Linux服务器防火墙黑名单配置核心是阻止特定IP建立新连接,需据所用工具选择方案:iptables适合老系统,用-A INPUT -s IP -j DROP封禁;nftables为现代替代,通过/etc/nftables.conf添加ip saddr IP drop;firewalld支持rich rule动态管理,用firewall-cmd --add-rich-rule封IP。

Linux 服务器防火墙黑名单配置,核心是让特定 IP 无法建立新连接。不同工具实现方式不同,选哪种取决于你系统当前用的防火墙服务(iptables、nftables 还是 firewalld),以及是否需要临时封禁还是长期管理。
iptables:传统可靠,适合稳定环境
适用于 CentOS 7 以前、Debian/Ubuntu 等老版本系统,规则直接生效,但需手动保存。
- 封单个 IP(所有端口):
sudo iptables -A INPUT -s 203.0.113.5 -j DROP - 只封某端口(如 SSH):
sudo iptables -A INPUT -s 203.0.113.5 -p tcp --dport 22 -j REJECT - 保存规则(Debian/Ubuntu):
sudo iptables-save > /etc/iptables/rules.v4 - 保存规则(CentOS/RHEL 6/7):
sudo service iptables save - 查看规则:
sudo iptables -L INPUT -n --line-numbers
nftables:现代替代,语法统一,推荐新系统
Ubuntu 20.04+、CentOS 8+、AlmaLinux/Rocky 9 默认使用 nftables,配置集中、性能更好。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 编辑主配置文件:
sudo nano /etc/nftables.conf - 在
ip filter input链中添加:ip saddr 203.0.113.5 drop - 加载生效:
sudo nft -f /etc/nftables.conf - 确认加载:
sudo nft list chain ip filter input
firewalld:动态管理,适合云服务器和桌面环境
Red Hat 系生态(CentOS 8+/RHEL 8+、Fedora)默认启用,支持 rich rule 和 zone 分区。
- 临时封 IP:
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="203.0.113.5" reject' - 永久封 IP:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.5" reject' - 重载生效:
sudo firewall-cmd --reload - 查看已加规则:
sudo firewall-cmd --list-all
进阶建议:批量封禁与自动防护
手动一条条加不现实,尤其面对扫描或爆破攻击时。
- 用
ipset管理大量 IP:sudo ipset create blacklist hash:ip,再批量导入并关联 iptables 规则 - 部署
fail2ban自动识别日志异常(如 ssh 多次失败),动态加入黑名单 - Web 层可配合 Nginx 的
geo + if或 Apache 的Require not ip做应用级过滤 - 云服务器(阿里云、腾讯云等)务必同步配置安全组——防火墙规则可能被绕过

















