
L7 HTTPおよびL4 raw TCP/UDPモード、マルチスレッドワーカー、ライブレートグラフ、Windows GUIとクロスプラットフォームCLIを備えたGo製の負荷・ストレステストツール。
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で停止、グラフは1秒あたりのパケット数を追跡する。
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を参照。