.:. 草榴社區 » 技術討論區 » 网站突遭洪水攻击 服务器爆红灯的应对[6P]
本頁主題: 网站突遭洪水攻击 服务器爆红灯的应对[6P]字體大小 寬屏顯示 只看樓主 最新點評 熱門評論 時間順序
沧海跨云药神


級別:聖騎士 ( 11 )
發帖:900
威望:311 點
金錢:24209 USD
貢獻:18489 點
註冊:2026-01-26

网站突遭洪水攻击 服务器爆红灯的应对[6P]

我这小站日均也就几百ip访问

昨天突然飙到3万ip


cpu和带宽直接干满了高亮红灯

里面的ip五花八门
移动的,电信的,美国的,法国,英国的……

这是访问次数最多的几个

访问1~2次的那种根本数不过来
uv访问8万 pv直接干到了11万多

导致cpu堵塞 带宽占满,正常用户根本打不开

这里面既有ai爬虫,又有工具恶意访问

先解决友好的爬虫问题:
直接在robots.txt文件写入
複製代碼
  1. User-agent: GPTBot
  2. Disallow: /
  3. User-agent: OAI-SearchBot
  4. Disallow: /
  5. User-agent: ClaudeBot
  6. Disallow: /
  7. User-agent: Claude-SearchBot
  8. Disallow: /
  9. User-agent: CCBot
  10. Disallow: /
  11. User-agent: Google-Extended
  12. Disallow:
複製代碼


有些ai爬虫并不鸟上面那个协议

在网站配置文件第一行插入
複製代碼
  1. # 拦截 AI 爬虫 Map 规则
  2. map $http_user_agent $block_ai_bot {
  3.     default 0;
  4.     "~*(GPTBot|Claude-SearchBot|Amzn-SearchBot|OAI-SearchBot|CCBot)" 1;
  5. }
複製代碼


拉到最底部(就在  include enable-php-xx.conf;  的附近)。
在下一行插入
複製代碼
  1. # 拦截 AI 爬虫执行
  2. if ($block_ai_bot) {
  3.     return 444;
  4. }
複製代碼


自此ai爬虫部分得到遏制

那么再解决工具恶意访问的问题
恶意的自动化脚本(俗称 CC 攻击 或 扫号机)。

拉到最顶部,在刚才我们加的那段  map  规则的下面,空一行,粘贴下面这段代码:
複製代碼
  1. # 定义限流区域,名为 ddos_limit,每秒最多允许 2 个请求,突发峰值允许 5 个
  2. limit_req_zone $binary_remote_addr zone=ddos_limit:10m rate=2r/s;
複製代碼


在底部日志输出的上一行插入
複製代碼
  1. # 强力限速
  2. limit_req zone=ddos_limit burst=5 nodelay;
複製代碼


好了 这下清净了  我本以为可以高枕无忧了

结果第二天更猛


全是分布式网络访问,根本不带ai标识
好嘛,又一次爆红,堵塞503打不开
把日志喂给大模型,
发现都是搜索类的访问,导致不断的读取数据库造成堵塞!

这次屏蔽所有带搜索的访问
Nginx → 设置 → 配置修改,在  http {  里加入:
複製代碼
  1. # 搜索接口限流池:单IP每秒1个请求
  2. limit_req_zone $binary_remote_addr zone=search_limit:10m rate=1r/s;
  3. # 恶意爬虫UA识别
  4. map $http_user_agent $bad_crawler {
  5.     default 0;
  6.     # Meta 全家桶
  7.     "~*meta-externalagent" 1;
  8.     "~*facebookexternalhit" 1;
  9.     # Amazon 爬虫
  10.     "~*Amzn-SearchBot" 1;
  11.     # GPT 爬虫
  12.     "~*GPTBot" 1;
  13.     # 空UA或脚本UA
  14.     "~*" 1;
  15.     "~*python" 1;
  16.     "~*curl" 1;
  17.     "~*scrapy" 1;
  18. }
複製代碼


配置文件,
删除昨天插入的代码
在  server括号里加入:
複製代碼
  1.     # ==========================================
  2.     # 搜索接口专项防护
  3.     # ==========================================
  4.     location ^~ /search {
  5.         # 恶意爬虫直接掐断(最省资源)
  6.         if ($bad_crawler = 1) {
  7.             return 444;
  8.         }
  9.        
  10.         # 所有IP访问/search都限流:每秒1个,突发3个
  11.         limit_req zone=search_limit burst=3 nodelay;
  12.         limit_req_status 429;
  13.        
  14.         # 超长URL直接掐断(你日志里那些300+字符的URL)
  15.         if ($request_uri ~* "^.{200,}") {
  16.             return 444;
  17.         }
  18.        
  19.         # 正常转发给PHP处理
  20.         try_files $uri $uri/ /index.php?$args;
  21.     }
複製代碼


彻底解决堵塞问题

后面发现自己也搜索不了,把参数改大了还是不行

先这么着吧,至少打的开了,搜索用不了就用不了吧!

哎 心力交瘁的两天!

随手一赞 手留余香!

赞(52)
DMCA / ABUSE REPORT | TOP Posted: 08-01 22:41 發表評論
沧海跨云药神 [樓主]


級別:聖騎士 ( 11 )
發帖:900
威望:311 點
金錢:24209 USD
貢獻:18489 點
註冊:2026-01-26

引用
引用第5樓go4u於2026-08-01 23:05發表的 :
同行 还是得罪了人?

引用 7364526:李靖 :紧急求助,麻烦大家转发扩散![6P]
我也在怀疑,我的回复导致的
不确定是不是,但时间上太巧合了!
TOP Posted: 08-01 23:19 #1樓 引用 | 點評
.:. 草榴社區 » 技術討論區

電腦版 手機版 客戶端 DMCA
用時 0.02(s) x3, 08-02 07:12