SmartDNS 本地DNS落地实践按家庭角色拆分上游【免费下载链接】smartdnsA local DNS server to obtain the fastest website IP for the best Internet experience, support DoT, DoH, DoQ. 一个本地DNS服务器获取最快的网站IP获得最佳上网体验支持DoHDoTDoQ。项目地址: https://gitcode.com/GitHub_Trending/smar/smartdns全家共用一套上游时麻烦就来了SmartDNS 是一个本地DNS服务器用来解决“全家共用一套上游”的问题。周六晚上孩子的平板在看动画、电视在放剧、你在线打团电视突然开始转圈孩子说游戏掉线了。路由器的上游DNS本身没坏但三种用法差别很大同一套上游服务不了所有人。SmartDNS 架在局域网里接管所有设备的查询同时问多台上游服务器测出哪个返回的 IP 访问最快就把哪个交回给设备还可以按人指定“用哪套上游”。把 SmartDNS 跑起来4行命令装好 SmartDNS仓库自带 Makefile编译和安装一步到位安装过程会同时放好二进制、示例配置和 systemd 单元文件。git clone https://gitcode.com/GitHub_Trending/smar/smartdns cd smartdns make sudo make install装完配置文件在/etc/smartdns/smartdns.conf服务名就是 smartdns用 systemctl 管理即可。示例配置有两百行注释大多是进阶选项起步只需要几行。最小配置长这样在配置文件里只启用这几行其余保持注释bind [::]:53 cache-size 32768 log-level info log-file /var/log/smartdns.log server 223.5.5.5 server-tls 1.1.1.1 server-https https://dns.google/dns-querybind [::]:53双栈监听家里 IPv4 和 IPv6 设备都能用53 是 DNS 默认端口客户端不用改端口。cache-size 32768缓存三万条左右全家最常访问的站点第二次起不再走上游。log-level加log-file把常规日志落到磁盘没有它后面排错无据可查。三行server是重点一条境内明文、一条 DoT 加密、一条 DoH 加密三条不同品质的上游。上游DNS可以理解为解析的“批发商”备得越多越保险SmartDNS 每次查询都会挑最快的那条返回。怎么确认 SmartDNS 在工作启动服务后把查询直接指到本机dig www.example.com 127.0.0.1看到 SERVER 一行是 127.0.0.1#53ANSWER 里给出正常 IP就说明 SmartDNS 已经在响应了。再把路由器的局域网 DNS 指向这台机器的地址全家就切过来了。按家庭角色拆分上游DNS不按“什么设备”分组按“家里谁用”分组。设备只是载体体验差别来自用的人。先给谁配优先配两组写代码的和带娃的。前者最需要境外线路后者最需要拦截效果最明显。每个角色怎么分把一家人的规则集中放在配置末尾client-rules 192.168.1.10 -group coder client-rules 192.168.1.20 -group kids client-rules 192.168.1.30 -group gamer client-rules 192.168.1.50 -group tv group-begin coder server-tls 1.1.1.1 server-https https://dns.google/dns-query group-end group-begin kids address /bad-site.com/# group-end写代码的192.168.1.10常访问境外仓库和文档也不想让查询记录被中间环节看到DoT 加 DoH 两条加密上游互为备份。带娃的192.168.1.20看的多是动画和课件境内上游速度就够重点是某些站点绝不能解析出来address那行直接拦掉。打游戏的192.168.1.30和客厅电视192.168.1.50写法相同gamer 组组内只放server 119.29.29.29图低延迟tv 组组内只放server 223.5.5.5图省心。角色上游策略一句话理由写代码的DoT DoH 双加密常访问境外站点查询内容不该被中间环节看到带娃的境内上游 站点拦截动画速度够用拦得住比滤得准更重要打游戏的单条境内低延迟线路团战体验靠响应时间说话客厅电视境内明文上游看剧没有花活需求可靠就行匹配顺序怎么理解规则是“先精确后模糊”请求进来先查源 IP 或 MAC 有没有命中 client-rules命中就用那个组的策略没命中落到全局默认。上面四行写的都是固定 IP设备换了新地址规则就会悄悄失效这是最容易被忽略的点改成写 MAC 就不会过期。按需加料四种家庭场景的条件菜单 ️这部分是菜单不是教程。每一条都是“如果你的家是这样的 → 可以这样配”照单取用# 老设备 IPv6 支持差强制降级回 IPv4 client-rules aa:bb:cc:dd:ee:ff -force-aaaa-soa # 加密上游查询内容不再裸奔 server-tls 8.8.8.8 server-quic 223.5.5.5 # 双 WAN两个网卡各接一套 bind :53eth0 bind :53eth1 # 按域名拦截特定站点 address /bad-site.com/#双栈环境怎么接家里开了 IPv6总有老设备“解析出 IPv6 但连不上”时第一行让指定设备的 AAAA 查询固定返回空结果等于强制它只走 IPv4其他设备不受影响。加密DNS上游怎么开运营商劫持过广告页或者你不想让人看见“你在问哪些站点”用第二、三行。DNS 查询默认是明文运营商和中间节点都能看到全部访问过的域名加上之后查询被 TLS 包起来知道内容的只剩上游。两条宽带怎么分流家里拉了两条宽带时第四、五行把两个网卡各接一套 DNS各网卡的设备只查各自线路的 DNS再配两套上游一条线断了不影响另一条。怎么按域名拦站点要拦特定网站家长控制、广告源第七行即可该域名查询直接得到空记录设备端表现为解析失败。不想碰配置文件的话编译时加make WITH_UI1会带上 Web 仪表盘默认监听 6080 端口实时查询量、缓存命中、上游健康状态都能直接看到。出了问题怎么办三种最常见的情况配置改了没反应。前台跑sudo smartdns -f -c /etc/smartdns/smartdns.conf看屏幕输出立刻退出并报语法错误就是配置写错了按提示改完systemctl restart smartdns能持续运行说明配置没问题去查服务是否真的重启过。解析变慢或时好时坏。用dig www.example.com 127.0.0.1 time2试探超时没回包时再翻日志里最近的报错——上游查询超时是公网或上游的问题端口绑定失败则是别的程序占了 53。某台设备体验就是不如别人。在日志里找它的请求记录对照 client-rules请求走的是默认组说明规则没命中多半是设备换了新 IP把规则里的固定 IP 改成 MAC 即可。定期体检每两周跑一次systemctl status smartdns顺手瞄一眼最近百行日志半分钟的事。配置都集中在一个文件里改完重启就生效不用动别的服务。建议的节奏最小配置先跑一阵发现哪个角色不对劲再给它补一两条 client-rules配置很快会收敛。下一步可以做的事打开 Web 仪表盘看看三条上游各自的命中率把长期最慢的那条换掉。【免费下载链接】smartdnsA local DNS server to obtain the fastest website IP for the best Internet experience, support DoT, DoH, DoQ. 一个本地DNS服务器获取最快的网站IP获得最佳上网体验支持DoHDoTDoQ。项目地址: https://gitcode.com/GitHub_Trending/smar/smartdns创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考