#dns #benchmark #networking #server-response #rust

app dns-bench

找到您所在位置最快的DNS以改善网络浏览体验

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次下载

MIT/Apache

345KB
790

dns-bench

Crates.io Rust version License Workflow Status

描述

此仓库提供使用Rust编写的DNS基准测试命令行工具。它遍历内置的公共DNS服务器列表,测量它们的响应时间,并在控制台打印排序后的结果表。它可以用来找到您所在位置最快的DNS,以获得更好的网络浏览体验。以下是一些控制台输出示例、功能列表和内置DNS服务器列表。

示例

Example

功能

  • 内置公共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-2.0许可协议中定义的,应如上双许可,不附加任何额外条款或条件。

依赖项

~9–19MB
~259K SLoC