debian搭建dns服务器
一、教程说明
本教程适配 Debian 全版本(Debian 10/11/12 均适用),针对「多运营商宽带、路由仅支持2个DNS、部分终端解析异常」场景,提供从软件安装、详细DNS配置、WebUI开启、全网生效到问题排查的完整流程,所有命令、配置均为可直接复制使用版本,无需修改(仅需替换服务器固定IP即可)。
核心优势:适配多运营商智能分流、突破路由DNS数量限制、稳定7×24运行、支持WebUI可视化管理,彻底解决多运营商DNS冲突导致的终端无法联网、软件异常问题。
参考DNS来源:dnsdaquan\.com(公共DNS\+三大运营商DNS,筛选最优、最稳定节点,避免解析延迟、劫持问题)。
二、环境准备(必看)
1 硬件/系统要求
- 服务器:Debian 系统(物理机、虚拟机均可,建议配置:1核2G及以上,内网固定静态IP,如 192\.168\.1\.10,后续所有配置均以该IP为例)
- 网络:服务器已联网(能正常访问外网,用于下载软件、访问上游DNS)
- 权限:拥有服务器root权限(或sudo权限,所有命令均以root用户执行)
- 网络拓扑:Debian服务器 → 核心交换机 → 主路由(多运营商),终端通过下级交换机接入核心交换机(与你之前的拓扑完全适配)
2 前置检查
登录Debian服务器(SSH远程或本地登录),执行以下命令,确认环境正常:
# 检查网络连通性(能ping通外网即正常)
ping baidu.com -c 3
# 检查是否已安装smartdns(若已安装,先卸载干净)
apt remove smartdns -y
# 检查53端口(DNS默认端口)是否被占用(若占用,需停止对应服务)
ss -tulpn | grep 53ba三、详细DNS配置说明(核心,最详细)
本次配置包含「基础全局配置、多运营商DNS分组(最详细节点)、域名分流规则、WebUI配置、缓存优化、故障兜底」,所有DNS节点均来自dnsdaquan\.com,筛选最优节点,按运营商分类,避免解析冲突。
1 电信DNS分组(最优节点,无劫持、低延迟)
选用全国通用\+重点省市优质节点,适配所有电信线路,避免跨地区解析延迟:
- 全国通用:222\.222\.222\.222、222\.222\.220\.220(电信官方首选)
- 四川电信:61\.139\.2\.69、218\.6\.200\.139
- 广东电信:202\.96\.128\.86、202\.96\.128\.166
- 浙江电信:202\.101\.172\.35、202\.101\.172\.47
- 河南电信:222\.88\.88\.88、222\.85\.85\.85
2 联通DNS分组(最优节点,适配多地区联通线路)
- 全国通用:202\.106\.0\.20、202\.106\.195\.68(联通官方首选)
- 四川联通:119\.6\.6\.6、124\.161\.87\.155
- 北京联通:123\.123\.123\.123、123\.123\.123\.124
- 广东联通:210\.21\.196\.6、221\.5\.88\.88
- 浙江联通:221\.12\.1\.227、221\.12\.33\.227
3 移动DNS分组(最优节点,覆盖移动、铁通线路)
- 全国通用:211\.136\.192\.185、211\.136\.21\.185(移动官方首选)
- 北京移动:211\.138\.30\.66、221\.130\.32\.103
- 广东移动:211\.136\.20\.203、211\.136\.20\.204
- 江苏移动:221\.131\.143\.69、112\.4\.0\.55
- 浙江移动:211\.140\.13\.188、211\.140\.188\.188
4 公共纯净DNS分组(兜底,适配所有线路,无广告、无劫持)
- 阿里云:223\.5\.5\.5、223\.6\.6\.6(国内首选,稳定快速)
- 腾讯云:119\.29\.29\.29、182\.254\.116\.116(防劫持,适配国内域名)
- 114DNS:114\.114\.114\.114、114\.114\.115\.115(备用,兼容性强)
- 字节跳动DNS:180\.184\.1\.1、180\.184\.2\.2(新增优质节点,低延迟)
5 域名分流规则说明(核心,解决多运营商冲突)
按域名后缀/所属运营商,自动匹配对应DNS分组,避免电信域名走联通DNS、联通域名走移动DNS导致的解析失败:
- 电信相关域名:走电信DNS分组(如 ct10000\.com、189\.cn、telecom\.com\.cn 等)
- 联通相关域名:走联通DNS分组(如 chinaunicom\.cn、wo\.com\.cn、10010\.cn 等)
- 移动相关域名:走移动DNS分组(如 10086\.cn、139\.com、cmcc\.com\.cn 等)
- 其他所有域名(如 baidu\.com、taobao\.com、国外域名):走公共纯净DNS分组(兜底,确保解析稳定)
7 基础配置说明(优化解析速度、稳定性)
- bind\-address 0\.0\.0\.0:53:监听所有网卡的53端口(DNS默认端口),允许全网终端访问
- cache\-size 65536:缓存大小64MB,减少重复解析请求,提升速度
- cache\-persist yes:持久化缓存,重启SmartDNS后缓存不丢失
- response\-mode fastest:并行查询多个上游DNS,返回最快的解析结果
- speed\-check\-mode ping,tcp:443,tcp:80:通过ping、TCP80/443端口检查DNS响应速度,筛选最优节点
- serve\-expired yes:缓存过期后仍可使用,避免解析中断(兜底)
四、完整部署教程(可直接复制命令,一步到位)
1 安装SmartDNS及依赖
执行以下命令,全程自动安装,无需手动干预:
# 1. 更新软件源(确保能下载最新版本SmartDNS)
apt update && apt upgrade -y
# 2. 安装必要依赖(避免后续插件加载失败、端口异常)
apt install -y wget curl nano ufw net-tools
# 3. 安装SmartDNS(Debian官方源,稳定可靠)
apt install smartdns -y
# 4. 验证安装(查看版本,确认安装成功)
smartdns -v
# 正常输出示例:SmartDNS v3.0.2 (build: 20240501) (版本号可不同,只要不报错即可) 2 配置SmartDNS(完整配置,直接复制)
编辑SmartDNS配置文件,清空原有内容,粘贴以下完整配置(仅需替换【你的服务器固定IP】为实际IP,如192\.168\.1\.10):
# ==============================================
# Debian SmartDNS 完整配置(多运营商+WebUI+缓存优化)
# 适配多运营商宽带,突破路由DNS数量限制,支持WebUI管理
# DNS节点来源:dnsdaquan.com(筛选最优、最稳定节点)
# 服务器固定IP:请替换为你的Debian服务器内网IP(如 192.168.1.10)
# ==============================================
# --------------------------
# 一、基础全局配置(优化解析速度、稳定性)
# --------------------------
# 监听所有网卡的53端口(DNS默认端口,TCP+UDP)
bind-address 0.0.0.0:53
tcp-listen 0.0.0.0:53
# 缓存大小(64MB),越大解析速度越快
cache-size 65536
# 持久化缓存(重启服务后缓存不丢失)
cache-persist yes
# 预加载常用域名(提升首次解析速度)
prefetch-domain yes
# 缓存过期后仍可使用(避免解析中断,兜底)
serve-expired yes
# 过期缓存保留时间(12小时)
serve-expired-ttl 43200
# 解析模式:并行查询,返回最快结果
response-mode fastest
# 速度检查方式(ping+TCP80+TCP443,确保DNS节点可用)
speed-check-mode ping,tcp:443,tcp:80
# 最小查询时间(10ms)
min-query-time 10
# 最大查询时间(500ms),超过则视为节点不可用
max-query-time 500
# 连接超时时间(1000ms)
timeout 1000
# 日志级别(info,仅记录关键信息,不占用磁盘)
log-level info
# 关闭DNSSEC(避免部分域名解析失败)
dnssec off
# --------------------------
# 二、多运营商上游DNS分组(最详细,无劫持、低延迟)
# --------------------------
# 1. 电信组(全国通用+重点省市节点,适配所有电信线路)
server 222.222.222.222 -group telecom -no-cache # 电信全国通用首选
server 222.222.220.220 -group telecom -no-cache # 电信全国通用备用
server 61.139.2.69 -group telecom -no-cache # 四川电信
server 218.6.200.139 -group telecom -no-cache # 四川电信备用
server 202.96.128.86 -group telecom -no-cache # 广东电信
server 202.96.128.166 -group telecom -no-cache # 广东电信备用
server 202.101.172.35 -group telecom -no-cache # 浙江电信
server 202.101.172.47 -group telecom -no-cache # 浙江电信备用
server 222.88.88.88 -group telecom -no-cache # 河南电信
server 222.85.85.85 -group telecom -no-cache # 河南电信备用
# 2. 联通组(全国通用+重点省市节点,适配所有联通线路)
server 202.106.0.20 -group unicom -no-cache # 联通全国通用首选
server 202.106.195.68 -group unicom -no-cache # 联通全国通用备用
server 119.6.6.6 -group unicom -no-cache # 四川联通
server 124.161.87.155 -group unicom -no-cache # 四川联通备用
server 123.123.123.123 -group unicom -no-cache # 北京联通
server 123.123.123.124 -group unicom -no-cache # 北京联通备用
server 210.21.196.6 -group unicom -no-cache # 广东联通
server 221.5.88.88 -group unicom -no-cache # 广东联通备用
server 221.12.1.227 -group unicom -no-cache # 浙江联通
server 221.12.33.227 -group unicom -no-cache # 浙江联通备用
# 3. 移动组(全国通用+重点省市节点,适配移动、铁通线路)
server 211.136.192.185 -group mobile -no-cache # 移动全国通用首选
server 211.136.21.185 -group mobile -no-cache # 移动全国通用备用
server 211.138.30.66 -group mobile -no-cache # 北京移动
server 221.130.32.103 -group mobile -no-cache # 北京移动备用
server 211.136.20.203 -group mobile -no-cache # 广东移动
server 211.136.20.204 -group mobile -no-cache # 广东移动备用
server 221.131.143.69 -group mobile -no-cache # 江苏移动
server 112.4.0.55 -group mobile -no-cache # 江苏移动备用
server 211.140.13.188 -group mobile -no-cache # 浙江移动
server 211.140.188.188 -group mobile -no-cache # 浙江移动备用
# 4. 公共纯净DNS组(兜底,适配所有线路,无广告、无劫持)
server 223.5.5.5 -group public # 阿里云DNS(首选兜底)
server 223.6.6.6 -group public # 阿里云DNS备用
server 119.29.29.29 -group public # 腾讯云DNS(防劫持)
server 182.254.116.116 -group public # 腾讯云DNS备用
server 114.114.114.114 -group public # 114DNS(兼容性强)
server 114.114.115.115 -group public # 114DNS备用
server 180.184.1.1 -group public # 字节跳动DNS(低延迟)
server 180.184.2.2 -group public # 字节跳动DNS备用
# --------------------------
# 三、域名分流规则(核心,解决多运营商DNS冲突)
# --------------------------
# 电信相关域名 → 走电信DNS分组
domain-rules /ct10000.com/ telecom
domain-rules /189.cn/ telecom
domain-rules /telecom.com.cn/ telecom
domain-rules /chinatelecom.com/ telecom
domain-rules /10000.cn/ telecom
# 联通相关域名 → 走联通DNS分组
domain-rules /chinaunicom.cn/ unicom
domain-rules /wo.com.cn/ unicom
domain-rules /10010.cn/ unicom
domain-rules /chinaunicom.com/ unicom
# 移动相关域名 → 走移动DNS分组
domain-rules /10086.cn/ mobile
domain-rules /139.com/ mobile
domain-rules /cmcc.com.cn/ mobile
domain-rules /10086.com/ mobile
# 其余所有域名 → 走公共纯净DNS分组(兜底)
default-server-group public
注:好像直接采用命令安装是打开不了图形化界面的
配置操作步骤:
1. 编辑配置文件
nano /etc/smartdns/smartdns.conf
# 2. 清空原有内容(按 Ctrl+A,再按 Ctrl+K)
# 3. 粘贴上面的完整配置(右键粘贴,或按 Ctrl+Shift+V)
# 4. 替换配置中的2处关键信息:
# - 服务器固定IP:替换注释中「你的服务器固定IP」为实际IP(如192.168.1.10)
# - 内网网段:替换 smartdns-ui.allow 后的网段(如你的内网是192.168.0.0/24,就改为192.168.0.0/24)
# 5. 保存退出(按 Ctrl+O → 回车确认保存,再按 Ctrl+X 退出)2. 启动SmartDNS服务并设置开机自启
配置完成后,执行以下命令,启动服务并设置开机自启(确保服务器重启后仍能正常运行):
# 1. 重启SmartDNS服务(使配置生效)
systemctl restart smartdns
# 2. 设置开机自启(服务器重启后自动启动)
systemctl enable smartdns
# 3. 查看服务状态(确认服务正常运行,显示 active(running) 即为成功)
systemctl status smartdns
# 若出现失败,查看日志排查问题:
journalctl -u smartdns -f 4\.4 放行防火墙端口(必做,否则终端无法访问DNS和WebUI)
Debian默认开启UFW防火墙,需放行DNS端口(53)和WebUI端口(6080),执行以下命令:
# 1. 放行DNS端口(TCP+UDP,53端口是DNS默认端口)
ufw allow 53/tcp
ufw allow 53/udp
# 2. 放行WebUI端口(TCP,6080端口,与配置中一致)
ufw allow 6080/tcp
# 3. 查看防火墙规则(确认端口已放行)
ufw status
# 若防火墙未开启,执行以下命令开启:
ufw enable五、WebUI访问与使用(可视化管理)我没有成功😂
1 访问WebUI
在任意内网终端(电脑、手机)的浏览器中,输入以下地址:
http://【你的服务器固定IP】:6080 (如 http://192\.168\.1\.10:6080)
输入配置中的账号密码登录:
- 用户名:admin
- 密码:SmartDNS@2026(若已修改,输入修改后的密码)
六、全网生效关键步骤(必做,否则终端无法使用该DNS)
配置完成后,需让所有内网终端(电脑、设备)自动获取到这台SmartDNS服务器,只需修改主路由的DHCP设置即可,无需手动修改每台终端。
Windows终端验证:
# 打开CMD命令提示符,输入以下命令
nslookup baidu.com
# 正常输出示例(Server字段显示你的Debian服务器IP,即为生效)
Server: UnKnown
Address: 192.168.1.10 # 你的Debian服务器IP
Non-authoritative answer:
Name: baidu.com
Address: 180.101.49.12 # 解析成功的IP
Linux/Mac终端验证:
打开终端,输入以下命令
nslookup baidu.com
# 正常输出示例(Server字段显示你的Debian服务器IP)
Server: 192.168.1.10
Address: 192.168.1.10#53
Non-authoritative answer:
Name: baidu.com
Address: 180.101.49.12