Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/net-benchmark/dns-benchmark-tool
加密/解密工具网络映射网络安全隐私保护DNS 分析Archived
GitHubnet-benchmark/dns-benchmark-tool

dns-benchmark-tool

快速、全面的DNS性能测试,支持DNSSEC验证、DoH/DoT,并具备企业级功能。

查看仓库
3631264个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

⚠️ 此项目已迁移,不再维护。 请安装替代项目:pip install net-benchmark 仓库:https://github.com/net-benchmark/net-benchmark 所有现有命令和标志完全兼容。


DNS 基准测试工具

属于 BuildTools - 网络性能套件

快速、全面的 DNS 性能测试,支持 DNSSEC 验证、DoH/DoT 及企业级功能```bash pip install dns-benchmark-tool dns-benchmark benchmark --use-defaults --formats csv,excel

root@kitploit:~
> 🎉 **1,400+ 次下载 · 600+ 活跃用户**
> 🚀 **网页仪表盘现已上线!** [免费试用 BuildTools →](https://buildtools.net)

---

**实时追踪**

[![实时追踪](https://assets.kitploit.com/production/public/readmes/9801/abc3e3079146e364e8a291edc0e19bfcaf931bcd7a3db5d7a8d9daf5ed565e94.gif)](https://github.com/frankovo/dns-benchmark-tool)
*观看 DNS 查询的实时动态*

**实时追踪 - 网页界面**
[![实时追踪 - 网页界面](https://assets.kitploit.com/production/public/readmes/9801/02b1a1ab9d814fa4de537464def46493c36f96a5d0787a13c2d14eb07dfc2d11.gif)](https://github.com/frankovo/dns-benchmark-tool)
*通过电子邮件警报实时监控 DNS 查询*

</div>

## 🎉 新增内容 ![new](https://img.shields.io/pypi/v/dns-benchmark-tool.svg?color=brightgreen&label=new)

我们新增了**三个强大的 CLI 命令**,并完全支持 **DoH、DoT 和 DNSSEC**:

- 🚀 **top** — 根据速度和可靠性快速对解析器排序
- 📊 **compare** — 并排基准测试,提供详细统计和导出选项
- 🔄 **monitoring** — 持续性能追踪,带警报和日志记录
- 🔒 **DoH / DoT / DNSSEC** — 加密 DNS 基准测试,带真实延迟权衡数据```bash
# Quick resolver ranking
dns-benchmark top

# Compare resolvers side-by-side
dns-benchmark compare Cloudflare Google Quad9 --show-details

# Run monitoring for 1 hour with alerts
dns-benchmark monitoring --use-defaults --formats csv,excel --interval 30 --duration 3600 \
  --alert-latency 150 --alert-failure-rate 5 --output monitor.log

# Encrypted DNS
dns-benchmark benchmark \
  --resolvers "Cloudflare,Google" \
  --domains "bing.com,google.com" \
  --doh \
  --doh-url "https://cloudflare-dns.com/dns-query,https://dns.google/dns-query" \
  --iterations 1 \
  --formats csv \
  --output ./doh_results_explicit_urls

dns-benchmark benchmark \
  --resolvers "Cloudflare,Quad9" \
  --domains "cloudflare.com,quad9.net" \
  --dot

📈 社区亮点

  • ⭐ Stars: 从 7 增长到 110+,在 Hacker News 发布后
  • 📦 Downloads: 恢复至每天 200+,此前曾停滞
  • 🐘 Mastodon: 也在那里分享,但真正的爆发来自 HN
  • 💬 Feedback: 来自 HN 社区的建设性意见直接影响了补丁 v0.3.0 → v0.3.1
  • 🚀 启示: Hacker News 的曝光是采用动力的催化剂

CI Tests Publish to TestPyPI Publish to PyPI PyPI version PyPI - Python Version

License Coverage

Downloads GitHub stars GitHub forks Issues Last commit Main branch protected

目录

  • DNS 基准测试工具
    • BuildTools 的一部分 - 网络性能套件
    • 🎉 中的新功能
    • 📈 社区亮点
    • 目录
    • 🎯 为什么选择这个工具?
      • 问题
      • 解决方案
      • 适用范围
    • 快速开始
      • 安装
      • 运行您的第一个基准测试
      • 查看结果
    • ⚡ 命令一览
    • ✨ 关键特性
      • 🚀 性能
      • 🔒 安全与隐私
      • 📊 分析与导出
      • 🏢 企业特性
      • 🌐 跨平台
    • 🔒 安全与加密 DNS
    • 🔧 高级功能
    • 💼 使用场景
      • 🔧 针对开发者:优化 API 性能
      • 🛡️ 针对 DevOps/SRE:迁移前验证
      • 🏠 针对自建者:证明 Pi-hole 性能
      • 📊 针对网络管理员:自动化健康检查
      • 🔐 针对隐私倡导者:测试加密 DNS
    • 📦 安装与设置
      • 要求
      • 从 PyPI 安装
      • 从源代码安装
      • 验证安装
      • 首次运行
    • 📖 使用示例
      • 基本用法
      • 高级用法
    • 解析器和域名内联输入支持
      • 新功能
      • 向后兼容
      • 使用示例
        • 之前(仅文件有效)

🎯 为什么选择这个工具?

DNS 解析通常是网络性能中隐藏的瓶颈。一个慢速的解析器可能给每个请求增加数百毫秒的延迟。

问题

  • ⏱️ 隐藏瓶颈:DNS 可能为每个请求增加 300ms+ 的延迟
  • 🤷 性能未知:大多数开发者从未测试过他们的 DNS
  • 🌍 地域影响:“最快的”解析器取决于你所在的位置
  • 🔒 安全性各异:DNSSEC、DoH、DoT 的支持情况差异很大

解决方案

dns-benchmark-tool 可帮助您:

  • 🔍 找到针对您当前位置最快的 DNS 解析器
  • 📊 获取真实数据 - P95、P99、抖动、一致性评分
  • 🛡️ 验证安全性 - 内置 DNSSEC 验证
  • 🚀 大规模测试 - 数秒内完成 100+ 并发查询

适用范围

  • ✅ 开发者优化 API 性能
  • ✅ DevOps/SRE验证解析器 SLA
  • ✅ 自建者比较 Pi-hole/Unbound 与公共 DNS
  • ✅ 网络管理员进行合规性检查

快速开始

安装```bash

pip install dns-benchmark-tool

root@kitploit:~
### 运行您的第一个基准测试```bash
# Test default resolvers against popular domains
dns-benchmark benchmark --use-defaults --formats csv,excel

查看结果

结果会自动保存到 ./benchmark_results/,包含:

  • 带有统计数据的摘要 CSV
  • 详细的原始数据
  • 可选的 PDF/Excel 报告

就这样! 您刚刚针对 10 个域名测试了 5 个 DNS 解析器。


⚡ 命令一览

Find your fastest resolver right now

dns-benchmark top --limit 5

Compare the big three

