用 go 编写的负载测试工具。把它指向一个目标,选择打击力度,观察实时图表。它在 Windows 上以窗口形式运行,在其他所有平台上从终端运行。
仅限授权目标。 只对你拥有的机器或已获得书面许可测试的机器发起攻击。未经请求对他人服务施加负载在大多数地方都是犯罪行为,这也不是本工具的用途。
从 releases 页面 下载二进制文件:
| 平台 | 文件 |
|---|---|
| Windows | ddossnake-windows-amd64.exe — 窗口版 |
| Linux | ddossnake-linux-amd64 |
| macOS(Intel / Apple 芯片) | 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。