
Инструмент для нагрузочного и стресс-тестирования на Go с режимами L7 HTTP и L4 raw TCP/UDP, многопоточными воркерами, графиком скорости в реальном времени, а также GUI для Windows и кроссплатформенным CLI.
Инструмент для нагрузочного тестирования, написанный на Go. Наведите его на цель, выберите интенсивность воздействия и наблюдайте за графиком в реальном времени. Он работает из окна в Windows и из терминала везде в остальном.
Только авторизованные цели. Запускайте его по машинам, которыми владеете, или по тем, на тестирование которых у вас есть письменное разрешение. Непрошеная нагрузка на чужой сервис в большинстве мест является преступлением, и это не то, для чего он предназначен.
Скачайте бинарник со страницы релизов:
| платформа | файл |
|---|---|
| Windows | ddossnake-windows-amd64.exe — окно |
| Linux | ddossnake-linux-amd64 |
| macOS (Intel / Apple silicon) | ddossnake-darwin-amd64 / ddossnake-darwin-arm64 |
| FreeBSD / OpenBSD | ddossnake-freebsd-amd64 / ddossnake-openbsd-amd64 |
Версия для Windows — это нативное окно, без консоли. Остальные — CLI, тот же движок, без GUI-тулкита.
На linux/mac/bsd сначала сделайте его исполняемым:
chmod +x ddossnake-linux-amd64
./ddossnake-linux-amd64 -target http://10.0.0.5 -threads 400 -duration 30

TARGET url, ip, or ip:port e.g. 10.0.0.5:8080
REQUESTS cap for the run
MODE dos (L7 http) or ddos (multi source)
THREADS workers
DURATION seconds
FAST MODE keep-alive, no delay
LAYER 4 raw tcp/udp instead of http (ddos mode)
Start запускает, Stop останавливает, график отслеживает пакеты в секунду.
ddossnake -target <url|ip|ip:port> [flags]
-target target to hit
-mode l7 (http) or l4 (raw tcp/udp) [l7]
-proto l4 protocol: tcp or udp [tcp]
-threads concurrent workers [400]
-duration seconds to run [30]
-requests request cap [1000000]
-source worker source, see -list [local]
-fast keep-alive, no delay [true]
-list list worker sources and exit
-version print version
примеры:
# http load at a box you own
ddossnake -target http://10.0.0.5 -threads 400 -duration 30
# raw udp at a game/voice port
ddossnake -target 10.0.0.5:3478 -mode l4 -proto udp -threads 200
# what pools are available
ddossnake -list
ctrl-c останавливает его. строка выполнения показывает отправлено / ошибки / пакеты / скорость.
цели могут быть url (http://host:port), просто ip или ip:port. для l4 нужно явно указать порт — он не будет угадывать 80 за вас.
| источник | что это |
|---|---|
local | сокеты этой машины. по умолчанию. |
redirects | встроенные релеи через открытые редиректы, так что переходы идут с других IP |
ufonet | мост к локальному клону UFONet, если он у вас есть |
vps-pool | ваши собственные узлы, на которых запущен агент (заполните список узлов) |
stress-api | платный API для тестирования, ключ от которого у вас есть |
local и redirects больше ничего не требуют. Остальные — для случаев, когда у вас есть собственная инфраструктура или аккаунт где-то.
Требуется go 1.21+. Нигде не нужен cgo.
git clone https://gitlab.com/vqkro/ddossnake
cd ddossnake
# cli - any platform
go build -o ddossnake ./cmd/ddossnake
# the window - windows only, walk is a native win32 toolkit
go build -o ddossnake.exe ./cmd/ddossnake-gui
Кросс-компиляция cli — это обычный go, без жонглирования тулчейнами:
GOOS=linux GOARCH=amd64 go build -o ddossnake-linux-amd64 ./cmd/ddossnake
GOOS=freebsd GOARCH=amd64 go build -o ddossnake-freebsd-amd64 ./cmd/ddossnake
GOOS=darwin GOARCH=arm64 go build -o ddossnake-darwin-arm64 ./cmd/ddossnake
Окно по своей природе только для Windows — оно рисуется с помощью тулкита walk. Везде в остальном инструментом является CLI, и под ним тот же движок.
cmd/ddossnake cli entry
cmd/ddossnake-gui windows window
internal/ddos the engine both of them use
go test ./...
MIT, см. LICENSE.