dns-benchmark compare Cloudflare Google Quad9 --show-details

Monitor with DoT and alerts for 1 hour

dns-benchmark monitoring --use-defaults --dot
--interval 30 --duration 3600
--alert-latency 150 --output monitor.log

root@kitploit:~
## ✨ 主要特性

### 🚀 性能

- **异步查询** - 同时测试 100 多个解析器
- **多次迭代** - 多次运行基准测试以确保准确性
- **统计分析** - 均值、中位数、P95、P99、抖动、一致性
- **缓存控制** - 测试带/不带 DNS 缓存的情况

### 🔒 安全与隐私

- **DNSSEC 验证** - 验证加密信任链
- **DNS-over-HTTPS (DoH)** - 加密 DNS 基准测试
- **DNS-over-TLS (DoT)** - 安全传输测试
- **DNS-over-QUIC (DoQ)** - 实验性 QUIC 支持

### 📊 分析与导出

- **多种格式** - CSV、Excel、PDF、JSON
- **可视化报告** - 图表和图形
- **域名统计** - 按域名的性能分析
- **错误分解** - 识别有问题的解析器

### 🏢 企业特性

- **TSIG 认证** - 安全的企业查询
- **区域传输** - AXFR/IXFR 验证
- **动态更新** - 测试 DNS 写入操作
- **合规报告** - 可审计的文档

### 🌐 跨平台

- **Linux、macOS、Windows** - 随处可用
- **CI/CD 友好** - JSON 输出、退出码
- **IDNA 支持** - 国际化域名
- **自动检测** - Windows WMI DNS 发现

---

## 🔒 安全与加密 DNS

三种协议完全支持——每种协议在隐私方面都有延迟成本。

| 协议 | 标志 | 典型开销 | 使用时机 |
|---|---|---|---|
| 普通 UDP | *(默认)* | 基线 | 延迟基准测试 |
| DNS-over-HTTPS | `--doh` | +50–200ms | 隐私、防火墙绕过 |
| DNS-over-TLS | `--dot` | +200–500ms 冷启动,~50ms 热启动 | 加密传输 |
| DNSSEC | `--dnssec-validate` | +30–100ms | 验证解析器完整性 |

> ⚠️ **权衡**
> - DoH 和 DoT 在首次查询每个解析器时会增加 TLS 握手开销。使用 `--warmup-fast` 在测量前吸收此开销。
> - `--dnssec-validate` 请求 RRSIG 记录并强制 AD 标志。仅约 33% 的常见域名签署了 DNSSEC——在未签名域上会预期得到 `DNSSEC_FAILED` 结果。开启和关闭此标志的延迟数据**不可直接比较**。
> - 在移动/热点网络上的结果将显示 2–5 倍于有线以太网的方差。请使用 `--iterations 5` 并比较中位数延迟,而非平均值。```bash
# DoH benchmark
dns-benchmark benchmark \
  --resolvers "Cloudflare,Google" \
  --domains "cloudflare.com,google.com" \
  --doh --warmup-fast

# custom resolvers — must supply urls 1:1, order matters, or it fails early
dns-benchmark benchmark \
  --resolvers "Cloudflare,Google" \
  --domains "bing.com,google.com" \
  --doh \
  --doh-url "https://cloudflare-dns.com/dns-query,https://dns.google/dns-query" \
  --iterations 1 \
  --formats csv \
  --output ./doh_results_explicit_urls

# DoT with DNSSEC on signed domains
dns-benchmark benchmark \
  --resolvers "Cloudflare,Quad9" \
  --domains "cloudflare.com,quad9.net" \
  --dot \
  --dnssec-validate

# DOH rank top resolvers
dns-benchmark top --doh --limit 5

# DOT rank top resolvers
dns-benchmark top --dot --metric reliability --limit 5

# Compare DoH resolvers
dns-benchmark compare Cloudflare Google --doh --iterations 3

# Monitor with DoT
dns-benchmark monitoring --use-defaults --dot \
  --interval 60 --alert-latency 300

# DoH + DNSSEC enforced + export
dns-benchmark benchmark --use-defaults --doh --dnssec-validate --formats csv,excel

# DoT + DNSSEC enforced + multiple iterations
dns-benchmark benchmark \
  --resolvers "Cloudflare,Quad9,Google" \
  --domains "cloudflare.com,quad9.net,google.com" \
  --dot \
  --dnssec-validate \
  --iterations 5 \
  --formats excel

# DoH + custom urls + monitoring
dns-benchmark monitoring \
  --resolvers "Cloudflare,Google" \
  --doh \
  --doh-url "https://cloudflare-dns.com/dns-query,https://dns.google/dns-query" \
  --interval 30 --duration 7200

早期失败示例 — 这些在任何查询运行之前立即失败:```bash

--doh and --dot are mutually exclusive

dns-benchmark benchmark --use-defaults --doh --dot

ERROR: --doh and --dot are mutually exclusive.

--doh-url count must match --resolvers count

dns-benchmark benchmark --resolvers "Cloudflare,Google" --doh
--doh-url "https://cloudflare-dns.com/dns-query"

ERROR: --doh-url has 1 URL(s) but --resolvers has 2 resolver(s). Counts must match.

Custom IP with --doh requires --doh-url

dns-benchmark benchmark --resolvers "192.168.1.1" --doh

ERROR: --doh requires a DoH URL for: 192.168.1.1. Use --doh-url to supply them explicitly.

root@kitploit:~
---

## 🔧 高级功能

---
> ⚠️ 这些标志**仅为可见性而记录**,尚未实现。  
> 它们代表即将推出的高级功能。

- `--zone-transfer` → AXFR/IXFR 区域传输测试 *(即将推出)*
- `--tsig` → TSIG 认证查询 *(即将推出)*
- `--idna` → 国际化域名支持 *(即将推出)*

---

<details>
<summary><b>🚀 性能与并发特性</b></summary>

<br>

- **使用 dnspython 的异步 I/O** - 同时测试 100 多个解析器
- **支持 Trio 框架** - 高并发异步操作
- **可配置的并发性** - 控制最大并发查询数
- **重试逻辑** - 失败查询的指数退避
- **缓存模拟** - 在有/无 DNS 缓存的情况下进行测试
- **多次迭代基准测试** - 多次运行测试以提高准确性
- **预热阶段** - 测试前预热 DNS 缓存
- **统计分析** - 平均值、中位数、P95、P99、抖动、一致性评分

**示例:**```bash
dns-benchmark benchmark \
  --max-concurrent 200 \
  --iterations 5 \
  --timeout 3.0 \
  --warmup
🔒 安全与隐私功能
  • DNSSEC 验证 - 验证加密信任链
  • DNS-over-HTTPS (DoH) - 通过HTTPS进行加密DNS性能基准测试
  • DNS-over-TLS (DoT) - 安全传输层测试
  • DNS-over-QUIC (DoQ) - 实验性QUIC协议支持
  • TSIG 认证 - 用于企业DNS的事务签名
  • EDNS0 支持 - 扩展的DNS功能与更大载荷

示例:```bash

