DNS 分流方案

76 天前
 xuxiake

之前使用 OpenClash 自带的分流,总感觉打开国内网站很慢,例如京东经常加载半天,微信图片也加载半天,遂在网上研究了下,得到现在的 DNS 分流方案 AdGuardHome+OpenClash+MosDNS ,现在完全不会影响国内网站,上网体验非常丝滑

网络环境

目前我是使用的旁路由方案,主路由是爱快,负责拨号上网,旁路由是 OpenWrt ,负责科学以及 DNS 服务器。IPv4 这边网关以及 DNS 都指向 OpenWrt ,打开 IPv6 ,开启 DHCPv6 ,但是不开启 IPv6 DNS ,DNS 复用 IPv4 的,IPv6 的网关使用默认配置,也就是指向爱快。

DNS 服务器

数据流向是 AdGuardHome -> OpenClash -> MosDNS

  1. DNS 主入口直接用 AdGuardHome ,彻底弃用 OpenWrt 自带的 dnsmasq ,具体配置是使用 53 端囗替换 dnsmasq ,这样广告拦截效率更高,广告可以在第一道关卡就被拦截,不用流转多道

  2. OpenClash 的 NameServer 、FallBack 、Default-NameServer 都只设置一个上游,就是 MosDNS

  3. MosDNS 负责最终的分流以及 DSN 缓存,配置好国内 DNS 服务器以及远程 DNS 服务器,有一个关键选项要开启,远程 DNS 首选 IPv4 ,这样对于需要代理的国外域名就只会返回 IPv4

总结

这套配置的核心思想是对于国内域名使用 IPv6 进行访问,网关直接就到爱快主路由,摆脱 OpenClash 对于国内网站的影响,目前国内主流网站 IPv6 建设基本已经非常完善,使用 IPv6 完全没有问题,如果没有 IPv6 也会自动 fallback 到 IPv4 。需要代理的国外域名,由于只有 IPv4 ,网关指向 OpenWrt ,就会被 OpenClash 代理到。

不足

虽然是分流了,但是 DNS 泄露检测不通过,这个目前还在研究

5885 次点击
所在节点    宽带症候群
74 条回复
xuxiake
74 天前
@xpn282 这是手动用配置文件嘛,图形化界面好像没这个选项
hjj0529
74 天前
@xuxiake 方便外面连回家,因为之前我开放太多端口被电信收回过公网 ip ,现在我只敢开放 vpn 端口回家。
xuxiake
74 天前
@hjj0529 #62 哦哦,我是用的爱快自带的 OpenVPN 服务端
Ruslan
74 天前
我真的不是很理解你们喜欢多套一个 adh 的操作...

无论是 smartdns 还是 mosdns 搭一个 anti-ad 反广告规则一样能 dns 反广告的,多套一层 adh 我唯一的感想就是变慢了。
adh 那个可以搭配浏览器规则的特性更是多余...除了有个好看的 UI 我始终没感受到 adh 的优势。
SakuraYuki
74 天前
我是懒狗,直接 surge 接管网络,不需要代理的设备直接走主路由,需要代理的设备走 surge 网关,surge 内部规则设置好,国外走 snell 服务器的默认 dns ,国内用运营商和阿里 dns
orluna
74 天前
op 问一下是 adh 上游设置为 openclash 吗
xuxiake
74 天前
@Ruslan adh 有个可视化日志界面,还是可以的
xuxiake
74 天前
@orluna 是的
janzwong
74 天前
@Mystery0 自定义配置要去看日志,分析是卡在哪个加载环节了,我目前就是 adg+自定义 mosdns+openclash ,国内 realip 国外 fakeip ,adg 开缓存。昨天尝试研究了一下 adg->singbox ,最新的 1.12 版本实在是没研究明白,暂时放弃了。
xpn282
74 天前
@xuxiake
OpenClash 的“覆写设置”-“dns 设置”
这里就可以填写 Nameserver 和 Nameserver-Policy 了,直接 dns 分流。
不需要借助其他工具
Autonomous
74 天前
这段时间折腾下来我明白了一个道理:系统越复杂,越容易出问题。所以为了鲁棒性,就一个 AdGuard Home 就好了
charley008
73 天前
我想问一下,mosdns 上游假如是比如 223.5.5.5 ,会不会被限流?阿里与腾讯的 dns 不是已经限流了吗?我就那么点设备每个月 dns 查询都超过 1000w 。
xuxiake
73 天前
@charley008 国内 DNS 服务器我用的电信运营商的 DNS ,应该不会存在这个问题,而且 mosdns 可以设置缓存
Serino
66 天前
@starrys 配置了 fallback ,就会向 nameserver 和 fallback 的 DNS 同时发起请求。完全没必要啊,只需要配置 nameserver-policy ,国内域名(geosite:cn 或者 geolocation-cn ,类似白名单模式)都请求国内的 DNS ,其余域名都访问国外 DNS 。或者,国外域名(geosite:!cn 或者 geolocation-!cn ,类似黑名单模式)都请求国外 DNS ,其余域名都访问国内 DNS 。或者两者结合,把所有域名都分类好,就完事了。
个人是不太喜欢 fallback 所有域名都对国内国外 DNS 发起请求的:DNS 服务器发现有个客户端总请求国外网站的 DNS ,肯定有问题嘛。…………我猜一些机场用 fallback+一长溜的配置文件,也是为了照顾一些老旧的无法用 geosite 用 geoip 这类分类机制的机子

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1142009

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX