本项目旨在为个人和中小型团队提供一套高效、易用、可定制的智能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 # 忽略敏感和无关文件
-
安装Docker(推荐Docker Desktop,适配Win/Mac/Linux)
-
克隆本项目
git clone https://github.com/He-Xun/smartdns-server-dockercompose.git cd smartdns-server-dockercompose -
一键启动所有服务
docker-compose up -d
-
访问管理界面
- AdGuard Home: http://localhost:7353
- SmartDNS WebUI: http://localhost:7180(如有集成)
-
配置本机DNS
- 推荐设置为
127.0.0.1:7353(AdGuard Home)或127.0.0.1:7053(SmartDNS)
- 推荐设置为
- 如何自定义上游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]
- 默认用户名:
admin - 默认密码:本项目配置文件中为加密存储,无法直接还原明文。首次部署建议按如下方式初始化:
- 启动容器后,访问 http://localhost:7353(或你配置的管理端口)。
- 如果提示设置新密码,按提示操作即可。
- 如果已存在加密密码且忘记明文,可:
- 编辑
adguard/conf/AdGuardHome.yaml,删除users:字段,保存后重启容器,系统会进入初始化向导。 - 或用 bcrypt 工具生成新密码 hash,替换
password:字段内容。
- 编辑
- 端口说明:默认管理端口为 7353(如有变动以docker-compose.yml或配置文件为准)。
- 安全建议:首次部署后请立即修改为你自己的强密码,切勿使用默认或弱密码!
如需详细操作指引或遇到初始化问题,请查阅 AdGuard Home 官方文档 或在本项目 issue 区提问。
本项目灵感来源于实际生产环境需求,已在macOS、Linux多平台长期稳定运行。希望能帮到你!