Test DoH resolvers

dns-benchmark benchmark
--doh
--resolvers doh-providers.json
--dnssec-validate

root@kitploit:~
</details>

<details>
<summary><b>🏢 企业级与迁移功能</b></summary>

<br>

- **区域传输(AXFR/IXFR)** - 完整及增量区域传输验证
- **动态 DNS 更新** - 测试 DNS 写入操作与更新
- **EDNS0 支持** - 扩展 DNS 选项、客户端子网、更大的负载
- **Windows WMI 集成** - 自动检测活动系统 DNS 设置
- **合规报告** - 生成可供审计的 PDF/Excel 报告
- **SLA 验证** - 跟踪正常运行时间与性能阈值

**示例:**```bash
# Validate DNS migration
dns-benchmark benchmark \
  --resolvers old-provider.json,new-provider.json \
  --zone-transfer \ # coming soon
  --output migration-report/ \
  --formats pdf,excel
📊 分析与报告功能
  • 按域名统计 - 按域名分析性能
  • 按记录类型统计 - 比较A、AAAA、MX、TXT等
  • 错误分解 - 分类并计数错误类型
  • 比较矩阵 - 并排比较解析器
  • 趋势分析 - 随时间变化的性能(多次运行)
  • 按标准择优 - 根据延迟/可靠性/一致性寻找最佳解析器

示例:```bash

Detailed analysis

dns-benchmark benchmark
--use-defaults
--formats csv,excel
--domain-stats
--record-type-stats
--error-breakdown
--formats csv,excel,pdf

root@kitploit:~
</details>

<details>
<summary><b>🌐 国际化与兼容性</b></summary>

<br>

- **IDNA 支持** - 国际化域名 (IDN)
- **多种记录类型** - A, AAAA, MX, TXT, CNAME, NS, SOA, PTR, SRV, CAA
- **跨平台** - Linux, macOS, Windows (原生支持)
- **CI/CD 集成** - JSON 输出、正确退出码、静默模式
- **自定义解析器** - 从 JSON 加载,测试自己的 DNS 服务器
- **自定义域名** - 针对特定域名列表进行测试

**示例:**```bash
# Test internationalized domains
dns-benchmark benchmark \
  --domains international-domains.txt \
  --record-types A,AAAA,MX \
  --resolvers custom-resolvers.json

💡 大多数用户只需基础功能。 这些高级能力在需要时即可使用。


💼 使用场景

🔧 面向开发者:优化 API 性能```bash

Find fastest DNS for your API endpoints

dns-benchmark benchmark
--domains api.myapp.com,cdn.myapp.com
--record-types A,AAAA
--resolvers production.json
--iterations 10

root@kitploit:~
**结果:** 将API延迟减少100-300毫秒

---

### 🛡️ 面向DevOps/SRE:迁移前验证```bash
# Test new DNS provider before switching
dns-benchmark benchmark \
  --resolvers current-dns.json,new-dns.json \
  --use-defaults \
  --dnssec-validate \
  --output migration-report/ \
  --formats csv,excel

结果: 迁移前验证性能和安全性


🏠 对于自托管用户:证明 Pi-hole 的性能```bash

Compare Pi-hole against public resolvers

dns-benchmark compare
--resolvers pihole.local,1.1.1.1,8.8.8.8,9.9.9.9
--domains common-sites.txt
--rounds 10

root@kitploit:~
**结果:** 基于数据的证据,证明你的自托管 DNS 更快(或不!)

---

### 📊 面向网络管理员:自动化健康检查```bash
# Add to crontab for monthly reports
0 0 1 * * dns-benchmark benchmark \
  --use-defaults \
  --output /var/reports/dns/ \
  --formats excel,csv \
  --domain-stats \
  --error-breakdown

结果: 自动化合规与SLA报告


🔐 为隐私倡导者:测试加密DNS```bash

Benchmark privacy-focused DoH/DoT resolvers

dns-benchmark benchmark
--doh
--resolvers privacy-resolvers.json
--domains sensitive-sites.txt
--dnssec-validate

root@kitploit:~
**Result:** 在不牺牲隐私的前提下找到最快的加密DNS

---

## 📦 安装与设置

### 前提条件

- Python 3.9+
- pip 包管理器

### 从 PyPI 安装```bash
pip install dns-benchmark-tool

从源代码安装```bash

git clone https://github.com/frankovo/dns-benchmark-tool.git cd dns-benchmark-tool pip install -e .

root@kitploit:~
### 验证安装```bash
dns-benchmark --version
dns-benchmark --help

首次运行```bash

Test with defaults (recommended for first time)

dns-benchmark benchmark --use-defaults --formats csv,excel

root@kitploit:~
---

## 📖 使用示例

### 基本用法```bash
# Basic test with progress bars
dns-benchmark benchmark --use-defaults --formats csv,excel

# Basic test without progress bars
dns-benchmark benchmark --use-defaults --formats csv,excel --quiet

# Test with custom resolvers and domains
dns-benchmark benchmark --resolvers data/resolvers.json --domains data/domains.txt

# Quick test with only CSV output
dns-benchmark benchmark --use-defaults --formats csv

