• 微信
    咨询
    微信在线咨询 服务时间:9:00-18:00
    纵横数据官方微信 使用微信扫一扫
    马上在线沟通
  • 业务
    咨询

    QQ在线咨询 服务时间:9:00-18:00

    选择下列产品马上在线沟通

    纵横售前-老古
    QQ:519082853 售前电话:18950029581
    纵横售前-江夏
    QQ:576791973 售前电话:19906048602
    纵横售前-小李
    QQ:3494196421 售前电话:19906048601
    纵横售前-小智
    QQ:2732502176 售前电话:17750597339
    纵横售前-燕子
    QQ:609863413 售前电话:17750597993
    纵横值班售后
    QQ:407474592 售后电话:18950029502
    纵横财务
    QQ:568149701 售后电话:18965139141

    售前咨询热线:

    400-188-6560

    业务姚经理:18950029581

  • 关注

    关于纵横数据 更多优惠活动等您来拿!
    纵横数据官方微信 扫一扫关注官方微信
  • 关闭
  • 顶部
  • 您所在的位置 : 首页 > 新闻公告 > 网站被攻击后CPU持续100%如何排查?

    网站被攻击后CPU持续100%如何排查?

    在网站运营过程中,服务器CPU持续100%是一种非常严重的异常情况。很多站长发现网站访问变慢、后台无法打开、接口频繁超时,第一时间会认为是服务器配置不足。但实际上,当网站遭受攻击后,CPU长期满载的情况非常普遍。

    网站被攻击后导致CPU100%,原因并不一定只是流量过大,也可能是恶意请求大量消耗PHP、数据库、Nginx进程资源,甚至可能是攻击者利用漏洞植入恶意程序,使服务器长期执行异常任务。因此,面对CPU持续满载问题,不能简单重启服务器,而应该按照流程进行排查,找到真正导致资源消耗的原因。服务器CPU异常占用通常需要结合进程、日志、网络连接等多个方面综合判断。

    一、首先判断CPU100%是否由攻击引起

    服务器CPU突然升高,常见原因包括:

    CC攻击;

    恶意爬虫访问;

    DDoS攻击后的应用压力;

    网站漏洞被利用;

    木马程序运行;

    程序代码异常;

    数据库查询压力过高。

    其中,攻击导致的CPU满载通常具有明显特点。

    例如:

    CPU长期保持90%以上;

    网站访问速度明显下降;

    Nginx或Apache进程数量大量增加;

    PHP-FPM进程持续占满;

    数据库连接数量异常;

    访问日志出现大量重复请求。

    正常用户访问网站时,请求量通常具有规律,例如白天访问高、晚上访问低。而攻击流量往往表现为短时间大量重复访问,访问路径高度集中。

    例如,某企业官网部署在云服务器上,平时CPU使用率约20%左右。某天凌晨开始,服务器CPU持续100%,网站首页打开非常缓慢。管理员检查服务器资源后发现,内存和磁盘没有异常,但Nginx访问日志中出现大量来自不同IP的重复请求,主要集中访问网站搜索接口。

    进一步分析发现,这些请求并非真实用户访问,而是攻击者利用自动化工具不断发送请求,导致PHP程序重复执行,最终拖垮CPU。

    这种情况属于典型的CC攻击导致应用层资源耗尽。

    二、通过服务器进程定位CPU消耗来源

    确认服务器异常后,第一步需要找到是谁占用了CPU。

    Linux服务器可以通过以下方式查看:

    top

    或者:

    htop

    查看当前CPU占用最高的进程。

    重点关注:

    nginx;

    php-fpm;

    mysqld;

    java;

    异常陌生进程。

    如果发现PHP-FPM大量占用CPU,说明可能存在大量动态请求。

    如果MySQL占用CPU较高,需要检查数据库查询。

    如果出现陌生进程持续占用CPU,则需要考虑服务器被植入木马或挖矿程序。

    例如:

    某服务器遭遇攻击后,管理员发现CPU一直100%,通过top查看发现:

    php-fpm占用80%;

    nginx占用10%;

    mysql占用5%。

    进一步检查发现大量PHP请求来自同一个攻击路径,说明问题并不是服务器性能不足,而是恶意请求触发大量PHP计算。

    而另一种情况是:

    某服务器CPU100%,但是nginx和php-fpm占用很低,反而出现一个陌生程序长期占用大量CPU,这种情况则需要重点排查服务器安全问题。

    因此,CPU100%排查的核心原则是:

    先找到消耗资源的进程,再判断进程为什么异常。

    三、分析网站日志,确认攻击入口

    找到Web服务异常后,需要进一步查看网站访问日志。

    Nginx日志通常位于:

    /www/wwwlogs/

    或者:

    /var/log/nginx/

    重点分析:

    访问频率;

    请求路径;

    来源IP;

    User-Agent;

    返回状态码。

    如果发现大量类似请求:

    /login.php
    
    /search.php
    
    /api/
    
    ?id=随机参数
    
    /admin/

    并且访问频率非常高,就需要重点关注。

    例如,一个电商网站遭遇攻击后,服务器CPU持续满载。

    查看日志发现:

    大量IP持续访问商品搜索接口;

    每个请求都会查询数据库;

    短时间产生数万次查询。

    最终导致:

    PHP-FPM进程占满;

    MySQL连接增加;

    CPU持续100%。

    解决方式不是简单增加PHP进程,而是限制异常访问,并优化接口逻辑。

    通过限制搜索接口频率,同时增加缓存机制后,服务器CPU恢复正常。

    四、针对CC攻击进行限制和防护

    如果确认是CC攻击导致CPU满载,需要优先降低无效请求数量。

    第一,可以通过Nginx限制访问频率。

    例如限制单个IP单位时间请求数量:

    limit_req_zone

    通过请求频率控制,让异常访问无法持续消耗服务器资源。

    第二,限制敏感接口访问。

    例如:

    登录页面;

    搜索接口;

    注册接口;

    订单接口。

    这些页面通常需要执行程序逻辑,比普通静态页面消耗更多CPU。

    可以增加:

    访问频率限制;

    验证码验证;

    登录失败限制;

    IP访问控制。

    第三,屏蔽明显异常请求。

    例如:

    大量404扫描;

    异常User-Agent;

    恶意爬虫;

    攻击IP。

    通过防火墙规则或者Web应用防火墙进行拦截,可以减少攻击请求进入服务器。针对网站攻击导致CPU满载的情况,WAF策略、CC防护以及IP黑名单通常是常见处理方式。

    五、检查服务器是否存在后门或恶意程序

    网站被攻击后,除了CPU被请求打满,还需要考虑服务器是否已经被入侵。

    攻击者可能通过漏洞上传:

    木马文件;

    恶意脚本;

    挖矿程序;

    定时任务。

    常见检查方向:

    查看异常进程;

    检查计划任务:

    crontab -l

    检查网站目录:

    find /www -mtime -2

    查看最近修改文件。

    例如:

    某服务器遭受攻击后,管理员发现即使停止网站访问,CPU仍然保持100%。

    进一步排查发现,服务器中存在一个隐藏程序,并且通过定时任务自动启动。

    删除异常程序并修复漏洞后,CPU才恢复正常。

    这说明,网站攻击后的CPU异常,并不一定都是流量问题,也可能是服务器已经被控制。

    六、优化程序和数据库,降低攻击带来的影响

    即使做好攻击防护,如果网站程序本身性能较差,也容易在攻击过程中出现CPU满载。

    因此,需要同步优化业务程序。

    主要方向包括:

    优化SQL查询;

    增加数据库索引;

    减少重复计算;

    增加页面缓存;

    优化PHP代码执行效率。

    例如:

    一个资讯网站受到CC攻击时,大量访问文章搜索功能。

    由于搜索没有缓存,并且数据库没有索引,每一次请求都会扫描大量数据。

    即使攻击请求数量不是特别大,也会快速消耗CPU。

    优化数据库索引,并增加搜索缓存后,单次请求消耗降低,服务器抗攻击能力明显提升。

    七、建立长期监控机制避免重复故障

    网站攻击后的恢复并不代表问题结束。

    很多网站第一次被攻击后,通过封禁IP或者重启服务器暂时恢复,但由于没有完善防护,之后仍然可能再次出现CPU100%。

    建议建立长期监控:

    CPU使用率监控;

    网络流量监控;

    异常请求报警;

    PHP-FPM状态监控;

    数据库慢查询监控。

    当CPU出现异常趋势时,可以提前发现问题,而不是等网站完全打不开后再处理。

    总结

    网站被攻击后CPU持续100%,排查重点不是盲目升级服务器配置,而是找到真正消耗资源的原因。

    处理过程应该按照:

    检查CPU占用进程;

    分析网站访问日志;

    判断攻击类型;

    限制异常请求;

    检查服务器安全;

    优化程序性能;

    建立长期监控。

    如果是CC攻击,需要重点防御恶意请求;如果是漏洞入侵,则需要清理异常程序并修复安全漏洞;如果是程序性能问题,则需要优化代码和数据库。

    只有建立完善的服务器安全体系,才能减少攻击对网站业务的影响,让服务器在复杂网络环境下保持稳定运行。

    纵横云服务器租赁,欢迎随时联系,客服联系方式:QQ3494196421,手机微信19906048601。



    最新推荐


    微信公众帐号
    关注我们的微信