最近使用openWRT实现了一套几乎终极效果的内网域名管理+DNS加速+DNS去广告+魔法上网的系统,极致的复杂配置之后,就是最简单的无感使用方式。本文将讲述其构架和实现细节,现在任何人都可以无需任何配置就可以直接域名访问 nas 中部署的内网各种服务,加访问 google openai 等服务。
TIPS: 本文不是写给小白的,而是给懂技术的用户的。可能不会说的很细,但能看懂的自然能看懂,看不懂的,写得再细致看了还是白看。

什么是DNS
首先让我们简单了解什么是 DNS,为什么要配置 DNS
DNS 解析器(也称解析器)将域名转换为互联网上的 IP 地址。
每次您的计算机使用域名(例如example.com)连接到网站时,它都需要知道该网站的 IP 地址,即一组唯一的数字。因此,它会联系 DNS 解析器并获取网站的当前 IP 地址。
一般来说,DNS解析器是去中心化DNS系统的一部分。当你向解析器发送请求时,它会联系其他DNS服务器来获取地址。

您计算机使用的 DNS 解析器通常由您的互联网服务提供商 (ISP) 选择。如果您想为您的网络使用其他 DNS 解析器,您可以自行配置网络以启用它。您可以在操作系统的网络设置或家用路由器的管理界面中更改此配置。
DNSMasq + DNSCrypt Proxy
开胃小菜的配置

和nginx 配合使用。 简单的可以直接修改
/etc/hosts。DNSCrypt Proxy: 作为DNS前端访问DOH的DNS
DNSMasq: 作为DNS后端,连接到DNSCrypt Proxy,并配置本地域名。还可以添加DNS去广告功能,浏览器插件去广告非常消耗CPU和内存,但是在DNS前端去广告,资源消耗低,并一次性解决所有的访问终端(pc,手机,平板)广告问题。
配置一个去广告,本地域名管理工具。
TIPS: 使用时需要手动设置本机dns指向nas 的 DNS
dnsmasq + smartDNS
直接接管路由器下游所有设备的DNS,直接无感访问私有域名!
最推荐的使用方式!用户不需要任何配置,任何软件的安装,真正的无感使用!