高级用法```bash

Export a machine-readable bundle

dns-benchmark benchmark --use-defaults --json --output ./results

Test specific record types

dns-benchmark benchmark --use-defaults --formats csv,excel --record-types A,AAAA,MX

Custom output location and formats

dns-benchmark benchmark
--use-defaults
--output ./my-results
--formats csv,excel

Include detailed statistics

dns-benchmark benchmark
--use-defaults
--formats csv,excel
--record-type-stats
--error-breakdown

High concurrency with retries

dns-benchmark benchmark
--use-defaults
--formats csv,excel
--max-concurrent 200
--timeout 3.0
--retries 3

Website migration planning

dns-benchmark benchmark
--resolvers data/global_resolvers.json
--domains data/migration_domains.txt
--formats excel,pdf
--output ./migration_analysis

DNS provider selection

dns-benchmark benchmark
--resolvers data/provider_candidates.json
--domains data/business_domains.txt
--formats csv,excel
--output ./provider_selection

Network troubleshooting

dns-benchmark benchmark
--resolvers "192.168.1.1,1.1.1.1,8.8.8.8"
--domains "problematic-domain.com,working-domain.com"
--timeout 10
--retries 3
--formats csv
--output ./troubleshooting

Security assessment

dns-benchmark benchmark
--resolvers data/security_resolvers.json
--domains data/security_test_domains.txt
--formats pdf
--output ./security_assessment

Performance monitoring

dns-benchmark benchmark
--use-defaults
--formats csv
--quiet
--output /var/log/dns_benchmark/$(date +%Y%m%d_%H%M%S)

New top commands

Run a basic benchmark (default: rank by latency)

dns-benchmark top

→ Tests all resolvers with sample domains, ranks by latency

Limit the number of resolvers shown

dns-benchmark top --limit 5

→ Shows only the top 5 resolvers

Rank by success rate

dns-benchmark top --metric success

→ Ranks resolvers by highest success rate

Rank by reliability (combined score: success rate + latency)

dns-benchmark top --metric reliability

→ Uses weighted score to rank resolvers

Filter resolvers by category

dns-benchmark top --category privacy dns-benchmark top --category family dns-benchmark top --category security

→ Tests only resolvers in the specified category

Use a custom domain list

dns-benchmark top --domains domains.txt

→ Loads domains from a text file instead of built-in sample list

Specify DNS record types

dns-benchmark top --record-types A,AAAA,MX

→ Queries multiple record types (comma-separated)

Adjust timeout and concurrency

dns-benchmark top --timeout 3.0 --max-concurrent 50

→ Sets query timeout to 3 seconds and limits concurrency to 50

Export results to JSON

dns-benchmark top --output results.json

→ Saves results in JSON format

Export results to CSV

dns-benchmark top --output results.csv

→ Saves results in CSV format

Export results to TXT

dns-benchmark top --output results.txt

→ Saves results in plain text format

Quiet mode (no progress bar, CI/CD friendly)

dns-benchmark top --quiet

→ Suppresses progress output

Example combined usage

dns-benchmark top --limit 10 --metric reliability --category privacy --output top_resolvers.csv

→ Benchmarks privacy resolvers, ranks by reliability, shows top 10, exports to CSV

New compare commaands

Comparison of resolvers by name

dns-benchmark compare Cloudflare Google Quad9

^ Compares Cloudflare, Google, and Quad9 resolvers using default domains and record type A

Basic compare resolvers by IP address

dns-benchmark compare 1.1.1.1 8.8.8.8 9.9.9.9

^ Directly specify resolver IPs instead of names

Increase iterations for more stable results

dns-benchmark compare "Cloudflare" "Google" --iterations 5

^ Runs 5 rounds of queries per resolver/domain/record type

Use a custom domain list from file

dns-benchmark compare Cloudflare Google -d ./data/domains.txt

^ Loads domains from domains.txt instead of sample domains

Query multiple record types

dns-benchmark compare Cloudflare Google -t A,AAAA,MX

^ Tests A, AAAA, and MX records for each domain

Adjust timeout and concurrency

dns-benchmark compare Cloudflare Google --timeout 3.0 --max-concurrent 200

^ Sets query timeout to 3 seconds and allows 200 concurrent queries

Export results to JSON

dns-benchmark compare Cloudflare Google -o results.json

^ Saves comparison summary to results.json

Export results to CSV

dns-benchmark compare Cloudflare Google -o results.csv

^ Saves comparison summary to results.csv (via CSVExporter)

Suppress progress output

dns-benchmark compare Cloudflare Google --quiet

^ Runs silently, only prints final results

Show detailed per-domain breakdown

dns-benchmark compare Cloudflare Google --show-details

^ Prints average latency and success counts per domain for each resolver

New monitoring commands

Start monitoring with default resolvers and sample domains

dns-benchmark monitoring --use-defaults

^ Runs indefinitely, checking every 60s, using built-in resolvers and 5 sample domains

Monitor with a custom resolver list from JSON

dns-benchmark monitoring -r resolvers.json --use-defaults

^ Loads resolvers from resolvers.json, domains from defaults

Monitor with a custom domain list

dns-benchmark monitoring -d domains.txt --use-defaults

^ Uses default resolvers, but domains are loaded from domains.txt

Change monitoring interval to 30 seconds

dns-benchmark monitoring --use-defaults --interval 30

^ Runs checks every 30 seconds instead of 60

Run monitoring for a fixed duration (e.g., 1 hour = 3600 seconds)

dns-benchmark monitoring --use-defaults --duration 3600

^ Stops automatically after 1 hour

Set stricter alert thresholds

dns-benchmark monitoring --use-defaults --alert-latency 150 --alert-failure-rate 5

^ Alerts if latency >150ms or failure rate >5%

Save monitoring results to a log file

dns-benchmark monitoring --use-defaults --output monitor.log

^ Appends results and alerts to monitor.log

Combine options: custom resolvers, domains, interval, duration, and logging

dns-benchmark monitoring -r resolvers.json -d domains.txt -i 45 --duration 1800 -o monitor.log

^ Monitors resolvers from resolvers.json against domains.txt every 45s, for 30 minutes, logging to monitor.log

Run monitoring for 1 hour with alerts

dns-benchmark monitoring --use-defaults --interval 30 --duration 3600
--alert-latency 150 --alert-failure-rate 5 --output monitor.log

root@kitploit:~
---

⚠️ **新命令注意事项:** 没有成功查询的解析器将从排名中排除,并显示 `Avg Latency: N/A`。

---

## 解析器和域名的内联输入支持

此补丁引入了对 `--resolvers` 和 `--domains` 标志的逗号分隔内联值的完全支持,修复了问题 [#39](https://github.com/frankovo/dns-benchmark-tool/issues/39),并在不破坏现有工作流程的情况下提高了 CLI 的可用性。

### 新特性

1. **内联解析器**:`--resolvers "1.1.1.1,8.8.8.8,9.9.9.9"`
2. **内联域名**:`--domains "google.com,github.com"`
3. **单个值**:`--resolvers "1.1.1.1"` 或 `--domains "google.com"`
4. **命名解析器**:`--resolvers "cloudflare,google,quad9"`
5. **混合输入**:`--resolvers "1.1.1.1,cloudflare,8.8.8.8"`

### 向后兼容性

- 所有基于文件的现有配置继续有效
- CLI 没有破坏性更改
- 文件检测优先于内联解析

### 用法示例

#### 之前(仅文件有效)```bash
dns-benchmark benchmark \
    --resolvers data/resolvers.json \
    --domains data/domains.txt

之后(两者皆可)```bash

Inline (New)

dns-benchmark benchmark
--resolvers "1.1.1.1,8.8.8.8,9.9.9.9"
--domains "google.com,github.com"
--timeout 10
--retries 3
--formats csv
--output ./troubleshooting

Files (STILL WORKS)

dns-benchmark benchmark
--resolvers data/resolvers.json
--domains data/domains.txt
--formats csv

root@kitploit:~
#### 具名解析器```bash
# Named resolvers
dns-benchmark benchmark \
    --resolvers "Cloudflare,Google,Quad9" \
    --domains "google.com,github.com" \
    --timeout 10 \
    --retries 3 \
    --formats csv \
    --output ./troubleshooting_named

混合输入```bash

Mixed input

dns-benchmark benchmark
--resolvers "1.1.1.1,Cloudflare,8.8.8.8"
--domains "google.com,github.com"
--timeout 10
--retries 3
--formats csv
--output ./troubleshooting_mixed

root@kitploit:~
#### 单一```bash

