在服务器上封攻击者IP,最直接有效的做法就是通过防火墙实时拦截,同时结合WAF规则和云安全组做多层封禁。
我们不讲虚的,直接把服务器被攻击时,从判断到封禁的完整操作路径拆开揉碎,无论你是用宝塔面板的站长,还是直接SSH连服务器的运维,看完都能上手操作。
快速判断服务器是否正在被攻击
动手封IP之前,先确认是不是真被打了,很多情况是程序Bug或者爬虫导致负载高,盲目封IP反而误伤正常用户。
查看实时连接数,一条命令就能看出端倪:
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -20
如果看到某个IP的连接数成百上千,远超正常用户的访问频率,基本可以断定是攻击源,常见攻击类型无非两种:
- CC攻击:大量请求耗尽服务器资源,表现为CPU满载、连接数飙升
- DDoS攻击:流量型攻击直接打满带宽,服务器响应缓慢甚至宕机
业内专家指出,超过80%的服务器入侵事件都源于未及时封禁的异常IP,确认攻击源后,立即执行封禁操作,不要犹豫。
linux服务器封禁ip命令有哪些
Linux服务器封IP的命令根据防火墙版本不同有差异,看清楚自己的系统再操作。
CentOS 7+ / RHEL 系:firewalld
这是目前服务器最主流的防火墙方案,封禁单个IP:
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=1.2.3.4 reject" firewall-cmd --reload
封禁一个IP段:
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=1.2.3.0/24 reject" firewall-cmd --reload
查看已封禁列表:
firewall-cmd --list-all
解封命令,把reject换成remove:
firewall-cmd --permanent --remove-rich-rule="rule family=ipv4 source address=1.2.3.4 reject" firewall-cmd --reload
Debian / Ubuntu 系:ufw
简洁直观,适合不熟悉命令行的用户:
ufw deny from 1.2.3.4 ufw deny from 1.2.3.0/24 ufw status numbered
删除规则时,先查看序号再删除:
ufw status numbered ufw delete 3
通用方案:iptables
老牌防火墙工具,兼容性最强:
iptables -I INPUT -s 1.2.3.4 -j DROP iptables -I INPUT -s 1.2.3.0/24 -j DROP
保存规则,防止重启失效:
service iptables save
查看封禁列表:
iptables -L INPUT -n --line-numbers
删除指定行号规则:
iptables -D INPUT 5
防火墙封ip和不封的区别到底在哪
很多新手会问,封了IP攻击不就停了吗?实际情况没那么简单。
封IP的效果差异取决于攻击类型和封禁层面:
| 对比维度 | 仅封服务器防火墙 | 配合云安全组封禁 | 配合CDN/WAF封禁 |
|---|---|---|---|
| 生效速度 | 秒级 | 秒级 | 分钟级 |
| 消耗服务器资源 | 仍有少量消耗 | 不消耗 | 不消耗 |
| 防御CC攻击 | 部分有效 | 有效 | 更有效 |
| 防御大流量DDoS | 无效 | 无效 | 有效 |
| 误封风险 | 较高 | 中等 | 较低 |
简单理解:防火墙封IP是在家门口拦人,云安全组是在小区门口拦人,WAF是在街道路口就拦人,层级越靠前,服务器压力越小。
云服务器安全组怎么封IP
如果你用的是简米云、酷番云、华为云这类云服务器,安全组是比系统防火墙更优先的拦截层,攻击流量到达系统防火墙之前,安全组就已经处理掉了。
以简米云为例的操作路径:
- 登录控制台,进入ECS实例列表
- 点击实例ID,找到”安全组”选项卡
- 点击”配置规则”→”入方向”→”手动添加”
- 协议选择”全部”,源地址填写攻击IP,策略选择”拒绝”
添加完成后立即生效,无需重启服务器,这个操作比在系统里封IP更省资源,因为流量根本没到服务器就被丢弃了。
酷番云用户则是进入轻量应用服务器或CVM控制台,找到”防火墙”页面直接添加规则,操作逻辑类似。
宝塔面板可视化封IP操作
用宝塔面板的站长占了相当大比例,面板自带的安全功能可以免命令封IP。
进入宝塔面板后台:
- 左侧菜单找到”安全”或”防火墙”(不同版本位置略有差异)
- 点击”防火墙”页面,选择”端口规则”或”IP规则”选项卡
- 在”添加规则”中填入攻击者IP,选择”拒绝”
- 保存后即时生效
宝塔面板还提供入侵防御插件,能自动识别并拦截频繁访问的可疑IP,据面板官方统计,启用该功能后能够拦截较大比例的低级扫描和暴力破解攻击。
永久封禁攻击IP的自动化方案
手动封IP治标不治本,攻击源经常换IP继续打,更省心的方案是用工具自动封禁。
Fail2ban:自动封禁暴力破解IP
安装和基础配置:
yum install fail2ban -y # CentOS apt install fail2ban -y # Ubuntu
配置SSH防护规则:
vi /etc/fail2ban/jail.local [sshd] enabled = true port = ssh filter = sshd logpath = /var/log/secure maxretry = 3 bantime = 86400
配置含义:连续输错3次密码,封禁这个IP一天,设置好后启动服务:
systemctl restart fail2ban systemctl enable fail2ban
脚本自动拉黑异常IP
对于CC攻击,可以写一个简单的Shell脚本,每分钟检查一次连接数,超过阈值自动拉黑:
#!/bin/bash
while true; do
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | while read count ip; do
if [ "$count" -gt 200 ]; then
iptables -I INPUT -s $ip -j DROP
echo "$ip 已封禁" >> /var/log/block_ip.log
fi
done
sleep 60
done
脚本判断逻辑:单IP连接数超过200就执行封禁并记录日志,配合crontab可实现长期运行。
网站被cc攻击怎么处理最有效
CC攻击的IP经常轮换,靠封IP单打独斗很被动,行业共识认为,多维度配合才是最优解。
- 第一层:CDN加速隐藏源站IP,让攻击者找不到服务器真实地址
- 第二层:WAF规则拦截高频访问特征,自动封禁触发阈值的IP
- 第三层:安全组黑名单同步封禁,服务器防火墙作为兜底
如果你经常被CC攻击困扰,单靠手动封IP会非常疲惫,国内主流云厂商的DDoS高防产品,每月费用从几百到几千元不等,按防御峰值计费,相比服务器被打瘫造成的业务损失,这笔投入往往是值得的。
对于预算有限的小站点,至少开启CDN的CC防护功能,设置单IP每分钟访问频率阈值,超过自动拦截。
封IP的注意事项和常见误区
频繁解封会导致封禁失效
有些站长封了IP过一会儿又解封,看攻击停了就掉以轻心,攻击者往往观察到你解封后立刻继续打,建议至少保持封禁24小时以上,确认攻击完全停止再解除。
封IP前先确认是否误伤
办公网络出口IP通常是共享的,一个公司可能几十人共用一个公网IP,封禁这类IP会连带封掉正常访客,封禁前可以通过该IP的访问日志,看看是否有正常页面的访问记录。
封禁后仍要排查服务器是否被植入后门
封IP只解决当前攻击,不解决安全隐患,攻击者可能已经在服务器上留了后门程序,清理干净才是根本,有条件的跑一遍杀毒软件,或者找专业运维做一次安全巡检。
封攻击者IP相关问题解答
服务器被攻击时封IP会影响网站收录吗
封禁攻击IP不影响搜索引擎的正常抓取,搜索引擎蜘蛛有独立的IP段,不会被误封,但如果封禁了CDN节点的IP,可能会导致部分地区用户访问异常,进而影响这些区域的搜索爬取。
防火墙封了IP对方还能访问网站吗
取决于封禁方式,使用reject策略时,对方会收到连接被拒绝的提示;使用drop策略时,对方请求直接丢弃,表现为超时,无论哪种方式,对方都无法再正常访问你的网站内容。
封IP和封UDP端口哪个对防御DDoS更有效
流量型DDoS攻击中,UDP反射放大攻击是常见手段,封禁UDP端口能拦截这类攻击,但TCP SYN Flood攻击需要靠封IP和调整内核参数配合。防御DDoS的核心是上游流量清洗,服务器层面封禁只是辅助手段。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/782145.html


