{"id":27586868,"url":"https://github.com/xxnuo/dns-benchmark","last_synced_at":"2025-12-24T09:17:12.389Z","repository":{"id":258770974,"uuid":"875300529","full_name":"xxnuo/dns-benchmark","owner":"xxnuo","description":"dnspy 是一个批量 DNS 服务器基准测试工具，用于测量全世界的 DNS 服务器的可访问性和性能。生成可视化图表。dnspy is a bulk DNS server benchmarking tool used to measure the accessibility and performance of DNS servers worldwide. It generates visual charts.","archived":false,"fork":false,"pushed_at":"2024-10-24T13:26:24.000Z","size":801,"stargazers_count":136,"open_issues_count":0,"forks_count":12,"subscribers_count":1,"default_branch":"v1","last_synced_at":"2024-10-25T15:54:42.071Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xxnuo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-19T16:06:02.000Z","updated_at":"2024-10-25T10:17:23.000Z","dependencies_parsed_at":"2024-11-07T10:19:27.349Z","dependency_job_id":"640b5131-56a6-4f8a-bb0a-2e9579a753bc","html_url":"https://github.com/xxnuo/dns-benchmark","commit_stats":null,"previous_names":["xxnuo/dns-benchmark"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xxnuo%2Fdns-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xxnuo%2Fdns-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xxnuo%2Fdns-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xxnuo%2Fdns-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xxnuo","download_url":"https://codeload.github.com/xxnuo/dns-benchmark/tar.gz/refs/heads/v1","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250188176,"owners_count":21389260,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-22T07:01:02.512Z","updated_at":"2025-12-24T09:17:12.317Z","avatar_url":"https://github.com/xxnuo.png","language":"HTML","funding_links":[],"categories":["DNS"],"sub_categories":[],"readme":"我测了全世界...的 DNS 服务器\n\n# 测试全世界的 DNS 服务器能否访问及性能 - 超级多\n\n如题，测试全世界的 DNS 服务器能否访问及性能，一共有 `989` 个 DNS 服务器地址，列表在 `providers.txt` 文件中（包括同一个服务的 UDP、DoH、DoT 地址）。测了 3 个小时，终于测完了。\n\n中部电信，Wi-Fi6E 环境，macOS 14.5，每个服务器测 10 秒。\n话不多说，直接上结果。\n\n## 测试结果\n\n\u003e 可点击柱状图的每个柱子复制对应 DNS 服务器地址\n\u003e\n\u003e 标题下按钮可切换数据源，有\n\u003e - `加密 DNS 服务器（DoH、DoT、QUIC）`（默认展示类型）\n\u003e - `所有 DNS 服务器数据（加密 DNS 服务器 + IPv4、IPv6 非加密服务器）`\n\u003e \n\n[数据页面](https://xxnuo.github.io/dns-benchmark/results.html)\n\n[数据页面(国内镜像)](https://dns-benchmark.gh.2020818.xyz/results.html)\n\n## 测试结果预览图\n\n![测试结果预览](./preview.jpeg)\n\n具体项目去数据页面看吧！\n\n## 自测方法\n\n## **不是很精通命令行操作不建议用下面这个版本的方法自测！写的比较粗糙！需要按你自己的情况调整！**\n## **我正在用 golang 重写一个一键测速工具，更方便自己测试！关注本仓库 master 分支后续更新～**\n\n\u003e Github 仓库 [dns-benchmark](https://github.com/xxnuo/dns-benchmark/)\n\n首先关闭所有代理软件的 Tun 模式、虚拟网卡模式，否则会影响测试结果。\n\n### 安装必须软件包[按需执行]\n\n```bash\nbrew tap tantalor93/dnspyre\nbrew install dnspyre jq python3 git\npip3 install -U geoip2\n```\n\n### DNS 服务器地址列表来源[可直接用本仓库的 providers.txt]\n\nGithub 项目：\n\n```\nKnowledgeBaseDNS/docs/general/dns-providers.md\ncurl.wiki/DNS-over-HTTPS.md\n```\n\n`providers.txt` 提取方法：\n\n```\nCursor Chat 选择文件，输入提示: \"按顺序提取所有的 dns 到代码段中，一行一个\"\n然后不停提示`继续`，直到完全提取所有条目，复制粘贴到 providers-raw.txt 文件中。\n用 Excel 的数据菜单里的删除重复项功能去重，保存为 providers.txt\n```\n\n得到 `989` 个 DNS 服务器地址（包括同一个服务的 UDP、DoH、DoT 地址）。\n\n### macOS 测试过程\n\n开始前保证已经安装了必须软件包：`git dnspyre jq python3:geoip2`。\n\n```bash\n# 下载本仓库\ngit clone https://github.com/xxnuo/dns-benchmark.git\ncd dns-benchmark\ncurl https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country.mmdb -o ./Country.mmdb\ncurl https://cdn.jsdelivr.net/gh/Tantalor93/dnspyre@master/data/1000-domains -o ./1000-domains\n\nchmod +x bench.sh\nunset HTTPS_PROXY HTTP_PROXY ALL_PROXY\nunset https_proxy http_proxy all_proxy\n# 运行测试\n./bench.sh\n# 保存结果\ncp results-\u003c你的文件日期\u003e.json results.json\n# 分离国内和国外数据得到 results-with-geo.json\npython3 provider-domains-sort.py results.json\ncp results.json results.json.bak\nmv results-with-geo.json results.json\n# 根据算法给每个结果打总分\npython3 provider-domains-score.py results.json\ncp results.json results.json.bak2\nmv results-with-score.json results.json\n# 生成图表\nchmod +x graph.sh\n./graph.sh results.json\n```\n\n得到 `results.html` 文件，会自动用浏览器打开。\n\nDone!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxxnuo%2Fdns-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxxnuo%2Fdns-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxxnuo%2Fdns-benchmark/lists"}