Website Under DDoS Attack? 5 Troubleshooting Questions for Philippines-Hosted Servers
发布时间:2026-11-14
问题一:网站突然很慢或打不开,怎么确认是 DDoS 攻击
表现:访问超时,控制台带宽曲线陡升,SSH 连接卡顿甚至断开。
可能原因:
- 流量型攻击(UDP/SYN 洪水)占满带宽
- CC 攻击,大量请求打到登录页、搜索页这类耗资源的接口
- 只是正常的业务高峰或爬虫,不是攻击
排查步骤:先别急着判定为攻击。菲律宾节点到中国大陆的跨境线路晚高峰本来就可能有抖动,所以要对照本地和多地的访问情况。登录服务器,执行:
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n | tail
如果少数 IP 的连接数异常高,基本可以判断有问题。再用 iftop -i eth0 看实时流量方向。
快速修复:确认是攻击后,先保留日志和流量截图,再进入下面的处理步骤。
问题二:SYN 洪水把连接队列占满了
表现:服务端口响应慢,netstat -an | grep SYN_RECV | wc -l 结果很大。
可能原因:
- 伪造源地址的 SYN 请求
- 系统半连接队列过小
排查步骤:查看 sysctl net.ipv4.tcp_syncookies 是否为 1,以及 net.ipv4.tcp_max_syn_backlog 的值。
快速修复:执行 sysctl -w net.ipv4.tcp_syncookies=1,并适当调大 tcp_max_syn_backlog。这只能缓解小规模攻击,不适合指望它扛住大流量,带宽被打满时服务器自身的设置基本没用。
问题三:CC 攻击打到网页接口,CPU 飙高
表现:带宽不高,但 CPU 和 PHP/应用进程数居高不下。
可能原因:
- 脚本或代理池高频请求同一 URL
- 缓存没有生效,每次请求都回源数据库
排查步骤:统计访问日志:awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head,再看被请求最多的 URL。
快速修复:在 Nginx 中用 limit_req_zone 和 limit_req 做单 IP 限速,对异常 IP 用 iptables -I INPUT -s 对方IP -j DROP 封禁,并给热点页面加缓存。误区是直接封整段地址,容易误伤正常用户,也不建议长期手工封禁,攻击 IP 经常变化。
问题四:流量太大,服务器自己处理不了
表现:入口带宽持续跑满,机房可能对该 IP 做临时限制。
可能原因:
- 攻击流量超过本机和机房入口承受能力
- IP 直接暴露在公网,被反复攻击
排查步骤:在控制台查看入站流量峰值,并与服务商确认当前 IP 是否被限制或牵引。
快速修复:大流量必须靠上游清洗,也就是常说的高防。可以考虑高防 IP、高防服务器或 CDN 类防护。选型时问清防护峰值、是否包含 CC 防护、是否按攻击次数限制,以及回源线路。菲律宾节点位于东南亚,绕行路径和延迟与国内机房不同,接入防护后要实际测一遍延迟。
问题五:恢复之后,怎么避免再被打
表现:攻击停了,但隔几天又来。
可能原因:
- 源站 IP 已被扫描或泄露
- 没有备份和应急流程
排查步骤:检查域名历史解析、邮件头、子域名是否暴露了真实 IP。
快速修复:更换源站 IP,只允许防护节点回源(防火墙白名单),关闭不必要的端口,定期做快照备份。合规方面,在菲律宾机房部署的业务要遵守当地法规,面向中国大陆用户提供服务时也需遵守中国大陆相关法律法规,不要把海外节点当作规避监管的手段。
建议提前把日志位置、联系服务商的方式和切换防护的步骤写成一页清单,真遇到攻击时能省下不少时间。