10个版本 (5个破坏性版本)
0.6.0 | 2024年6月2日 |
---|---|
0.5.1 | 2024年5月16日 |
0.4.0 | 2024年4月25日 |
0.3.0 | 2023年12月23日 |
0.1.2 | 2023年10月5日 |
#5 in #server-response
每月33次下载
345KB
790 行
dns-bench
描述
此仓库提供使用Rust编写的DNS基准测试命令行工具。它遍历内置的公共DNS服务器列表,测量它们的响应时间,并在控制台打印排序后的结果表。它可以用来找到您所在位置最快的DNS,以获得更好的网络浏览体验。以下是一些控制台输出示例、功能列表和内置DNS服务器列表。
示例

功能
- 内置公共DNS服务器列表。
- 请求计数配置。默认情况下,每个DNS服务器发送10个请求。
- 线程计数配置。默认情况下,使用8个线程。
- 超时配置。默认情况下,使用3秒超时。
- 域名配置。默认情况下,使用google.com域名。
- 协议配置,TCP或UDP。默认情况下,使用UDP。
- 查找IP版本配置,IPv4或IPv6。默认情况下,使用IPv4。
- 建立连接使用的IP版本配置,IPv4或IPv6。默认情况下,使用IPv4。
- 表格样式配置。默认情况下,使用圆角样式。
- 能够在用户的家目录下保存喜欢的配置文件(
/home/user/.dns-bench/config.toml
),以避免每次都输入它们。 - 能够提供自定义服务器列表,而不是内置列表。
内置DNS服务器列表
- Google公共DNS
- Cloudflare
- Quad9
- ControlD
- OpenDNS
- CleanBrowsing
- AdGuard DNS
- Comodo Secure DNS
- Level3
- Verisign
- DNS.WATCH
- Norton ConnectSafe
安装
选择哪种方法?
- 如果您在计算机上没有安装Rust编程语言环境,那么从Docker Hub进行安装将是您最好的选择。
- 如果您在计算机上已安装Rust编程语言环境,则可以选择从crates.io进行安装或从git仓库进行安装。
- 从git仓库进行安装仅适用于您想使用开发版本而不是稳定版本或crates.io服务不可用的情况。
从crates.io
运行以下命令,等待程序编译完成
$ cargo install dns-bench
现在您可以运行编译的二进制文件
$ dns-bench [OPTIONS]
从git仓库
运行以下命令,等待程序编译完成
$ cargo install --git https://github.com/qwerty541/dns-bench.git --tag v0.6.0 dns-bench
还可以取消标签选项来安装最新开发版本。
现在您可以运行编译的二进制文件
$ dns-bench [OPTIONS]
从Docker Hub
运行以下命令以拉取镜像
$ docker pull qwerty541/dns-bench:0.6.0
现在您可以在容器内运行此工具
$ docker run --rm --name dns-bench qwerty541/dns-bench:0.6.0
如果您想传递一些选项,可以这样做
$ docker run --rm --name dns-bench qwerty541/dns-bench:0.6.0 /bin/bash -c "dns-bench --requests 20 --domain microsoft.com --style re-structured-text"
选项
以下是当前支持选项的列表。
选项 | 描述 | 默认值 | 可能值 |
---|---|---|---|
--domain |
要解析的域名。 | google.com | 任何域名 |
--threads |
要使用的线程数。 | 8 | 任何正整数 |
--requests |
要发送到每个DNS服务器的请求数量。 | 10 | 任何正整数 |
--timeout |
秒数超时。 | 3 | 任何正整数 |
--protocol |
要使用的协议。 | udp | tcp, udp |
--name-servers-ip |
用于建立连接的IP版本。 | v4 | v4, v6 |
--lookup-ip |
用于查找的IP版本。 | v4 | v4, v6 |
--style |
要使用的表格样式。 | rounded | empty, blank, ascii, psql, markdown, modern, sharp, rounded, modern-rounded, extended, dots, re-structured-text, ascii-rounded |
--save-config |
将配置保存到用户主目录中的文件。 | ||
--custom-servers-file |
提供包含自定义服务器列表的文件的路径,而不是使用内置列表。示例文件格式可以在这里(IPv4)和这里(IPv6)找到。 |
许可协议
许可协议为以下之一
- Apache License, Version 2.0, (LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT或https://opensource.org/licenses/MIT)
根据您选择。
贡献
除非您明确声明,否则您提交的任何旨在包含在作品中的有意贡献,如Apache-2.0许可协议中定义的,应如上双许可,不附加任何额外条款或条件。
依赖项
~9–19MB
~259K SLoC