EZ Subdomain 是一款高性能、可编排的子域名枚举工具,既支持传统命令行(CLI)模式,也支持 MCP(Model Context Protocol)服务模式,便于在各类 AI/Agent 系统中一键编排调用。核心能力覆盖无状态/有状态 DNS 枚举、被动 API 聚合、智能多级下探、结果去重与高可信校验等,助你在复杂网络环境下稳定、快速地获取高质量子域名结果。
- CLI 与 MCP 双模式:即开即用的命令行,亦可作为 MCP Server 嵌入到 AI/Agent 流程中,拥抱 Agent 时代。
- 无状态枚举极速稳定:支持
stateless|query|query-dot|query-doh四种模式;在恶劣网络中可切换 DoT/DoH,对抗劣化与劫持。 - 被动 API 接口齐全:内置诸多常见平台(Fofa、Quake、Hunter、VT、SecurityTrails、Shodan、ZoomEye、Censys、CIRCL、Bevigil 等),一键
gen生成passive_config.yaml,即填即用。 - 内置免费被动API:内置免费被动API接口,无需配置 Key,直接使用。
- 高可信策略:主动爆破前进行泛解析判断与过滤;被动 API 结果进入主动验证链路以二次确认,显著降低噪音。
- 一键下探多级子域名:
--depth控制递归深度,配合智能模式--smart,优先扩展更「有价值」的分支。 - 灵活强大的字典:内置
small|medium|large,并支持生成式字典gN[_prefix](如g3_api生成前缀为api、长度≤3 的组合)。 - 工程化输出与去重:支持
csv|json|txt输出格式;内置 Cuckoo Filter 去重;控制台进度条与简洁模式友好易读。 - 可配置 DNS/DoH/专域 DNS:
--dns自定义 DNS/DoH,--spec-dns为特定后缀域设置专属 DNS/DoH,复杂网络更灵活。 - 性能与稳定:QPS 速率控制、重试、精确模式(补查多类型)、丢弃无答案、断点/暂停(在 MCP 中)等细节打磨。
平台注意:
-
Windows 无状态模式需安装
npcap(https://npcap.com)。 -
建议在 Linux/Mac 下使用以获得更好性能;
-
可使用
ez_subdomain debug查看 RawSocket 支持与网卡信息。
- 生成被动 API 配置模板(首次使用建议):
ez_subdomain gen -p passive_config.yaml填写 passive_config.yaml 中各平台 Key 后,运行时可加 --passive-api 与被动聚合联动。
- 基本扫描(CLI):
ez_subdomain -t example.com -o result.csv- 基本扫描(配合被动API):
ez_subdomain -t example.com --passive-api -o result.csv- DoH/DoT 对抗恶劣网络:
ez_subdomain -t example.com -b query-doh \
--dns https://1.1.1.1/dns-query,https://dns.google/dns-query
ez_subdomain -t example.com -b query-dot --dns 1.1.1.1,8.8.8.8- 生成式字典(
gN[_prefix]):
ez_subdomain -t example.com --dict g3 # 长度≤3 的组合
ez_subdomain -t example.com --dict g2_api # 以 api 为前缀,长度≤2 的组合- 专域 DNS(匹配后缀) 与智能/精确模式:
ez_subdomain -t example.com --spec-dns example.com=1.1.1.1@8.8.8.8 \
--smart --exact --drop-no-answer --rate 800 --retry 3 --timeout 3s- 输出与控制台:
ez_subdomain -t example.com -o out.json --simple=false --progress=true- 枚举多级子域名(包括1级深度,也就是枚举先枚举
x.example.com,再枚举y.x.example.com)
ez_subdomain -t example.com --depth 2- 自定义子域名字典:
ez_subdomain -t example.com --dict ./dict.txt启动 MCP Server(默认 Streamable 模式):
ez_subdomain mcp \
--mode streamable \
--listen 127.0.0.1:3000 \
--secret <TOKEN>客户端(以 VSCode/Cursor MCP 为例)配置:
{
"mcpServers": {
"ez_subdomain": {
"url": "http://127.0.0.1:3000",
"headers": {
"Authorization": "Bearer <TOKEN>"
}
}
}
}可用 MCP 工具(Tools):
subdomain brute:创建枚举任务(前台/后台)。参数:target[]必填backendScan可选(后台模式返回 taskId)bruteMode:stateless|query|query-dot|query-doh- 其他同 CLI:
enablePassiveApi|depth|timeout|retry|rate|dict|exact|smart|dropNoAnswer
getScanTask:分页/实时获取任务进度与结果。listScanTasks:列出任务。stopScanTask:停止任务。resumeScanTask:恢复任务。deleteScanTask:删除任务缓存。
鉴权:通过 Authorization: Bearer <TOKEN> 进行校验。
名称(NAME):
ez subdomain - ezreal 团队出品的子域名工具
用法(USAGE):
ez_subdomain [全局选项] [命令 [命令选项]]
命令(COMMANDS):
gen 生成被动 API 配置模板(passive_config.yaml)
debug 显示调试信息(网卡、RawSocket 支持等)
mcp 启动 MCP 服务端
help, h 显示命令列表或某个命令的帮助
全局选项(GLOBAL OPTIONS):
--help, -h 显示帮助
--version, -v 打印版本信息
1. 目标(TARGET)
--target string, -t string [ --target string, -t string ] 指定目标域名(可多次传入或用逗号分隔)
--target-file string, -T string 指定目标域名文件(按行或逗号分隔)
2. 输出(OUTPUT)
--output string, -o string 输出文件,支持:csv, json, txt(默认:"subdomain_result.csv")
--progress, --pg 控制台显示进度条(默认:true)
--simple, --sp 控制台简洁模式,仅输出域名(默认:false)
3. 行为(BEHAVIOR)
--passive-api, -p 启用被动 API(使用前请先生成 passive_config)(默认:true)
高级 DNS 爆破配置(ADVANCED DNS BRUTER CONFIG)
--brute-mode value, -b value 爆破模式:stateless|query|query-dot|query-doh(默认:stateless)
--depth int 子域名递归深度(例如 a.b.example.com 的深度为 2)(默认:1)
--dict string, -d string 爆破字典:内置 medium|small|large|gN[_prefix] 或自定义文件路径(默认:"medium")
--dns string [ --dns string ] 自定义 DNS/DoH 列表(例如:8.8.8.8,114.114.114.114,https://1.1.1.1/dns-query)
--drop-no-answer 丢弃无 Answer 的域名结果(默认:false)
--exact, -e 精确模式:提高 DNS 结果准确性(默认:false)
--rate int, -r int 每秒最大查询数 QPS(默认:500)
--retry int 失败重试次数(默认:2)
--smart, --sm 智能模式:智能扩展与过滤(默认:true)
--spec-dns string=string [ --spec-dns string=string ] 为特定后缀域名指定 DNS(例如:example.com=1.1.1.1@8.8.8.8)
--timeout duration 单次 DNS 查询超时(例如:5s, 1m)(默认:2s)
高级被动 API 配置(ADVANCED PASSIVE API CONFIG)
--passive-config string 被动 API 配置文件(默认:"passive_config.yaml")
--passive-proxy string 被动 API 代理地址(例如:http://127.0.0.1:7879)
--passive-timeout duration 被动 API 请求超时(默认:5s)
--passive-ua string 被动 API User-Agent
全局配置(GLOBAL CONFIG)
--lic string EZ 证书文件(默认:"ez.lic")
--log-level string 日志级别:debug, info, warning, error, success, disable(默认:"info")
--network-iface string, -n string 原始套接字网卡:default、auto 或具体网卡名(默认:"default")- 支持
csv|json|txt;默认subdomain_result.csv。 - 控制台:
--progress进度条;--simple仅输出域名。 - 去重:基于 Cuckoo Filter,对同名结果高效去重。
- 建议使用
--passive-api,由被动结果喂给主动验证链,再结合--smart、--depth下探。 - 受限网络中优先使用 DoH(
--dns https://...)或-b query-doh;对抗丢包可适当增大--retry、--timeout,调低/提高--rate。 - 开启
--exact可在返回NoError但无 Answer 时,补查多类记录(A/AAAA/MX/TXT/NS/PTR)。 - 如使用 Clash/Tun 等,可能触发泛解析误判,扫描前请关闭相关模式或指定可靠 DNS。
- Windows 需安装 npcap;使用
ez subdomain debug快速自检。
- 优化 Passive API 模块与并发处理。
- 增加扫描结束标识与运行时间提示(elapsed)。
- 增加 MCP Server 支持。
- 扫描进度恢复。