littlebot
Published on 2025-04-12 / 0 Visits
0

【源码】基于C语言的SmartDNS智能DNS服务器

项目简介

SmartDNS是运行在本地的DNS服务器,接收本地客户端的DNS查询请求,从多个上游DNS服务器获取查询结果,将访问速度最快的结果返回给客户端,以此提高网络访问速度。它支持UDP、TCP、TLS和HTTPS等多种查询协议,还能指定特定域名的IP地址,实现广告过滤和避免访问恶意网站。

项目的主要特性和功能

  1. 支持配置多个上游DNS服务器并同时查询,即便部分DNS服务器异常也不影响查询。
  2. 能从域名所属IP地址列表中找出访问速度最快的IP地址返回给客户端,提升网络访问速度。
  3. 支持UDP、TCP、TLS和HTTPS查询,以及非53端口查询。
  4. 可指定域名的IP地址,实现广告过滤,避免访问恶意网站。
  5. 支持域名后缀匹配模式,简化过滤配置,过滤20万条记录时间少于1ms。
  6. 支持域名分流,不同类型的域名可到不同的DNS服务器查询。
  7. 支持标准Linux系统(树莓派)、openwrt系统各种固件、华硕路由器原生固件,以及Windows 10 WSL。
  8. 支持IPV4、IPV6双栈,可查询A、AAAA记录,支持双栈IP速度优化,还能完全禁用IPV6 AAAA解析。
  9. 采用多线程异步IO模式,通过cache缓存查询结果,高性能且占用资源少。

安装使用步骤

标准Linux系统安装(树莓派、X86_64系统)

  1. 安装
    • 树莓派系统:下载.deb安装包,执行dpkg -i smartdns.xxxxxxxx.arm - debian - all.deb
    • X86_64系统:下载.tar.gz安装包,执行tar zxf smartdns.xxxxxxxx.x86_64 - linux - all.tar.gzcd smartdnschmod +x ./install./install -i
  2. 修改配置:编辑配置文件/etc/smartdns/smartdns.conf,添加上游DNS服务器配置。
  3. 启动服务:执行systemctl enable smartdnssystemctl start smartdns
  4. 配置DNS请求转发:修改本地路由器的DNS服务器为SmartDNS。

OpenWrt系统安装

  1. 安装:将安装包上传到路由器,执行opkg install smartdns.xxxxxxxx.xxxx.ipkopkg install luci - app - smartdns.xxxxxxxx.xxxx.all.ipk
  2. 修改配置:登录OpenWrt管理页面,配置上游DNS服务器和特定域名的IP地址。
  3. 启动服务:在配置页面勾选“启用”SmartDNS服务。

华硕路由器原生固件/梅林固件安装

  1. 安装:通过SSH登录路由器,上传安装包并执行安装命令。
  2. 重启路由器:重启后用nslookup命令检查SmartDNS服务是否正常。

Windows 10 WSL安装

  1. 安装WSL Ubuntu系统:按WSL安装说明安装WSL。
  2. 安装SmartDNS:下载安装包解压到D盘,运行安装脚本。
  3. 修改配置:编辑smartdns.conf配置文件,添加上游DNS服务器配置。
  4. 启动服务:运行reload.bat脚本重新加载配置。
  5. 配置DNS请求转发:将Windows的默认DNS服务器修改为127.0.0.1

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】