# Single
dns-benchmark benchmark \
    --resolvers "1.1.1.1" \
    --domains "google.com" \
    --timeout 10 \
    --retries 3 \
    --formats csv \
    --output ./troubleshooting

🔧 工具

Risolver 管理```bash

Show default resolvers and domains

dns-benchmark list-defaults

Browse all available resolvers

dns-benchmark list-resolvers

Browse with detailed information

dns-benchmark list-resolvers --details

Filter by category

dns-benchmark list-resolvers --category security dns-benchmark list-resolvers --category privacy dns-benchmark list-resolvers --category family

Export resolvers to different formats

dns-benchmark list-resolvers --format csv dns-benchmark list-resolvers --format json

root@kitploit:~
### 域名管理```bash
# List all test domains
dns-benchmark list-domains

# Show domains by category
dns-benchmark list-domains --category tech
dns-benchmark list-domains --category ecommerce
dns-benchmark list-domains --category social

# Limit results
dns-benchmark list-domains --count 10
dns-benchmark list-domains --category news --count 5

# Export domain list
dns-benchmark list-domains --format csv
dns-benchmark list-domains --format json

类别概览```bash

View all available categories

dns-benchmark list-categories

root@kitploit:~
### 配置管理```bash
# Generate sample configuration
dns-benchmark generate-config --output sample_config.yaml

# Category-specific configurations
dns-benchmark generate-config --category security --output security_test.yaml
dns-benchmark generate-config --category family --output family_protection.yaml
dns-benchmark generate-config --category performance --output performance_test.yaml

# Custom configuration for specific use case
dns-benchmark generate-config --category privacy --output privacy_audit.yaml

完整使用指南

快速性能测试```bash

Basic test with progress bars

dns-benchmark benchmark --use-defaults

Quick test with only CSV output

dns-benchmark benchmark --use-defaults --formats csv --quiet

Test specific record types

dns-benchmark benchmark --use-defaults --record-types A,AAAA,MX

root@kitploit:~
附加分析标志:```bash
# Include domain and record-type analytics and error breakdown
dns-benchmark benchmark --use-defaults \
  --domain-stats --record-type-stats --error-breakdown

JSON 导出:```bash

Export a machine-readable bundle

dns-benchmark benchmark --use-defaults --json --output ./results

root@kitploit:~
#### 网络管理员```bash
# Compare internal vs external DNS
dns-benchmark benchmark \
  --resolvers "192.168.1.1,1.1.1.1,8.8.8.8,9.9.9.9" \
  --domains "internal.company.com,google.com,github.com,api.service.com" \
  --formats excel,pdf \
  --timeout 3 \
  --max-concurrent 50 \
  --output ./network_audit

# Test DNS failover scenarios
dns-benchmark benchmark \
  --resolvers data/primary_resolvers.json \
  --domains data/business_critical_domains.txt \
  --record-types A,AAAA \
  --retries 3 \
  --formats csv,excel \
  --output ./failover_test

ISP 和网络运营商```bash

Comprehensive ISP resolver comparison

dns-benchmark benchmark
--resolvers data/isp_resolvers.json
--domains data/popular_domains.txt
--timeout 5
--max-concurrent 100
--formats csv,excel,pdf
--output ./isp_performance_analysis

Regional performance testing

dns-benchmark benchmark
--resolvers data/regional_resolvers.json
--domains data/regional_domains.txt
--formats excel
--quiet
--output ./regional_analysis

root@kitploit:~
#### 开发与运维```bash
# Test application dependencies
dns-benchmark benchmark \
  --resolvers "1.1.1.1,8.8.8.8" \
  --domains "api.github.com,registry.npmjs.org,pypi.org,docker.io,aws.amazon.com" \
  --formats csv \
  --quiet \
  --output ./app_dependencies

# CI/CD integration test
dns-benchmark benchmark \
  --resolvers data/ci_resolvers.json \
  --domains data/ci_domains.txt \
  --timeout 2 \
  --formats csv \
  --quiet

安全审计员```bash

Security-focused resolver testing

dns-benchmark benchmark
--resolvers data/security_resolvers.json
--domains data/malware_test_domains.txt
--formats csv,pdf
--output ./security_audit

Privacy-focused testing

dns-benchmark benchmark
--resolvers data/privacy_resolvers.json
--domains data/tracking_domains.txt
--formats excel
--output ./privacy_analysis

root@kitploit:~
#### 企业IT```bash
# Corporate network assessment
dns-benchmark benchmark \
  --resolvers data/enterprise_resolvers.json \
  --domains data/corporate_domains.txt \
  --record-types A,AAAA,MX,TXT,SRV \
  --timeout 10 \
  --max-concurrent 25 \
  --retries 2 \
  --formats csv,excel,pdf \
  --output ./enterprise_dns_audit

# Multi-location testing
dns-benchmark benchmark \
  --resolvers data/global_resolvers.json \
  --domains data/international_domains.txt \
  --formats excel \
  --output ./global_performance

🔍 最终补丁的README调整

新的CLI选项


⚡ CLI命令

DNS基准测试工具现在包含三个专用命令,适用于不同的工作流程:

🚀 Top

快速按速度和可靠性对解析器进行排名。```bash

Rank resolvers quickly

dns-benchmark top

Use custom domain list

dns-benchmark top -d domains.txt

Export results to JSON

dns-benchmark top -o results.json

root@kitploit:~
### 📊 比较

通过详细统计信息并排比较解析器。```bash
# Compare Cloudflare, Google, and Quad9
dns-benchmark compare Cloudflare Google Quad9

# Compare by IP addresses
dns-benchmark compare 1.1.1.1 8.8.8.8 9.9.9.9

# Show detailed per-domain breakdown
dns-benchmark compare Cloudflare Google --show-details

# Export results to CSV
dns-benchmark compare Cloudflare Google -o results.csv

🔄 监控

通过告警持续监控解析器性能。```bash

Monitor default resolvers continuously (every 60s)

dns-benchmark monitoring --use-defaults

Monitor with custom resolvers and domains

dns-benchmark monitoring -r resolvers.json -d domains.txt

Run monitoring for 1 hour with alerts

dns-benchmark monitoring --use-defaults --interval 30 --duration 3600
--alert-latency 150 --alert-failure-rate 5 --output monitor.log

root@kitploit:~
---

### 🌟 命令展示

| 命令         | 用途                             | 典型使用场景                                   | 关键选项                                                        | 输出                                       |
|--------------|----------------------------------|------------------------------------------------|-----------------------------------------------------------------|--------------------------------------------|
| **top**      | 按速度和可靠性快速对解析器排名   | 快速检查当前哪个解析器最佳                     | `--domains`, `--record-types`, `--output`                       | 按延迟与成功率排序的解析器列表             |
| **compare**  | 特定解析器的并排比较             | 在选定解析器/域名间进行详细基准测试            | `--domains`, `--record-types`, `--iterations`, `--output`, `--show-details` | 包含延迟、成功率、每个域名详细分解的表格   |
| **monitoring** | 带告警的持续监控               | 实时追踪解析器性能随时间的变化                 | `--interval`, `--duration`, `--alert-latency`, `--alert-failure-rate`, `--output`, `--use-defaults` | 实时状态指示器、告警、可选的日志文件       |

---

## 📊 分析增强

- **迭代次数**:当运行超过一次迭代时显示。
- **缓存命中**:显示有多少查询由缓存提供(启用 `--use-cache` 时)。
- **失败跟踪**:反复出错的解析器会被计数,并可通过 `get_failed_resolvers()` 检查。
- **缓存统计**:可通过 `get_cache_stats()` 获取,显示缓存条目数量以及缓存是否启用。
- **预热结果**:预热查询在原始数据中标记为 `iteration=0`,便于分析时过滤。

示例摘要输出:```markdown

