可通过iptables、nftables、tcp wrappers、fail2ban或云平台安全组五种方式实现linux服务器ip黑名单:iptables添加drop规则并保存;nftables在配置文件中写入drop语句并加载;tcp wrappers通过/etc/hosts.deny拒绝服务访问;fail2ban基于日志自动封禁恶意ip;云服务器则需在控制台配置安全组拒绝规则。

如果您希望阻止某个或某些IP地址访问Linux服务器,可以通过配置防火墙规则实现IP黑名单。以下是几种常用且有效的实现方法:
一、使用iptables添加拒绝规则
iptables是Linux系统中广泛使用的传统防火墙工具,可通过在INPUT链中插入DROP规则来阻止指定IP的入站连接。
1、执行命令添加拒绝规则:sudo iptables -A INPUT -s 192.168.1.100 -j DROP
2、保存当前iptables规则(避免重启后失效):sudo iptables-save > /etc/iptables/rules.v4(Debian/Ubuntu)或sudo service iptables save(CentOS 6)
3、验证规则是否生效:sudo iptables -L INPUT -n --line-numbers
二、使用nftables配置黑名单
nftables是iptables的现代替代方案,语法更简洁、性能更优,适用于较新版本的Linux发行版(如CentOS 8+、Ubuntu 20.04+)。
1、创建或编辑nftables规则文件:sudo nano /etc/nftables.conf
2、在ip filter input链中添加拒绝语句:ip saddr 192.168.1.100 drop
3、加载更新后的规则:sudo nft -f /etc/nftables.conf
4、确认规则已加载:sudo nft list chain ip filter input
三、通过TCP Wrappers限制访问
TCP Wrappers适用于支持libwrap的守护进程(如sshd、vsftpd),通过/etc/hosts.deny文件全局拒绝指定IP。
1、编辑拒绝列表文件:sudo nano /etc/hosts.deny
2、追加拒绝行(格式为服务名:IP地址):sshd:192.168.1.100
3、若需拒绝所有服务,使用通配符:ALL:192.168.1.100
4、确保对应服务的/etc/hosts.allow中未显式允许该IP,否则allow优先级更高
四、使用fail2ban动态封禁IP
fail2ban可监控日志文件(如/var/log/auth.log),自动识别暴力破解等恶意行为,并临时将源IP加入iptables或nftables黑名单。
1、安装fail2ban:sudo apt install fail2ban(Debian/Ubuntu)或sudo yum install fail2ban(CentOS 7)
2、复制默认配置并启用SSH防护:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
3、在jail.local中设置bantime与ignoreip,并确保[sshd]段enabled = true
4、手动封禁某IP:sudo fail2ban-client set sshd banip 192.168.1.100
五、修改云服务商安全组规则(适用于云服务器)
若服务器部署在阿里云、腾讯云或AWS等平台,底层网络层的访问控制通常由安全组实现,该方式独立于操作系统,优先级更高。
1、登录对应云平台控制台,进入ECS实例的安全组配置页面
2、找到入方向规则列表,点击“添加安全组规则”
3、协议类型选择全部或具体协议(如TCP),端口范围填写所需端口,源IP地址填写192.168.1.100/32
4、策略选择拒绝,保存规则










