本教程适用于运行 DSM 7.2+(Container Manager)或 DSM 6.2/7.0/7.1(Docker 套件)的群晖 NAS,采用 host 网络模式部署,避免 Docker NAT 桥接带来的性能损耗与死锁问题。
一、准备工作与目录创建
- 打开群晖 File Station。
- 在
docker共享文件夹下新建一个名为technitium的文件夹。 - 在
technitium文件夹内再新建一个子文件夹:config。 - 完整数据存储路径类似:
/volume1/docker/technitium/config。
二、Docker 容器部署
方案 1:Container Manager 项目部署(Docker Compose,推荐)
-
打开群晖桌面上的 Container Manager。
-
点击左侧 项目 (Project) -> 点击 新增。
-
填写项目信息:
- 项目名称:
technitium-dns - 路径:选择刚才创建的
/docker/technitium目录。 - 来源:选择 创建 docker-compose.yaml。
- 项目名称:
-
粘贴以下配置文件:
version: "3.8"
services: technitium-dns: image: technitium/dns-server:latest container_name: technitium-dns network_mode: host restart: always environment: - DNS_SERVER_DOMAIN=dns.lan - DNS_SERVER_ADMIN_PASSWORD=<your-admin-password> # 请修改为你自定义的初始管理密码 - TZ=Asia/Shanghai volumes: - /volume1/docker/technitium/config:/etc/dns- 点击 下一步 -> 完成,系统将自动拉取镜像并启动。
方案 2:图形界面手动创建
-
打开 Container Manager -> 注册表,搜索
technitium/dns-server并下载latest。 -
在 映像 中选中镜像,点击 运行。
-
网络设置:务必勾选 与 Docker Host 使用相同网络 (host 模式)。
-
常规设置:勾选”启用自动重新启动”。
-
卷设置:添加文件夹映射,将主机
/docker/technitium/config挂载至容器内部/etc/dns。 -
环境:
- 添加
TZ,值设为Asia/Shanghai。 - 添加
DNS_SERVER_ADMIN_PASSWORD,填入管理面板的初始密码。
- 添加
-
完成向导并启动容器。
端口说明:
- Web 管理端口:
http://<your-nas-ip>:5380- DNS 解析服务:默认监听 UDP/TCP
53端口。请确保群晖本机未安装冲突的”DNS Server”官方套件。
三、Web 管理端初始化
- 在浏览器访问
http://<your-nas-ip>:5380。 - 使用用户名
admin和刚才设定的初始密码登录(首次登录后可在后台修改密码)。
四、配置国内高可用 Anycast DoH 上游
为避免国内运营商 UDP 53 劫持与单点故障,配置经过连通性验证的国内多活 DoH 节点:
- 点击顶部导航栏的 Settings。
- 切换到 Proxy & Forwarders 选项卡。
- 在 Forwarders 文本框中粘贴以下验证可用的三大服务商地址:
https://dns.alidns.com/dns-query (223.5.5.5)https://doh.pub/dns-query (1.12.12.12)https://doh.360.cn/dns-query (101.226.4.6)-
关键参数设置:
- Forwarder Protocol:选择
DNS-over-HTTPS。 - Concurrent Forwarding:勾选
Enable Concurrent Forwarding(开启并发测速查询)。 - Forwarder Concurrency:保持
2或3。 - Proxy 区域:确认 Proxy Type 保持为
None(不使用代理)。
- Forwarder Protocol:选择
-
切换到 General 选项卡:
- 找到 Recursion,设置为
Allow Only For Private Networks。 - 找到 DNSSEC Validation,建议设置为
Disabled(因查询全程使用 HTTPS 加密,关闭本地严格 DNSSEC 验证可避免百度等未签名域名出现Attack detected误报)。
- 找到 Recursion,设置为
-
滑动到底部,点击 Save Settings 保存。
五、配置局域网专用子域名
采用专用内网子域名(示例以 lan.example.com 为例),实现内网设备快捷访问,且完全不影响公网真实解析:
-
点击顶部导航栏的 Zones -> 点击 Add Zone。
-
配置参数:
- Zone Name:
lan.example.com - Zone Type:选择
Primary - 点击 Add。
- Zone Name:
-
点击进入创建好的
lan.example.com区域,点击 Add Record 添加内网主机:-
添加 NAS 记录:
- Name:
nas(实际访问全域名为nas.lan.example.com) - Type:
A - IP Address:填写群晖 NAS 内网 IP(如
<your-nas-ip>) - 点击 Save。
- Name:
-
添加 PVE/服务器记录:
- Name:
mpve(实际访问全域名为mpve.lan.example.com) - Type:
A - IP Address:填写服务器对应内网 IP
- 点击 Save。
- Name:
-
六、清空缓存与连通性验证
1. 控制台内验证
- 点击顶部 Cache 选项卡,点击 Flush Cache。
- 进入 DNS Client 页面(Server 保持
This Server):- 输入
baidu.com,点击 Resolve,确认返回NOERROR且耗时在数十毫秒以内(证明 DoH 转发正常)。 - 输入
nas.lan.example.com,点击 Resolve,确认准确返回群晖内网 IP(证明内网 Zone 正常)。
- 输入
2. 局域网电脑命令行测试
在局域网的 Windows 电脑打开 PowerShell,运行以下命令(将 <your-nas-ip> 替换为实际 IP):
# 验证公网 DoH 解析nslookup baidu.com <your-nas-ip>
# 验证内网自定义域名nslookup nas.lan.example.com <your-nas-ip>若两条命令均正常返回对应 IP,即代表全套服务已经顺利打通。
七、全面接管内网 DNS
测试无误后,登录你的主路由器管理后台(如 OpenWrt、小米/华硕等):
- 进入 局域网设置 (LAN) / DHCP 服务器 设置。
- 将 主 DNS (DNS Server 1) 修改为 群晖 NAS 的内网 IP。
- 保存并应用设置。
- 局域网设备断开 Wi-Fi/有线重新连接一次获取新租约,即可全自动享受加密 DoH 解析与内网域名直达。
配合 Windows 阻断链路本地 IPv6 DNS 查询 使用,可以避免终端绕过内网 DNS 服务。