=== BENCHMARK SUMMARY ===
Total queries: 150
Successful: 140 (93.33%)
Average latency: 212.45 ms
Median latency: 198.12 ms
Fastest resolver: Cloudflare
Slowest resolver: Quad9
Iterations: 3
Cache hits: 40 (26.7%)

⚡ 最佳实践

⚙️ 配置文件

Resolvers JSON 格式```json

{ "resolvers": [ { "name": "Cloudflare", "ip": "1.1.1.1", "ipv6": "2606:4700:4700::1111" }, { "name": "Google DNS", "ip": "8.8.8.8", "ipv6": "2001:4860:4860::8888" } ] }

root@kitploit:~
### 域名文本文件格式```txt
# Popular websites
google.com
github.com
stackoverflow.com

# Corporate domains
microsoft.com
apple.com
amazon.com

# CDN and cloud
cloudflare.com
aws.amazon.com

输出格式

CSV 输出

  • 原始数据:带有时间戳和元数据的单个查询结果
  • 汇总统计:每个解析器的聚合指标
  • 域名统计:每个域名的指标(当使用 --domain-stats 时)
  • 记录类型统计:每种记录类型的指标(当使用 --record-type-stats 时)
  • 错误分类:按错误类型统计的数量(当使用 --error-breakdown 时)

Excel 报告

  • 原始数据表:所有带格式的查询结果
  • 解析器汇总:包含条件格式的全面统计
  • 域名统计:每个域名的性能(可选)
  • 记录类型统计:每种记录类型的性能(可选)
  • 错误分类:聚合的错误计数(可选)
  • 性能分析:图表及对比分析

PDF 报告

  • 执行摘要:主要发现和建议
  • 性能图表:延迟对比;可选的成功率图
  • 解析器排名:按平均延迟排序
  • 详细分析:含百分位数的技术深入分析

📄 可选的 PDF 导出

默认情况下,该工具支持 CSV 和 Excel 导出。
PDF 导出需要额外的依赖 weasyprint,为了避免在某些平台上出现运行时问题,它不会自动安装。

安装 PDF 支持

root@kitploit:~
pip install dnsvalidator[pdf]
``````bash
pip install dns-benchmark-tool[pdf]

用法

安装后,您可以通过CLI请求PDF输出:```bash dns-benchmark --use-defaults --formats pdf --output ./results

root@kitploit:~
如果未安装 `weasyprint` 并且您请求 PDF 输出,CLI 将显示:```bash
[-] Error during benchmark: PDF export requires 'weasyprint'. Install with: pip install dns-benchmark-tool[pdf]

⚠️ WeasyPrint 设置(用于 PDF 导出)

DNS Benchmark Tool 使用 WeasyPrint 生成 PDF 报告。
如果您需要 PDF 导出功能,除了 Python 包之外,还需要额外的系统库。

🛠 Linux (Debian/Ubuntu)```bash

sudo apt install python3-pip libpango-1.0-0 libpangoft2-1.0-0
libharfbuzz-subset0 libjpeg-dev libopenjp2-7-dev libffi-dev

root@kitploit:~
#### 🛠 macOS (Homebrew)```bash
brew install pango cairo libffi gdk-pixbuf jpeg openjpeg harfbuzz

🛠 Windows

使用以下方法之一安装 GTK+ 库:

  • MSYS2: 下载 MSYS2,然后运行: ```bash pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-libffi
    root@kitploit:~
  • GTK+ 64 位安装程序:下载 GTK+ 运行时并运行安装程序。

安装完成后重启终端。


✅ 验证安装

安装系统库后,安装 Python 额外组件:```bash pip install dns-benchmark-tool[pdf]

root@kitploit:~
然后运行:```bash
dns-benchmark --use-defaults --formats pdf --output ./results

JSON 导出

  • 包含机器可读的数据包:
    • 总体统计信息
    • 解析器统计信息
    • 原始查询结果
    • 域名统计信息
    • 记录类型统计信息
    • 错误分类

生成示例配置```bash

dns-benchmark generate-config
--category privacy
--output my-config.yaml

root@kitploit:~
## 性能优化```bash
# Large-scale testing (1000+ queries)
dns-benchmark benchmark \
  --resolvers data/many_resolvers.json \
  --domains data/many_domains.txt \
  --max-concurrent 50 \
  --timeout 3 \
  --quiet \
  --formats csv

# Unstable networks
dns-benchmark benchmark \
  --resolvers data/backup_resolvers.json \
  --domains data/critical_domains.txt \
  --timeout 10 \
  --retries 3 \
  --max-concurrent 10

# Quick diagnostics
dns-benchmark benchmark \
  --resolvers "1.1.1.1,8.8.8.8" \
  --domains "google.com,cloudflare.com" \
  --formats csv \
  --quiet \
  --timeout 2

故障排除```bash

Command not found

pip install -e . python -m dns_benchmark.cli --help

PDF generation fails (Ubuntu/Debian)

sudo apt-get install libcairo2 libpango-1.0-0 libpangocairo-1.0-0
libgdk-pixbuf2.0-0 libffi-dev shared-mime-info

Or skip PDF

dns-benchmark benchmark --use-defaults --formats csv,excel

Network timeouts

dns-benchmark benchmark --use-defaults --timeout 10 --retries 3 dns-benchmark benchmark --use-defaults --max-concurrent 25

root@kitploit:~
### 调试模式```bash
# Verbose run
python -m dns_benchmark.cli benchmark --use-defaults --formats csv

# Minimal configuration
dns-benchmark benchmark --resolvers "1.1.1.1" --domains "google.com" --formats csv

自动化与持续集成

计划任务```bash

Daily monitoring

0 2 * * * /usr/local/bin/dns-benchmark benchmark --use-defaults --formats csv --quiet --output /var/log/dns_benchmark/daily_$(date +%Y%m%d)

Time-based variability (every 6 hours)

0 */6 * * * /usr/local/bin/dns-benchmark benchmark --use-defaults --formats csv --quiet --output /var/log/dns_benchmark/$(date +%Y%m%d_%H)

root@kitploit:~
### GitHub Actions 示例```yaml
- name: DNS Performance Test
  run: |
    pip install dnspython pandas click tqdm colorama
    dns-benchmark benchmark \
      --resolvers "1.1.1.1,8.8.8.8" \
      --domains "api.service.com,database.service.com" \
      --formats csv \
      --quiet

