
Go load and stress testing tool with L7 HTTP and L4 raw TCP/UDP modes, multi-threaded workers, live rate graph, and a Windows GUI plus cross-platform CLI.
Load testing tool written in go. Point it at a target, choose how hard to hit it, watch a live graph. It runs from a window on Windows and from the terminal everywhere else.
Authorised targets only. Fire it at machines you own or have written permission to test. Unsolicited load against someone else's service is a crime in most places and it isn't what this is for.
Grab a binary from the releases page:
| platform | file |
|---|---|
| Windows | ddossnake-windows-amd64.exe — the window |
| Linux | ddossnake-linux-amd64 |
| macOS (Intel / Apple silicon) | ddossnake-darwin-amd64 / ddossnake-darwin-arm64 |
| FreeBSD / OpenBSD | ddossnake-freebsd-amd64 / ddossnake-openbsd-amd64 |
The Windows one is a native window, no console. The rest are the CLI — same engine, no GUI toolkit.
On linux/mac/bsd make it executable first:
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 runs it, Stop kills it, the graph tracks packets per second.
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
examples:
# 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 stops it. a running line shows sent / errors / packets / rate.
targets can be a url (http://host:port), a bare ip, or ip:port. l4 needs
the port spelled out — it won't guess 80 for you.
| source | what it is |
|---|---|
local | this machine's sockets. the default. |
redirects | built-in open-redirect relays, so the hops come from other IPs |
ufonet | bridge to a local UFONet clone, if you have one |
vps-pool | your own nodes running an agent (fill the node list in) |
stress-api | a paid testing API you hold a key for |
local and redirects need nothing else. The others are for when you have your
own infrastructure or an account somewhere.
Needs go 1.21+. No cgo anywhere.
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
Cross-compiling the cli is plain go, no toolchain juggling:
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
The window is Windows-only by nature — it draws with the walk toolkit. Every where else the CLI is the tool, and it's the same engine underneath.
cmd/ddossnake cli entry
cmd/ddossnake-gui windows window
internal/ddos the engine both of them use
go test ./...
MIT, see LICENSE.