尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Linux服务器DDoS攻击排查与应急处理实战指南

Linux服务器DDoS攻击排查与应急处理实战指南 半夜两点被电话吵醒网站打不开SSH连上去敲命令都一卡一卡的这种场景做过运维的朋友多少都经历过。第一反应是查负载、看流量、翻日志折腾一圈最后发现根本不是代码问题而是流量把入口堵死了——这就是典型的DDoS攻击现场。这篇文章我会从Linux系统侧出发完整梳理一遍“如何判断服务器是不是被DDoS打了”从最基础的连接状态分析到抓包取证、再到应急止血和长效监控全部是基于我自己踩过的坑整理出来的实操经验。无论是刚接触服务器的新手还是被领导半夜叫起来处理故障的运维老手这篇内容都可以直接照着排查。1. 接到异常反馈后的第一反应先分清“是不是DDoS”很多人一听到网站打不开、服务器卡顿第一反应就是“被DDoS了”这个结论下得太快。真实环境里发布配置错误、数据库慢查询、磁盘写满、甚至上游机房链路抖动表现出来的症状和DDoS非常像。我在这一节先把判断思路理清楚后面再讲具体命令。1.1 业务侧的症状哪些现象在指向流量攻击被DDoS攻击时最典型的表现是服务“通但不快”或者“完全不通”。举个例子用户打开网页时浏览器一直转圈最终提示连接超时API接口响应时间从原来的几十毫秒飙升到几十秒远程SSH登录也出现明显延迟输入一个字符要等一两秒才回显。这些现象的本质是网络链路或系统协议栈被大量无用数据包占满正常的业务请求反而挤不进去。但这里有个容易迷惑的地方数据库连接池耗尽、Redis缓存穿透造成后端压力过大同样会让接口变慢、页面打不开。所以业务侧症状只是第一层线索不能作为最终判断依据。真正要确认必须登录系统看网络连接、流量带宽、系统负载这几项硬指标。另外还有一个常见场景——云服务器厂商的监控面板会先报警比如“出带宽达到X Gbps”这种时候基本可以八九不离十地判断是带宽型攻击了。1.2 登录系统的第一眼观察负载、CPU与网络状态的权衡登录服务器后我建议按这个顺序扫一眼uptime看系统负载free -h看内存top看CPU占用然后再看网络流量。有一个重点容易被忽略——DDoS攻击分很多种SYN Flood这类协议栈攻击会大量消耗CPU中断表现出来是CPU飙升但如果是纯带宽打满型攻击比如UDP FloodCPU可能反而没那么高系统主要瓶颈在网络中断和网卡处理上。我遇到过好几次这样的情况登录上去发现负载只有1.0内存充足CPU也不高但业务就是访问不了。一开始怀疑是程序问题查了半天什么都查不出来最后用iftop一看网卡流量早就跑满了这才意识到是被流量打爆了。所以千万不要只盯着负载和CPU网络层面必须单独检查。如果系统里装了nload或者iftop直接跑起来看实时流量没装的话可以用cat /proc/net/dev看网卡累计流量隔几秒再读一次算出差值就是实时速率。1.3 快速自检清单先排除“自残”再怀疑“被攻击”在跑任何抓包、封IP操作之前先花两分钟过一遍自检清单避免误伤。这几项是我自己总结的排查前必查项最近有没有发布过版本是不是新代码引入了死循环或者内存泄漏数据库慢查询日志有没有暴增连接数是不是被某些慢SQL拖垮了磁盘空间是不是满了df -h看一眼日志分区写满会引发连锁故障。云控制台上的安全组、防火墙规则最近有没有改动有时候是误封了出口IP导致服务异常。上游DNS解析、CDN回源链路是否正常有些地区性的网络故障也会表现为“访问不通”。把这几项快速排除后再动用网络层排查手段。这套“先自查、再外查”的顺序能帮你省掉大量无用功。说句实在话我见过太多人一上来就封IP、调防火墙结果搞了半天是自己服务器上有个脚本把CPU跑满了。2. 用系统自带命令查看连接状态三分钟锁定攻击特征一旦确定不是程序和配置的问题接下来就要钻进系统内部看网络连接了。Linux系统自带命令在这一步非常关键不需要装任何第三方工具就能完成大部分诊断。注意在高负载攻击场景下传统netstat可能会卡住或者输出极慢这时候优先用ss。2.1 netstat/ss统计连接状态每个数字背后的含义执行下面这行命令可以快速统计当前服务器所有TCP连接的状态分布netstat -ant | awk {print $6} | sort | uniq -c | sort -rn输出结果大概长这样8926 SYN_RECV 314 ESTABLISHED 12 TIME_WAIT 5 LISTEN这里面最值得警惕的是SYN_RECV。正常业务服务器的SYN_RECV数量通常是个位数到几十如果瞬间飙到几千甚至上万几乎可以断定是SYN Flood攻击——攻击者发送大量伪造源IP的SYN请求但不完成三次握手把服务器的半连接队列直接塞满。ESTABLISHED数量过高也要注意比如一台普通Web服务器平时只有几百个ESTABLISHED连接突然涨到几万而且来源IP高度集中那多半是CC攻击即用大量真实代理或肉鸡不断建立完整连接来消耗资源。TIME_WAIT多反而通常不用太担心这是主动关闭连接后的正常状态大量短连接业务本来就会积累不少TIME_WAIT。判断核心是看SYN_RECV是否异常暴涨以及ESTABLISHED的源IP分布是否合理。用ss也一样ss -ant | awk {print $1} | sort | uniq -c | sort -rn在高并发场景下ss比netstat快很多因为它直接读取内核socket信息而不是遍历/proc/net故障现场优先用它。2.2 揪出TOP源IP判断攻击源是分散还是集中看完成连接状态分布下一步就是找出“谁在连接我”。用下面这条命令可以统计每个源IP的TCP连接数并按从高到低排列netstat -ntu | awk {print $5} | cut -d: -f1 | sort | uniq -c | sort -nr | head -20输出示例8234 203.0.113.10 156 198.51.100.88 89 192.0.2.45如果排名第一的IP占据了绝对多数的连接数那攻击特征就很明显了。不过现在是分布式攻击为主的时代攻击流量往往分散在上千甚至上万个IP上单看某个IP可能并不突出这时候要结合总连接数和业务基线来判断。比如平时全站总连接数不过两三千现在莫名其妙涨到五万而且这些连接都是短连接、无业务请求那基本可以确定是攻击。另外很多攻击流量的源IP是伪造的你看netstat输出的源IP可能是一堆乱序的、属于不同地区的地址这也是判断依据之一。2.3 连接数异常时先看“谁在连”而不是“谁被打”排查时我会特意提醒自己先搞清楚连接是由内向外发起的还是由外向内进来的。服务器被入侵后变成“肉鸡”向外发起大量连接也会让系统网络层看起来非常异常但这种场景下出方向流量暴涨且目标端口五花八门。DDoS攻击则相反入方向流量暴涨外部连接涌向本机的服务端口比如80、443。用iftop -n看一眼进出方向流量比例或者用ss -ant | grep -c ESTABLISHED配合源端口统计基本就能分清方向。这块补充一个小技巧如果怀疑是出方向异常一定要立刻查一下系统里有没有可疑进程。top看CPU占用靠前的进程ps aux查异常用户启动的进程crontab -l看有没有被人塞了定时任务ls -l /etc/cron*检查计划任务目录。真被植入挖矿木马或者病毒后门系统会像一个“攻击源”一样不断向外部发包这种场景虽然和DDoS不同但也是“系统网络异常”的高频原因。3. 流量、抓包与日志确认攻击类型和攻击路径连接状态能帮你判断“确实是攻击”但要知道“是哪一种攻击”还需要结合流量数据、数据包特征和应用日志。不同类型的DDoS应对思路完全不同比如SYN Flood靠调内核参数能缓解一部分而HTTP Flood必须靠应用层限流和CDN分流。这一节我具体讲怎么看流量、怎么抓包、怎么从日志里找证据。3.1 用iftop和nload实时盯带宽先判断是“带宽打满”还是“连接打满”iftop和nload是两款非常轻量的实时流量监控工具系统没装的话用包管理器装一下就行。nload的界面直观显示进方向和出方向实时带宽适合一眼看出“现在网卡跑到了多少”。iftop则更细能看到每个源IP或目标IP占用的流量大小适合定位“哪个IP在疯狂发包”。实际排查时我会同时开两个窗口一个跑nload看整体带宽一个跑iftop -n -P看具体IP和端口。如果入方向带宽已经打满比如服务器带宽只有100Mbps现在持续跑满那基本属于带宽耗尽型攻击常见是UDP Flood、DNS反射放大等如果带宽还有余量但服务就是卡死那多半是连接耗尽型或应用层攻击目的是占满并发连接数或拖垮应用。这个区分非常关键因为止血策略完全不同带宽型攻击靠黑洞路由或高防清洗连接型攻击靠防火墙限制并发数和内核参数调优。3.2 tcpdump抓包分析看数据包长什么样识别攻击指纹抓包是判定攻击类型的“实锤”手段。一条命令就可以开始抓tcpdump -i eth0 -nn -c 5000 -w /tmp/attack.pcap抓几百上千个包之后用tcpdump -r /tmp/attack.pcap或者Wireshark离线分析重点观察以下几个特征源IP是否大量随机分布分佈非常散乱、无业务规律大概率是伪造源地址攻击。数据包大小是否异常比如UDP包固定为614字节或1024字节具有明显构造痕迹。标志位是否异常TCP包中SYN包占比极高且没有后续ACK包基本可以定位SYN Flood。有没有特定的协议特征比如NTP、SSDP、memcached反射放大攻击源端口会很固定。请求频率和内容是否非法特定URL反复请求、大量非标准User-Agent属于应用层CC。有一个细节值得提抓包文件不要抓太大-c 5000限制抓5000个包就够了一方面方便分析另一方面也避免故障现场存储被写满。抓完包后第一时间做好备份后续追责和溯源都需要原始证据。很多云厂商的“安全事件工单”也会要求你提供抓包文件这个习惯要养成。3.3 不看日志的排查都是猜系统日志与应用日志的交叉验证流量特征再明显也一定要结合日志做交叉验证因为日志里往往记录着攻击的具体路径和手法。查看系统日志tail -100 /var/log/messages # 或者 journalctl -xe --no-pager | tail -100重点关注有没有大量“possible SYN flooding on port 80”这类内核日志。如果有说明内核协议栈已经在丢SYN包了印证了前面的判断。应用日志同样重要比如Nginx的access.log如果发现某个request_uri被反复请求每秒成百上千次甚至带有一堆看起来是随机参数的URL那就是典型的HTTP Flood。再用grep统计一下访问来源grep -oP ^\S /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -20很多攻击会在应用层留下明显的“指纹”比如固定User-Agent、固定URL参数、固定Referer、大量404请求等。把这些指征收进自己的知识库下次再遇到同类型攻击能快速识别这也是安全运营经验的积累。4. 识别常见攻击类型与误判场景别把“真故障”当成“假攻击”DDoS不是只有一种形态。网上教程里常见的分类是体积型攻击、协议型攻击和应用层攻击但落到实际服务器上你要能从现象反推类型。这一节我把各类攻击的关键特征整理成速查表再讲几个容易被误判的真实场景。4.1 常见攻击类型对照速查从现象直推攻击类型攻击类型典型现象判断方法常用应对思路SYN FloodSYN_RECV暴涨CPU软中断升高netstat -ant统计状态tcpdump看大量SYN开启SYN Cookie调大backlog队列UDP Flood入向带宽打满CPU不一定高iftop/nload看流量抓包看UDP包特征防火墙限速联系上游清洗ICMP Floodping延迟变大网络卡顿tcpdump -i eth0 icmp看大量Ping包防火墙丢弃ICMP或限速HTTP FloodCC攻击ESTABLISHED连接暴涨Nginx日志大量重复请求access.log统计URL和UA限流、封禁UA/IP、上WAF或CDN慢速连接攻击Slowloris连接数缓慢上升占用大量连接不释放ss看连接状态多为ESTABLISHED但无数据交互限制单IP并发、调短超时时间说到底每一种攻击都有它的“指纹特征”。判断时不用追求100%精确先分清楚大类止血方案就基本能定了。比如SYN Flood类的协议攻击直接在系统层和防火墙层做限制HTTP Flood类的应用攻击则必须结合Web层防护。Classification这件事做不对后面所有应急操作都可能是白忙活。4.2 容易被误判的“伪DDoS”爬虫、业务高峰和慢请求排查DDoS的过程中最怕的不是攻击太猛而是把正常流量当成攻击。以下三种“伪DDoS”我踩过不止一次坑第一搜索引擎爬虫。某些爬虫在抓取页面时并发会突然升高尤其新站被搜索引擎收录时爬虫会短时间发出大量请求。这时access.log里会出现同一个蜘蛛UA的大量访问看起来很像CC攻击。判断方式很简单——看User-Agent搜索引擎爬虫的UA非常规范比如Googlebot、Baiduspider。真攻击可不会老老实实自己报名字。第二业务高峰期流量突增。电商大促、活动秒杀时流量暴涨是正常现象但监控系统会先报警“连接数剧增”“带宽跑满”。如果没有什么经验很容易误判成DDoS。我的做法是翻一下历史监控数据看当前数值是否远超同期水平。正常业务上涨通常是缓慢爬坡DDoS是断崖式飙升这两种曲线的形态差异非常明显。第三慢请求拖垮服务。如果某个接口本身性能很差一个请求要执行几十秒而前端恰好有重试机制很容易把连接数堆起来。这个时候系统看到的也是“连接数暴涨”但源IP可能就几个流量也不高。先自查应用层性能比急着封IP要靠谱得多。4.3 一个真实的误判复盘从“攻击”到“自愈”的48小时分享一下我自己早期的一次经历。有一次内部系统告警说对外服务连接数异常所有迹象看起来都像DDoSSYN_RECV接近一万服务基本不可用。我当时直接判定被SYN Flood攻击配置了一系列防火墙规则准备封禁结果发现怎么封都没用流量还是源源不断进来。后来仔细抓包才发现根本不是外部攻击而是内网有个应用被写坏了的脚本循环重连每次重连都发起TCP连接。因为是内网IP防火墙规则怎么配都拦不住。后来定位到这台机器停掉脚本后连接数立刻回落。这次经历让我明白一个原则在应急状态下一定要先把“攻击流量从哪儿进来”搞清楚再动手。如果是服务器的公网网卡被打可以放心封IP如果流量本来就在内网横向漂移封公网IP就是无用功。判断来源最简单的方法是iftop -n看到底是哪些IP在大量通信如果清一色是内网IP优先排查内网进程和横向扩散而不是急着跟云厂商报攻击工单。5. 确认被攻击后的应急操作先止血再治本确认系统被DDoS攻击后时间就是金钱。这一节讲应急响应的完整顺序和我在实战里验证过的止血操作从保留证据、内核参数调整到防火墙限速一步步落地。5.1 应急响应的核心顺序快照、取证、限流、封堵被攻击时最容易犯的错误是“上来就封IP”。正确顺序应该是这些第一步先给系统做快照。云平台上直接打快照物理机的话保留抓包文件和关键日志。这一步不为别的就是保留现场后面溯源、追责、保险理赔都要用。第二步抓包取证。根据流量特征决定抓包时长带宽型攻击抓几十秒就够了应用层攻击建议抓久一些保留完整请求样本。第三步评估影响面。是单台机器被打还是整个网段都被打服务是彻底不可用还是只是变慢影响面决定应对级别。第四步开始限流和封堵。从最粗粒度开始比如先封掉攻击源端口然后封高流量IP段最后细化到应用层规则。第五步同步联系云服务商或IDC机房请求上游流量清洗必要时做黑洞路由保其它业务。有一个原则必须坚持应急操作要在权限允许的范围内进行任何操作都要有记录。很多运维在紧急情况下随手敲一堆iptables规则事后自己也搞不清哪条规则干的是什么等攻击结束想清理都不敢动。强烈建议每条规则加注释或者直接用防火墙管理工具如firewalld加描述方便事后回收。5.2 内核参数紧急调优先给系统“松松绑”如果是SYN Flood类型的攻击在防火墙封禁之前可以先调整内核参数让系统协议栈更抗压。以下参数是我在实践中最常用的一组sysctl -w net.ipv4.tcp_syncookies1 sysctl -w net.ipv4.tcp_max_syn_backlog8192 sysctl -w net.ipv4.tcp_synack_retries2 sysctl -w net.ipv4.tcp_abort_on_overflow1 sysctl -w net.core.somaxconn4096简单解释一下这些参数的作用。tcp_syncookies1是开启SYN Cookie机制内核在SYN队列满的时候用Cookie机制响应连接请求不对半连接做实际排队能有效缓解SYN Flood对内存的消耗。tcp_max_syn_backlog是半连接队列的最大长度调大让内核能容纳更多半连接。tcp_synack_retries2是减少SYNACK重试次数避免在无效连接上浪费资源。tcp_abort_on_overflow1是当accept队列溢出时直接重置新连接虽然有一定误伤但在极端情况下能保住服务不“假死”。注意这些参数都是应急手段不能盲目加到生产环境长期运行。比如tcp_abort_on_overflow1在高并发正常业务下会导致部分正常连接被RST影响体验。攻击结束后要评估哪些参数可以保留、哪些要恢复默认。另外调参后建议用sysctl -p重新加载配置并且确认没有拼写错误有些老版本内核参数名可能略有差异用sysctl -a | grep先确认一下。5.3 用iptables/firewalld紧急限速从地址封禁到端口限速如果攻击IP特征明显先做粗粒度的IP封禁iptables -I INPUT -s 203.0.113.10 -j DROP但今天的大多数攻击都是分布式来源单纯封IP效果有限更好的思路是“限速”。用iptables的hashlimit模块可以对单位时间内的连接数和流量做限制比如限制每个源IP每分钟最多建立20个新连接iptables -I INPUT -p tcp --dport 80 -m state --state NEW \ -m hashlimit --hashlimit-name ddos --hashlimit 20/minute \ --hashlimit-burst 50 --hashlimit-mode srcip -j ACCEPT这条规则的意思是每个源IP对80端口每分钟最多允许20个新连接突发上限50个超过的包不匹配这条ACCEPT规则会被后续规则处理。要注意规则顺序iptables是自上而下匹配的把限速ACCEPT放在前面后面加一条默认DROP或者REJECT才能让限速逻辑生效。另一个常用模块是connlimit限制每个源IP的最大并发连接数iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 100 -j REJECT这是“每IP最多100个并发连接”的典型写法。实际数值要根据业务情况来定静态站并发低可设小一些如果Web应用有很多长连接、上传下载阈值要放宽。设置得太紧会误伤正常用户尤其是企业出口NAT后面的用户一个出口IP背后可能是一整层楼的员工这个坑很多人踩过。5.4 应用层防护与流量清洗WAF、CDN和高防的正确用法系统层的操作做完还要考虑应用层防护。如果是Web服务建议接入WAFWeb应用防火墙和CDN让真实源IP隐藏在CDN后面用WAF过滤常见的应用层攻击特征。域名解析切换到高防IP也是常规手段高防机房会在攻击流量进入源站之前做流量清洗把垃圾流量过滤掉只放行正常请求。选择这类方案时核心竞争力是“清洗能力”而不是“功能多不多”。比如一个小型网站选择清洗能力几十Gbps的防护产品已经足够了而视频、游戏类业务动辄被上T的流量攻击必须选大带宽清洗能力的供应商。另外要提醒的是接入CDN/WAF后一定要做好回源IP白名单否则攻击者直接绕过CDN打源站IP防护就白做了。这一步常常被忽略尤其是一些“迁移到CDN就算防护好了”的想法风险非常大。6. 搭建可持续运行的检测监控体系别等被打才想起防御应急只能是“救火”真正要减少损失靠的是平时的监控和防御体系。这一节分享一些我长期在用的监控思路和自动化方法让检测不再依赖人工登录服务器。6.1 写一个简单的DDoS检测脚本监控SYN_RECV和连接数异常用脚本做自动化检测是最轻量、最灵活的方式。下面这个脚本是我在内部环境用过的简化版逻辑清晰适合自己改造#!/bin/bash # 简单的DDoS检测脚本检测SYN_RECV数量和ESTABLISHED总数 SYN_COUNT$(ss -ant | grep -c SYN_RECV) EST_COUNT$(ss -ant | grep -c ESTABLISHED) # 设定阈值根据业务实际情况调整 SYN_THRESHOLD500 EST_THRESHOLD5000 if [ $SYN_COUNT -gt $SYN_THRESHOLD ]; then echo [$(date)] SYN_RECV异常当前数量: $SYN_COUNT /var/log/ddos_check.log # 这里可以接入告警命令比如curl调用企业微信/钉钉机器人 fi if [ $EST_COUNT -gt $EST_THRESHOLD ]; then echo [$(date)] ESTABLISHED异常当前数量: $EST_COUNT /var/log/ddos_check.log fi把它放进crontab每小时执行一次甚至每5分钟执行一次。脚本重点不是复杂而是稳定、不误报。阈值一定要结合自己业务的正常水位来定我在实践中发现很多刚接触监控的朋友容易把阈值设得太低结果告警轰炸最后大家都无视告警了。合理的做法是观察至少一到两周的正常数据取“正常峰值的1.5~2倍”作为告警阈值。6.2 通过定时任务接入告警让脚本变成真正的“盯梢机器人”光把日志写在服务器上是不够的要接入即时告警才能让值班人员第一时间感知。最轻量的做法是让脚本掉用Webhook调用企业微信、钉钉或Slack的机器人接口发一条文本消息到群里。当然国内环境还有更简单的办法就是发邮件配合mailx或者sendmail。告警内容建议包含这些字段时间、服务器公网IP、异常指标比如SYN_RECV数量、当前系统负载、确认操作建议。别小看这个细节故障处理时少一点搜索和猜测就快一点恢复。我自己的经验是一条告警消息里把“发生了什么、严重到什么程度、下一步建议”全部写清楚能大幅缩短应急响应时间。6.3 更完整的开源监控方案Prometheus Grafana的进阶思路如果管理的服务器比较多脚本方案就不够看了。建议部署一套Prometheus node_exporter Grafana的监控体系node_exporter自带的网络、CPU、内存指标可以覆盖大部分检测需求再配合blackbox_exporter做HTTP探活。关键指标可以做成看板比如每秒接收/发送字节数node_network_receive_bytes_total和node_network_transmit_bytes_total的速率TCP连接状态分布node_netstat_Tcp_CurrEstab、node_sockstat_TCP_syn_recv等系统负载和CPU使用率尤其是软中断占比配合Prometheus的告警规则比如“入向流量速率超过1Gbps持续5分钟”就触发告警能做到分钟级发现。这属于“一劳永逸”的投入部署一次能持续用很久。不过需要提醒的是这套体系本身也需要维护监控组件挂了的风险得提前评估关键业务建议加一层外部探活作为兜底。6.4 常态化的预防清单把攻击挡在门外而不是等被打再救预防永远比救火便宜。最后整理一份我日常给团队用的基础安全清单系统层保持内核和补丁更新关闭不需要的服务端口SSH禁用密码登录改用密钥。网络层云安全组或本地防火墙只放行业务需要的端口和来源IP。应用层Web服务接WAF数据库不暴露公网缓存服务加访问认证。监控层部署流量和连接数监控设定合理告警阈值每周检查告警有效性。演练层每季度做一次故障演练模拟被攻击场景测试应急手册是否行得通。很多小团队不愿意在安全上投入觉得“我们没什么攻击价值”但现实是很多攻击是扫段进行的IP段内某台机器有漏洞就可能被拖进来做跳板。哪怕不做复杂的防护至少把监控和备份做好真出事了能快速恢复就已经赢过了大多数没有准备的团队。7. 常见问题排查技巧实录故障现场的高频疑问这一节把我被问过最多的问题和排查心得整理成速查表方便大家直接对照处理。问题可能原因快速判断方法应急处置建议网站打不开SSH却正常应用层被攻击或应用本身故障检查80/443端口监听状态curl本机测试看Nginx日志确认是否有洪峰请求接入WAF或CDNSSH都连不上操作卡顿带宽耗尽型攻击入向流量打满云控制台看带宽监控是否打满联系运营商黑洞或高防清洗本地没法完全解决SYN_RECV数量巨大SYN Flood攻击netstat统计SYN_RECV数量开启SYN Cookie调大syn_backlog防火墙限速连接数巨大但流量不高应用层CC攻击或慢速攻击ss统计ESTABLISHED来源IP分布限制单IP并发连接数关闭空闲连接CPU软中断占用100%大规模小包攻击top看si列判断是软中断吃满调优网卡多队列升级驱动必要时上硬件清洗内网流量异常服务器被入侵成为跳板iftop看内网IP之间通信是否异常隔离机器排查进程和计划任务重装系统封了攻击IP还是被攻击攻击源太多或使用代理统计封禁前后流量变化换质量高的高防产品限制到源站的所有入口这张表只能覆盖部分场景实际故障永远比速查表丰富。我在处理问题时的习惯是先看现象再找根源不急着下结论。哪怕现象已经非常像DDoS也要保留“有可能是应用自身问题”的怀疑因为误判的代价有时候比不判断更大。8. 最后的体会检测DDoS最难的不是命令而是心态排查DDoS攻击这件事命令和工具学起来很快真正难的是在压力下保持冷静的判断力。我经历过新手时期的慌张——看到一个异常数据就开始配置封禁规则结果越搞越乱也经历过被攻击后的从容——按照既定的排查顺序一步步走十分钟定位问题半小时恢复业务。两者的差别不在于技术多强而在于是否有一套自己熟悉的流程。最后分享一个小技巧平时没事的时候可以自己模拟一些异常场景来训练排查能力。比如在测试机用工具打一点压力流量然后假装不知道原因从头开始排查。多做几次你会发现自己对命令的熟练度、对现象的敏感度都在明显提升。等到真正被攻击的那一天你才会感谢自己在平静时做的这些准备。哪怕只是把监控脚本搭好、把应急清单打印出来贴在工位上关键时刻都能少走很多弯路。
返回列表