截图

将图片放置在 docs/screenshots/ 目录中:

  • docs/screenshots/cli_run.png
  • docs/screenshots/excel_report.png
  • docs/screenshots/pdf_summary.png
  • docs/screenshots/pdf_charts.png
  • docs/screenshots/excel_charts.png
  • docs/screenshots/real_time_monitoring.png

1. CLI 基准测试运行

CLI 基准测试运行

2. Excel 报告输出

Excel 报告输出

3. PDF 执行摘要

PDF 执行摘要

4. PDF 图表

PDF 图表

5. Excel 图表

Excel 图表

6. 实时监控

实时监控


获取帮助```bash

dns-benchmark --help dns-benchmark benchmark --help dns-benchmark list-resolvers --help dns-benchmark list-domains --help dns-benchmark list-categories --help dns-benchmark generate-config --help

root@kitploit:~
常见场景:```bash
# I'm new — where to start?
dns-benchmark list-defaults
dns-benchmark benchmark --use-defaults

# Test specific resolvers
dns-benchmark list-resolvers --category security
dns-benchmark benchmark --resolvers data/security_resolvers.json --use-defaults

# Generate a management report
dns-benchmark benchmark --use-defaults --formats excel,pdf \
  --domain-stats --record-type-stats --error-breakdown --json \
  --output ./management_report

发布工作流

  • 前提条件

    • **已配置 GPG 密钥:**运行 make gpg-check 验证。
    • **分支保护:**main 分支需要签名提交并通过 CI。
    • **CI 发布:**由匹配 vX.Y.Z 的签名标签触发。
  • 准备发布(签名)

    • 补丁/次要/主要版本号提升:

      root@kitploit:~
      make release-patch      # or: make release-minor / make release-major
      
      • 更新版本。
      • 创建或复用 release/X.Y.Z。
      • 制作签名提交并推送分支。
    • **打开 PR:**从 release/X.Y.Z 合并到 main,待 CI 通过后合并。

  • 标签与发布

    • 创建签名标签并推送:

      root@kitploit:~
      make release-tag VERSION=X.Y.Z
      
      • 为 main 打上 vX.Y.Z 标签(签名)。
      • CI 发布到 PyPI。
  • 手动替代方案

    • 创建分支并签名提交:

      root@kitploit:~
      git checkout -b release/manually-update-version-based-on-release-pattern
      git add .
      git commit -S -m "Release release/$NEXT_VERSION"
      git push origin release/$NEXT_VERSION
      

🌐 BuildTools Web Dashboard — 现已上线

**CLI 永远免费。**网络仪表盘现已在 buildtools.net 上线。

现已上线内容(免费版 + 专业版)

  • 📊 DNS 基准测试 — 可视化结果、历史记录,由本 CLI 引擎驱动
  • 🔔 DNS 监控 — 当记录变更时实时告警
  • 🆓 免费版 — 立即开始,无需信用卡
  • 💼 专业版 €14/月 — 延长保留期和优先支持

预计 2026 年第二季度上线

  • ⚡ HTTP 基准测试 — 衡量 API 响应时间和 CDN 性能
  • 🔒 SSL 监控 — 在问题出现前发出证书到期告警

预计 2026 年第三季度上线

  • 🌍 多区域测试 — 同时从多个地点进行测试

→ 免费注册 buildtools.net


🛣️ 路线图

✅ 当前版本(CLI 版)

  • 基准测试、比较、监控 DNS 解析器
  • 支持 DoH、DoT、DNSSEC(本版本新增)
  • 导出为 CSV、Excel、PDF、JSON

✅ 网络仪表盘(已上线)

  • DNS 基准测试及可视化历史记录
  • DNS 监控及实时告警
  • 免费版 + 专业版 €14/月
  • buildtools.net

🔜 预计 2026 年第二季度上线

  • HTTP 基准测试
  • SSL 监控

2026 年第三季度

  • 多区域测试

🤝 贡献

我们欢迎贡献!以下是一些参与方式:

贡献方式

  • 🐛 报告错误 - 提交 Issue
  • 💡 建议功能 - 发起讨论
  • 📝 改进文档 - README、示例、教程
  • 🔧 提交 PR - 错误修复、功能、测试
  • ⭐ 给仓库加星 - 帮助他人发现该工具
  • 📢 传播分享 - Twitter、博客、分享

🛠 开发与 Makefile 命令

本项目包含一个 Makefile,用于简化安装、测试和代码质量检查。```makefile .PHONY: install install-dev uninstall mypy black isort flake8 cov test clean cli-test

🔧 Install package (runtime only)

install: pip install .

🔧 Install package with dev extras (pytest, mypy, flake8, black, isort, etc.)

install-dev: pip install .[dev]

🔧 Uninstall package

uninstall: pip uninstall -y dns-benchmark-tool
dnspython pandas aiohttp click pyfiglet colorama Jinja2 weasyprint openpyxl pyyaml tqdm matplotlib
mypy black flake8 autopep8 pytest coverage isort

mypy: mypy .

isort: isort .

black: black .

flake8: flake8 src tests --ignore=E126,E501,E712,F405,F403,E266,W503 --max-line-length=88 --extend-ignore=E203

cov: coverage erase coverage run --source=src -m pytest -vv -s coverage html

test: mypy black isort flake8 cov

clean: rm -rf pycache .pytest_cache htmlcov .coverage coverage.xml
build dist *.egg-info .eggs benchmark_results cli-test:

Run only the CLI smoke tests marked with @pytest.mark.cli

pytest -vv -s -m cli tests/test_cli_commands.py

root@kitploit:~
### 常见用法

- **仅安装运行时**  ```bash
  make install
  • 安装开发依赖项 ```bash make install-dev
    root@kitploit:~
  • 运行类型检查、代码检查、格式化和测试 ```bash make test
    root@kitploit:~
  • 仅运行CLI冒烟测试 ```bash make cli-test
    root@kitploit:~
  • 清理构建/测试产物 ```bash make clean
    root@kitploit:~

代码准则

  • 遵循 PEP 8 风格指南
  • 为新功能添加测试
  • 更新文档
  • 保持 PR 专注且原子化

❓ 常见问题

为什么我的 ISP 的 DNS 不是最快的?

本地 ISP 的 DNS 通常有缓存优势,但可能缺乏:

  • 全局任播网络(对远程域名较慢)
  • DNSSEC 验证
  • 隐私功能(DoH/DoT)
  • 可靠性保障

两者都测试,并基于 YOUR 优先级来决定!

我应该多久做一次 DNS 基准测试?
  • 一次性:在选择 DNS 提供商时
  • 每月:用于网络健康检查
  • 迁移前:切换提供商时
  • 出现问题后:排查性能问题
