Repolode
pymumu

pymumu/smartdns

一个本地 DNS 服务器,从多个上游解析器查询并返回访问速度最快的 IP 地址。

Star
11,378
Fork
1,250
未关闭 Issue
322
最近提交
昨天

这是什么?

SmartDNS 是运行在本地网络中的 DNS 服务器。它接收本地设备的域名查询,同时转发给多个上游 DNS 服务器,再对返回的 IP 地址逐一测速,只把访问最快的结果返回给客户端。与 dnsmasq 的 all-servers 模式不同,它只返回最快的一条解析结果。

除了测速选优,它还支持为指定域名设置 IP,用于过滤广告和屏蔽恶意网站,并支持域名后缀匹配与按域名分流到不同上游。可以基于 MAC 地址或 IP 地址为不同客户端设置不同规则,例如实现家长控制。上游协议支持 DoT、DoH、DoQ 和 DoH3,也支持通过 SOCKS5 与 HTTP 代理查询。

它可运行在树莓派等标准 Linux 系统、OpenWrt 各类固件、华硕路由器原生固件、WSL 以及 Windows 上,并可与 ipset、nftables 集合联动实现分流,还自带 Web 仪表盘。

核心功能

  • 01并行查询多个上游 DNS 服务器,返回响应最快的 IP。
  • 02支持 UDP、TCP、DoT、DoH、DoQ 和 DoH3 等查询协议。
  • 03可为指定域名设置 IP,用于广告过滤和屏蔽恶意网站。
  • 04基于 MAC 或 IP 地址为不同客户端应用不同的查询规则。
  • 05与 ipset、nftables 集合联动,实现基于域名的流量分流。
  • 06支持 IPv4、IPv6、A/AAAA 记录及 DNS64 转换。

适用场景

  • 在家庭或小型办公网络中,通过路由器加速网站访问。
  • 为局域网内所有设备屏蔽广告和跟踪域名。
  • 借助按设备划分的 DNS 规则实现家长控制。
  • 在 OpenWrt 路由器或树莓派上部署加密的私有 DNS 解析器。

快速上手

  1. 1

    在官方网站阅读使用指南

  2. 2

    使用自带脚本(package/build-pkg.sh)编译安装包

使用前须知

  • 采用 GPL-3.0 协议,这是一种 copyleft 许可证,衍生作品需以相同条款开源。
  • 主 README 为中文,且未提供直接的安装命令,安装需参考官方网站或编译脚本。

收录于专题

标签

常见问题

smartdns 是什么?
一个本地 DNS 服务器,从多个上游解析器查询并返回访问速度最快的 IP 地址。 SmartDNS 是运行在本地网络中的 DNS 服务器。它接收本地设备的域名查询,同时转发给多个上游 DNS 服务器,再对返回的 IP 地址逐一测速,只把访问最快的结果返回给客户端。与 dnsmasq 的 all-servers 模式不同,它只返回最快的一条解析结果。
smartdns 可以免费使用吗?用的什么许可证?
smartdns 以 GPL-3.0 许可证开源。用于商业产品前,请先确认许可证条款。
smartdns 还在维护吗?
活跃维护中。smartdns 最近一次提交是在 2026年11月6日。
smartdns 适合用来做什么?
在家庭或小型办公网络中,通过路由器加速网站访问。 为局域网内所有设备屏蔽广告和跟踪域名。 借助按设备划分的 DNS 规则实现家长控制。 在 OpenWrt 路由器或树莓派上部署加密的私有 DNS 解析器。
smartdns 怎么安装和运行?
在官方网站阅读使用指南 使用自带脚本(package/build-pkg.sh)编译安装包
在哪里获取 smartdns?
源代码和安装说明在 GitHub 上:https://github.com/pymumu/smartdns

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目