整体架构图
graph LR
subgraph 用户网络访问
User[用户] -->|域名访问| Router[OpenWrt路由器]
end
subgraph OpenWrt路由器
Router --> |DNS请求| DNSMASQ[dnsmasq]
DNSMASQ -->|上游查询| SmartDNS[smartdns<br>加速/去广告]
Router -->|内网访问| NAS(域名管理)
SmartDNS -->|国外域名<br>DOH/DOT<br>流量代理| DNS
SmartDNS -->|国外域名<br>DOH/DOT<br>流量代理| DNS...
SmartDNS --> |国内域名| 国内DNS
SmartDNS --> |国内域名| 国内DNS...
passwall[passwall<br>透明代理] --> xray
OpenWrt_Script -->|更新配置| DNSMASQ
OpenWrt_Script -->|更新配置| SmartDNS
end
subgraph NAS服务器
NAS --> |内网域名| Nginx[Nginx<br>反向代理]
Nginx --> Emby[emby服务]
Nginx --> Iyuu[iyuu服务]
Nginx --> Other[其他服务]
Script[配置生成脚本<br>内网域名:IPv4/Ipv6] --> HTTP[HTTP配置服务]
HTTP -->|提供配置| OpenWrt_Script[OpenWrt更新脚本<br>内网域名]
end
subgraph 外网域名
Router -->|外网域名<br>代理访问| PROXYDOMAIN[被墙域名<br>Google openAI etc]
Router -->|外网域名<br>直接访问| DOMAIN[外网域名]
end
关键组件说明
- OpenWrt路由器:
dnsmasq:本地 DNS 服务器,处理客户端 DNS 请求smartdns:智能 DNS 解析服务,作为 dnsmasq 的上游- 定期执行配置更新脚本
- NAS服务器:
Nginx:反向代理所有服务(emby/iyuu等)- 配置生成脚本:自动获取本机 IP 并生成配置文件
- HTTP 服务:提供配置文件下载
- 配置更新流程:
- NAS 脚本定期生成配置文件
- OpenWrt 脚本定期拉取新配置
- 动态更新 DNS 服务配置
Nas 中 DNS 配置更新流程图
sequenceDiagram
participant NAS_Script as NAS 配置脚本
participant HTTP_Server as HTTP 服务
participant OpenWrt_Script as OpenWrt 更新脚本
participant DNSMASQ
participant SmartDNS
loop 定期执行
NAS_Script->>NAS_Script: 获取本机 IPv4/IPv6
NAS_Script->>NAS_Script: 生成配置文件
Note right of NAS_Script: dnsmasq.conf<br>smartdns.conf
NAS_Script->>HTTP_Server: 上传配置文件
end
loop 每小时执行
OpenWrt_Script->>HTTP_Server: 请求最新配置
HTTP_Server-->>OpenWrt_Script: 返回配置文件
OpenWrt_Script->>DNSMASQ: 应用新配置
OpenWrt_Script->>SmartDNS: 应用新配置
OpenWrt_Script->>DNSMASQ: 重启服务
OpenWrt_Script->>SmartDNS: 重启服务
end配置文件生成逻辑
flowchart TD
Start[开始] --> GetIP{获取IP}
GetIP --> |命令| IPv4[ip -4 addr show]
GetIP --> |命令| IPv6[ip -6 addr show]
IPv4 --> Parse[解析有效IP]
IPv6 --> Parse
Parse --> GenConfig[生成配置文件]
subgraph 配置文件内容
GenConfig --> DnsmasqConf[address=/mydomain.com/NAS_IP]
GenConfig --> SmartDNSConf[domain-rules /mydomain.com/ -c NAS_IP]
end
GenConfig --> Save[保存到HTTP目录]
Save --> End[结束]服务关系说明
| 组件 | 功能描述 |
|---|---|
| dnsmasq | 本地DNS缓存,将特定域名直接解析为NAS内网IP,绕过公网解析 |
| smartdns | 智能DNS解析,过滤广告/恶意域名,作为dnsmasq的上游提供纯净DNS结果 |
| Nginx | 反向代理服务,通过不同子路径转发到NAS上的不同服务(emby:8096, iyuu:8787等) |
| 更新脚本 | 双端协同工作保持DNS配置与NAS实际IP同步,解决动态IP变化导致的服务中断问题 |
优势特点
- IP动态适配:自动检测NAS的IPv4/IPv6变化,无需手动维护
- DNS分层处理:
pie
title DNS解析分层
"dnsmasq本地解析" : 40
"smartdns智能过滤/加速" : 30
"上游DNS服务" : 30服务高可用:
- 域名访问不受NAS IP变化影响
- 内置服务自动重启机制
安全隔离:
- 所有服务通过Nginx暴露
- 内部服务不直接暴露公网
提示:建议将OpenWrt更新脚本设置为开机启动运行一次 + 每小时(或者时间更短)执行,NAS配置脚本在系统启动和网络变化时触发,实现无缝切换。
smartDNS 配置
这个可以很简单,也可以很复杂。
个人使用了一套集成了几十个DNS分线路解析的配置,配置说明很麻烦,写起来很长。
这部分内容暂略,后期再补充。各位用户可以先简单配置,后期看我这里的更新。
后话
考虑在不触碰某条线的情况下,怎么编写本文。有兴趣的过段时间再查看本文。
参考&致谢
系列教程
图书、音乐、视频多媒体锦集
- 视频图书和音乐完全自动化管理框架图解
- 如何建立自己的私人电子图书馆–出版书籍,网络小说,漫画一网打尽!
- Zlibrary 图书资源下载与 Calibre 图书管理打造结构化电子图书馆高阶教程
- 如何使用media Go,MusicBrainz,Mp3tag工具刮削音乐 整理音乐资料库
- 私人在线音乐服务器搭建与使用介绍
- 如何使用tinyMediaManager刮削电影和电视剧,动画,并自动下载字幕
- 使用jeckett,sonarr,iyuu,qt,emby打造全自动追剧流程
- hexo博客博文撰写篇之完美笔记大攻略终极完全版
Nas系列
- 从零开始玩PT-入门到精通
- 如何建立自己的私人电子图书馆–出版书籍,网络小说,漫画一网打尽!
- Zlibrary 图书资源下载与 Calibre 图书管理打造结构化电子图书馆高阶教程
- 音视频图书和音乐自动化管理框架图解
- 使用jeckett,sonarr,iyuu,qt,emby打造全自动追剧流程
- 如何使用tinyMediaManager刮削电影和电视剧,动画,并自动下载字幕
- Potplayer终极优化教程实现PC视频播放最强画质
- Transmission 使用及其配置
- Qbittorrent 参数详细设置教程
- IPFS从零开始快速入门教程
- 家庭网络优化指南:提升NAT类型,降低游戏延迟、提高下载速度
- 内网域名管理+DNS加速+DNS去广告+魔法上网的终极系统
- 如何创建属于自己的私人资料库与私人搜索引擎
- PT 工具集,Linux硬链接助手
- QNAP 修改应用启动顺序
- qnap硬盘移动位置
- qnap IO 错误消除