我可以测试自己的 DNS 服务器吗?

可以!只需将其添加到自定义解析器 JSON 文件中:```json { "resolvers": [ {"name": "My DNS", "ip": "192.168.1.1"} ] }

root@kitploit:~
</details>

<details>
<summary><b>CLI 版本和托管版本有什么区别?</b></summary>

**CLI(永久免费):**

- 从您的位置运行测试
- 将结果保存到本地
- 开源——引擎与仪表板相同

**Web 仪表板(实时运行于 buildtools.net):**

- 可视化基准测试结果和历史记录
- DNS 监控,支持实时警报
- 提供免费套餐,Pro 版 €14/月
- 2026 年 Q3 将推出多区域测试
</details>

<details>
<summary><b>这个工具可以在生产环境中安全使用吗?</b></summary>

是的!该工具仅执行 DNS 查询(读取操作)。它不会:
- 修改 DNS 记录
- 进行攻击
- 向外部服务器发送数据(除非您启用托管功能)

所有测试都是标准 DNS 查询,任何解析器每天都会处理。

</details>

<details>
<summary><b>为什么每次运行的结果会不同?</b></summary>

DNS 性能因以下因素而异:
- 网络状况
- DNS 缓存(解析器和中间缓存)
- 服务器负载
- 地理路由变化

运行多次迭代(`--iterations 5`)可以获得更一致的结果。

</details>

---

## 🔗 链接与支持

### 官方

- **网站**:[buildtools.net](https://buildtools.net)
- **PyPI**:[dns-benchmark-tool](https://pypi.org/project/dns-benchmark-tool/)
- **GitHub**:[frankovo/dns-benchmark-tool](https://github.com/frankovo/dns-benchmark-tool)

### 社区

- **讨论**:[GitHub 讨论](https://github.com/frankovo/dns-benchmark-tool/discussions)
- **问题报告**:[Bug 报告](https://github.com/frankovo/dns-benchmark-tool/issues)

### 统计数据

- **下载量**:1,400+(本周)
- **活跃用户**:600+

---

## 许可证

本项目采用 MIT 许可证 —— 详情请参阅 [LICENSE](https://github.com/net-benchmark/dns-benchmark-tool/blob/main/LICENSE) 文件。

---

<div align="center">

**由 [@frankovo](https://github.com/frankovo) 用 ❤️ 构建**

属于 [BuildTools](https://buildtools.net) - 网络性能套件

[⭐ 在 GitHub 上星标](https://github.com/frankovo/dns-benchmark-tool) • [📦 从 PyPI 安装](https://pypi.org/project/dns-benchmark-tool/)

</div>
下载工具
  • 之后(两者皆可)
  • 命名解析器
  • 混合输入
  • 单个
  • 🔧 实用工具
    • 解析器管理
    • 域名管理
    • 类别概览
    • 配置管理
  • 完整使用指南
    • 快速性能测试
      • 网络管理员
      • ISP 与网络运营商
      • 开发者与 DevOps
      • 安全审计员
      • 企业 IT
  • 🔍 最终补丁的 README 调整
    • 新的 CLI 选项
  • ⚡ CLI 命令
    • 🚀 排行榜
    • 📊 比较
    • 🔄 监控
    • 🌟 命令展示
  • 📊 分析增强
  • ⚡ 最佳实践
  • ⚙️ 配置文件
    • 解析器 JSON 格式
    • 域名文本文件格式
  • 输出格式
    • CSV 输出
    • Excel 报告
    • PDF 报告
    • 📄 可选的 PDF 导出
      • 安装 PDF 支持
      • 用法
    • ⚠️ WeasyPrint 设置(用于 PDF 导出)
      • 🛠 Linux (Debian/Ubuntu)
      • 🛠 macOS (Homebrew)
      • 🛠 Windows
      • ✅ 验证安装
    • JSON 导出
    • 生成示例配置
  • 性能优化
  • 故障排除
    • 调试模式
  • 自动化与 CI
    • Cron 任务
    • GitHub Actions 示例
  • 截图
    • 1. CLI 基准测试运行
    • 2. Excel 报告输出
    • 3. PDF 执行摘要
    • 4. PDF 图表
    • 5. Excel 图表
    • 6. 实时监控
  • 获取帮助
  • 发布流程
  • 🌐 BuildTools 网页仪表板 — 现已上线
    • 现已上线的内容(免费 + 专业版)
    • 2026 年第二季度即将推出
    • 2026 年第三季度即将推出
  • 🛣️ 路线图
    • ✅ 当前版本 (CLI 版)
    • ✅ 网页仪表板 (已上线)
    • 🔜 2026 年第二季度即将推出
      • 2026 年第三季度
  • 🤝 贡献指南
    • 贡献方式
    • 🛠 开发与 Makefile 命令
    • 常规用法
    • 代码规范
  • ❓ 常见问题
  • 🔗 链接与支持
    • 官方
    • 社区
    • 统计
  • 许可
  • 命令功能快速示例
    benchmark完整 DNS 基准测试并导出dns-benchmark benchmark --use-defaults
    top按速度对所有解析器排名dns-benchmark top --limit 5
    compare并排比较解析器dns-benchmark compare Cloudflare Google Quad9
    monitoring带警报的持续监控dns-benchmark monitoring --use-defaults
    选项描述示例
    --iterations, -i运行完整的基准测试循环 N次dns-benchmark benchmark --use-defaults -i 3
    --use-cache允许在多次迭代中重用缓存结果dns-benchmark benchmark --use-defaults -i 3 --use-cache
    --warmup运行完全预热(所有解析器 × 域名 × 记录类型)dns-benchmark benchmark --use-defaults --warmup
    --warmup-fast运行轻量级预热(每个解析器一次探测)dns-benchmark benchmark --use-defaults --warmup-fast
    --include-charts在PDF/Excel报告中嵌入图表用于可视化性能分析dns-benchmark benchmark --use-defaults --formats pdf,excel --include-charts
    模式推荐标志目的
    快速运行--iterations 1 --timeout 1 --retries 0 --warmup-fast快速反馈,最少重试,轻量预热。适合快速检查。
    全面运行--iterations 3 --use-cache --warmup --timeout 5 --retries 2多次测试,启用缓存,完整预热。最适合详细基准测试。
    调试模式--iterations 1 --timeout 10 --retries 0 --quiet长超时,无重试,最小输出。用于诊断解析器问题。
    平衡运行--iterations 2 --use-cache --warmup-fast --timeout 2 --retries 1折中方案:适中速度,部分重试,启用缓存,快速预热。
  • 打开 PR 并合并到 main。

  • 然后打标签:

    root@kitploit:~
    make release-tag VERSION=$NEXT_VERSION
    
  • 注意事项

    • 签名提交:git commit -S ...
    • 签名标签:git tag -s vX.Y.Z -m "Release vX.Y.Z"
    • 版本来源:pyproject.toml 和 src/dns_benchmark/__init__.py