server.py: 基礎測試伺服器 (無防禦)server_defense.py: 進階防禦伺服器 (包含5種防禦機制)
ddos.py: 基礎 DDoS 攻擊腳本quick_test.py: 快速5級威力測試ddos_advanced.py: 7種攻擊方法完整測試progressive_test.py: 漸進式攻擊 + 防禦效果對比
終端 1 - 啟動伺服器:
cd c:\Users\User\Desktop\Programm\topic\DDos python server.py
終端 2 - 快速測試:
cd c:\Users\User\Desktop\Programm\topic\DDos python quick_test.py
自動執行 5 個等級的攻擊,從 10 線程到 200 線程
終端 1:
python server.py
終端 2:
python progressive_test.py # 選擇 [2] 僅測試當前伺服器 # 選擇 [1] GET 請求 # 輸入 n (無防禦)
關閉 server.py,重新啟動:
python server_defense.py
終端 2:
python progressive_test.py # 選擇 [2] 僅測試當前伺服器 # 選擇 [1] GET 請求 # 輸入 y (有防禦)
查看兩次測試的最大承受線程數差異!
需要手動切換伺服器,測試 4 種場景:
python progressive_test.py
# 選擇 [1] 完整對比測試按提示依序:
- 啟動
server.py→ 測試完畢 - 啟動
server_defense.py→ 測試 3 種攻擊方法 - 查看完整對比報告
server_defense.py 包含 5 種防禦:
| 防禦機制 | 功能 | 效果 |
|---|---|---|
| 🚦 速率限制 | 10秒內最多20個請求 | 阻擋高頻攻擊 |
| 🚫 IP黑名單 | 違規IP封鎖30秒 | 防止持續攻擊 |
| 🔗 連接限制 | 每IP最多10個並發 | 防止連接耗盡 |
| ✅ 請求驗證 | 檢查User-Agent | 過濾機器人 |
| ⏱️ 自適應延遲 | 根據負載動態延遲 | 保護資源 |
python server_defense.py --no-defense
ddos_advanced.py 包含 7 種攻擊:
- HTTP GET 洪水 - 最快速,純粹量大
- HTTP POST 洪水 - 帶 1KB 數據
- 繞過緩存攻擊 - 每次不同參數
- Header 洪水 - 50 個自定義 Header
- 大封包攻擊 - 10KB 負載
- TCP SYN 洪水 - 底層連接攻擊
- Slowloris - 慢速長時間佔用
打開瀏覽器訪問 http://127.0.0.1:8000
正常狀態:
- 🟢 綠色,無延遲,無轉圈
- 請求/秒 < 20
輕微影響:
- 🟡 黃色,100-200ms 延遲
- 請求/秒 20-50
嚴重卡頓:
- 🔴 紅色,500ms+ 延遲,轉圈
- 請求/秒 > 100
- 頁面需等待數秒才載入
- 成功率 < 80% → 開始失效
- 響應時間 > 1秒 → 明顯卡頓
- 響應時間 > 2秒 → 嚴重卡頓
- 失敗率 > 50% → 伺服器癱瘓
- 先用 quick_test.py 快速了解不同威力
- 用 progressive_test.py 找出臨界點
- 對比有無防禦的差異
- 觀察瀏覽器頁面的卡頓效果
pip install requests