Skip to content

He-Xun/smartdns-server-dockercompose

Repository files navigation

SmartDNS-Server Docker 一键部署方案

项目简介

本项目旨在为个人和中小型团队提供一套高效、易用、可定制的智能DNS分流与广告拦截一体化Docker解决方案。集成SmartDNS、AdGuard Home、CloudFlared、Redis等主流组件,支持国内外域名智能分流、广告过滤、DoH/DoT加密、Web管理界面等功能。

核心组件说明

  • SmartDNS:高性能智能DNS分流引擎,支持国内外域名自动分组解析,提升访问速度,支持多协议(UDP/TCP/DoH/DoT),可自定义分流规则。
  • AdGuard Home:强大的广告拦截与DNS过滤网关,提供Web管理界面,支持自定义过滤规则、家长控制、统计分析等,作为本地DNS主入口。
  • CloudFlared:Cloudflare官方的DNS-over-HTTPS/3代理组件,为SmartDNS和AdGuard Home提供加密DNS上游,提升隐私与抗污染能力。
  • Redis:高性能内存数据库,作为SmartDNS的缓存后端,提升DNS查询速度和系统整体性能。

主要功能

  • 智能DNS分流(国内外域名自动分组解析,提升访问速度)
  • 广告拦截(AdGuard Home强力过滤,支持自定义规则)
  • 支持DNS-over-HTTPS/DoT加密
  • 一键部署,自动拉取高质量分流列表(中国域名/GFW名单)
  • Web管理界面,配置简单直观
  • 支持自定义上游DNS、规则和端口
  • 适配macOS、Linux、Windows(需安装Docker)

目录结构

├── docker-compose.yml         # 一键启动主配置
├── smartdns/
│   └── config/                # SmartDNS配置及分流规则
├── adguard/
│   └── conf/                  # AdGuard Home配置
├── scripts/                   # 常用运维脚本
├── README.md                  # 项目说明文档
├── .gitignore                 # 忽略敏感和无关文件

快速上手

  1. 安装Docker(推荐Docker Desktop,适配Win/Mac/Linux)

  2. 克隆本项目

    git clone https://github.com/He-Xun/smartdns-server-dockercompose.git
    cd smartdns-server-dockercompose
  3. 一键启动所有服务

    docker-compose up -d
  4. 访问管理界面

  5. 配置本机DNS

    • 推荐设置为 127.0.0.1:7353(AdGuard Home)或 127.0.0.1:7053(SmartDNS)

常见问题 FAQ

  • 如何自定义上游DNS/分流规则?
    • 编辑 smartdns/config/smartdns.conf,可自定义国内外DNS组、DoH/DoT服务器、分流规则等。
    • 编辑 adguard/conf/AdGuardHome.yaml,可自定义广告过滤规则、上游DNS等。
  • 如何更新分流列表?
    • 运行 scripts/update-dns-config.sh 自动拉取最新中国域名和GFW名单。
  • 如何排查服务异常?
    • 查看 logs/ 目录下日志(本项目已默认忽略上传日志文件)。
  • 如何安全暴露端口?
    • 默认只暴露必要端口,生产环境建议用防火墙限制外部访问。

定制与扩展

  • 支持自定义规则文件、端口、上游DNS,详见各配置目录说明。
  • 可集成更多DNS服务(如Unbound、Technitium等),建议参考archive/目录历史方案。

安全与隐私提示

  • 本项目已排除所有敏感信息和运行数据,首次部署请自行设置管理密码。
  • 不要上传个人token、密码、密钥等到公开仓库。
  • 如需二次开发,建议每次提交前用grep全局排查敏感词。

贡献与反馈

  • 欢迎提issue、PR或交流建议,让更多人受益!
  • 作者邮箱:[email protected]

AdGuard Home 后台登录与初始化说明

  • 默认用户名admin
  • 默认密码:本项目配置文件中为加密存储,无法直接还原明文。首次部署建议按如下方式初始化:
    1. 启动容器后,访问 http://localhost:7353(或你配置的管理端口)。
    2. 如果提示设置新密码,按提示操作即可。
    3. 如果已存在加密密码且忘记明文,可:
      • 编辑 adguard/conf/AdGuardHome.yaml,删除 users: 字段,保存后重启容器,系统会进入初始化向导。
      • 或用 bcrypt 工具生成新密码 hash,替换 password: 字段内容。
    4. 端口说明:默认管理端口为 7353(如有变动以docker-compose.yml或配置文件为准)。
    5. 安全建议:首次部署后请立即修改为你自己的强密码,切勿使用默认或弱密码!

如需详细操作指引或遇到初始化问题,请查阅 AdGuard Home 官方文档 或在本项目 issue 区提问。


本项目灵感来源于实际生产环境需求,已在macOS、Linux多平台长期稳定运行。希望能帮到你!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published