SmartDNS:3 个场景搞定家庭 DNS 分流
2026/9/15 15:41:31 网站建设 项目流程

SmartDNS:3 个场景搞定家庭 DNS 分流

【免费下载链接】smartdnsA local DNS server to obtain the fastest website IP for the best Internet experience, support DoT, DoH, DoQ. 一个本地DNS服务器,获取最快的网站IP,获得最佳上网体验,支持DoH,DoT,DoQ。项目地址: https://gitcode.com/GitHub_Trending/smar/smartdns

周六晚上,客厅里孩子用平板看动画,画面卡了三次;同一时间你在书房刷网页却一路顺畅。路由器其实只有一份 DNS 设置,所有设备共用它。SmartDNS 是一个本地 DNS 服务器,它替你向多个上游 DNS 发问,再对返回的 IP 逐个测速,把当前最快的答案交给设备,让每台设备都能拿到最合适的解析结果。

先把本地 DNS 跑起来

先装好它:

git clone https://gitcode.com/GitHub_Trending/smar/smartdns cd smartdns make sudo make install

基础配置在 etc/smartdns/smartdns.conf,最少改三行就能跑:

bind [::]:53 # 监听 53 端口,含 IPv6 cache-size 32768 # 缓存 32768 条结果 log-level info # 日志级别

把路由器 DNS 指到这台机器,家里的设备就都从它拿解析了。它的工作方式见架构图:

设备统一发给它,它向多个上游并发查询,再对候选 IP 做 Speed Check 测速,把最优的交回设备。

让游戏主机走延迟最低的上游

游戏机连外服,延迟忽高忽低,多半是运营商默认 DNS 给的 IP 列表里,对你网络最快的那个排不到前面。SmartDNS 的客户端规则能把"按设备分配上游"变成一行配置。

# 游戏主机指定上游与测速 client-rules 192.168.1.100-192.168.1.150 -group gaming group-begin gaming server 223.5.5.5 # 上游 1 server-tls 1.1.1.1 # 加密上游 speed-check-mode ping,tcp:443 group-end

speed-check-mode→ 决定用哪种方式测速。ping 测往返时间,tcp:443模拟真实建连,测速更贴近游戏体感。改完这行,游戏主机的海外请求会自动切到延迟最低的上游。

让智能家居留在局域网里

摄像头、灯泡的查询不该绕到公网再折返,局域网里就该直接应答。给这批设备指一个本地上游,查询在局域网内闭环:

# 局域网设备走本地 dnsmasq client-rules 192.168.1.200-192.168.1.250 -group iot -no-speed-check group-begin iot server 192.168.1.1 group-end

-no-speed-check→ 跳过测速直接应答,响应时间通常只有几毫秒。家里还有一台只支持 IPv4 的老电视,反复卡在 IPv6 上?在它的client-rules行尾加-force-aaaa-soa,AAAA 查询直接返回 SOA(相当于"此域名没有 IPv6 地址"),设备立刻放弃 IPv6,不再卡住。

给儿童设备加一道门

孩子平板里装的应用总往几个广告站打请求,网络流量和干扰都来自这里。把这些域名直接指向 SOA 记录,设备收到"域名不存在"就不再访问:

# 儿童设备屏蔽指定域名 client-rules 192.168.1.200 -group kids group-begin kids address /ads.example.com/# address /track.example.com/# group-end

address /域名/#→ 对该域名回 SOA,即"查无此域名"。规则匹配、分组和屏蔽的实现在 src/dns_conf/client_rule.c,想看细节可以从这里读起。

打开 Web 界面看数据

配置改完是否生效,最直观的验证是看面板。SmartDNS 的 web 管理界面由插件提供,在配置末尾加上:

# 启用 web 管理界面 plugin smartdns_ui.so smartdns-ui.ip http://0.0.0.0:6080
sudo killall -HUP smartdns # 重载配置,无需重启

浏览器打开 6080 端口,就能看到缓存命中率、平均响应时间、上游服务器健康状态,以及每个客户端的查询日志:

用网页代替翻日志文件,游戏主机解析走的是哪台上游、缓存命中率多少,一眼可见。

完整配置与收尾

下面是把三个场景拼好的完整配置,注释齐全,可直接复制:

# ===== SmartDNS 家庭配置 ===== bind [::]:53 # 监听 53 端口 cache-size 32768 # 缓存 32768 条 log-level info # 日志级别 # 游戏机:指定上游并测速 client-rules 192.168.1.100-192.168.1.150 -group gaming group-begin gaming server 223.5.5.5 # 上游 1 server-tls 1.1.1.1 # 加密上游 speed-check-mode ping,tcp:443 group-end # 摄像头:走局域网 dnsmasq client-rules 192.168.1.200-192.168.1.250 -group iot -no-speed-check group-begin iot server 192.168.1.1 group-end # 电视:强制无 IPv6 应答 client-rules 192.168.1.60 -force-aaaa-soa # 儿童设备:屏蔽指定域名 client-rules 192.168.1.200 -group kids group-begin kids address /ads.example.com/# group-end # web 管理界面 plugin smartdns_ui.so smartdns-ui.ip http://0.0.0.0:6080

改完配置不必重启,SmartDNS 收到 reload 信号就会热加载新规则。想继续深入,上游测速逻辑可以看 src/fast_ping/,完整的配置项说明在官方文档仓库的 doc/ 目录。

【免费下载链接】smartdnsA local DNS server to obtain the fastest website IP for the best Internet experience, support DoT, DoH, DoQ. 一个本地DNS服务器,获取最快的网站IP,获得最佳上网体验,支持DoH,DoT,DoQ。项目地址: https://gitcode.com/GitHub_Trending/smar/smartdns

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询