跳到正文
发现
SmartDNS:本地 DNS 加速服务器
命令行工具效率工具

SmartDNS:本地 DNS 加速服务器

运行在本地的 DNS 服务器,从多个上游服务器获取解析结果并返回访问最快的 IP,提升上网速度。

admin
发布于 2026-10-28
浏览
4
访问
0
下载
0
版本
vRelease48.4
平台
Windows、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

SmartDNS 是一个运行在本地的 DNS 服务器。它接受来自本地客户端的 DNS 查询请求,然后从多个上游 DNS 服务器获取查询结果,并检测从本地网络访问速度最快的服务器 IP,将最快的结果返回给客户端,以此提高网络访问速度。

与 DNSmasq 的 all-servers 模式不同,SmartDNS 返回的是访问速度最快的解析结果。项目使用 C 语言编写,采用多线程异步 IO 模式并带 cache 缓存,资源占用较少。

工作原理

  1. SmartDNS 接收本地网络设备的 DNS 查询请求,如 PC、手机的查询请求;
  2. 将查询请求发送到多个上游 DNS 服务器,支持 UDP 标准端口或非标准端口查询,以及 TCP 查询;
  3. 上游 DNS 服务器返回域名对应的服务器 IP 地址列表,SmartDNS 检测从本地网络访问速度最快的服务器 IP;
  4. 将访问速度最快的服务器 IP 返回给本地客户端。

效果参考

README 给出的对比示例中,使用阿里 DNS 解析 www.baidu.com 得到的地址 ping 约 24ms / 31ms,而使用 SmartDNS 得到的地址 ping 约 6ms。

主要功能

  • 多虚拟 DNS 服务器:支持多个虚拟 DNS 服务器,不同虚拟服务器可使用不同端口、规则和客户端范围。
  • 多 DNS 上游服务器:可配置多个上游 DNS 服务器并同时查询,即使其中有服务器异常也不影响查询。
  • 按客户端独立控制:支持基于 MAC、IP 地址控制客户端使用不同的查询规则,可实现家长控制等功能。
  • 返回最快 IP:从域名所属 IP 地址列表中查找访问速度最快的地址返回给客户端。
  • 多种查询协议:支持 UDP、TCP、DoT、DoH、DoQ 和 DoH3 查询及服务,支持非 53 端口查询,支持通过 socks5、HTTP 代理查询。
  • 特定域名 IP 指定:可指定域名的 IP 地址,达到广告过滤、避免恶意网站的效果。
  • 域名高性能后缀匹配:支持域名后缀匹配模式简化过滤配置,过滤 20 万条记录时间 < 1ms。
  • 域名分流:不同类型的域名向不同的 DNS 服务器查询,支持 iptables 和 nftables 分流;支持测速失败时将域名结果设置到对应 ipset 和 nftset 集合。
  • 多平台支持:支持标准 Linux 系统(树莓派)、OpenWrt 各种固件和华硕路由器原生固件,同时支持 WSL(适用于 Linux 的 Windows 子系统)。
  • IPv4 / IPv6 双栈:支持 A 和 AAAA 记录查询、双栈 IP 速度优化,并支持完全禁用 IPv6 AAAA 解析。
  • DNS64:支持 DNS64 转换。
  • 高性能、占用资源少:多线程异步 IO 模式,cache 缓存查询结果。
  • 主流系统官方支持:主流路由系统官方软件源可安装 SmartDNS。

安装与使用

完整的使用指导请见 SmartDNS 官网:https://pymumu.github.io/smartdns,各平台安装方式(如 OpenWrt APK 包安装)见官网对应文档:https://pymumu.github.io/smartdns/install/openwrt/。

编译

代码编译:SmartDNS 提供了编译软件包的脚本 package/build-pkg.sh,支持编译 LuCI、Debian、OpenWrt 和 Optware 安装包。

文档编译:文档分支为 doc,安装 mkdocs 工具后,执行 mkdocs build 编译。

注意事项

  • 项目基于 GPL V3 协议开源。
  • 非静态版本可从 https://github.com/PikuZheng/smartdns/releases/ 获取。
  • 使用前建议先阅读官方文档,按所在平台(Linux、OpenWrt、路由器固件、WSL 等)选择对应的安装与配置方式。

本作品整理自 GitHub 开源项目 pymumu/smartdns,原作者 @pymumu,许可证 GPL-3.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. vRelease48.4当前版本

    Release48.4 主要解决了一些 BUG,属于问题修复版本。

评论