DNS 分流方案

7 天前
 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 泄露检测不通过,这个目前还在研究

4266 次点击
所在节点    宽带症候群
73 条回复
Ipsum
7 天前
我感觉 ADG-Mos-clash 更好点。或者自己写个 gfw2adg 软件,mos 都可以扔了。
EGOISTK21
7 天前
我是这样的,ADG-Mos-tun2socks-代理客户端
chinni
7 天前
其实 dns 没必要这么复杂, 最上游用 udpme 直接转发到 8.8.8.8 就可以了。 然后 要去广告的话前面套一层任意支持全广告的 dns 上游设置为 udpme 。
xuxiake
7 天前
@Ipsum 这样会有点小问题,mos 如果开启缓存,dns 到不了 clash ,无法匹配域名规则
Laoz666
7 天前
现在 op 都是 fake ip 了 你多转一道都没必要 你觉得慢只是你没设置好 和 dns 没关系
lqu3j
7 天前
@xuxiake 现在一般都是 https , 可以开启 sniff 的呀
Ipsum
7 天前
@xuxiake adg 就有缓存,mos 再开有啥用呀。
xuxiake
7 天前
@Laoz666 fake ip 感觉问题还是比较多
xuxiake
7 天前
@Ipsum #7 adg 开缓存也有一样的问题
Ipsum
7 天前
@xuxiake #9 过 clash 的不是 fake ip ? real ip 多少有点小问题,比如同时挂在 cf 下面的网站。现在比较完美点的方案是 fakeip 持久化,过 clash 的都是 fakeip 返回,主路由做个 198 的静态就行了。
Xopher
7 天前
open clash 太难用,用 nikiniki ,自己写的配置文件,感觉够用
terrancesiu
7 天前
其实 adh 就够了,前提是你去境外 dns 都走的是隧道,然后使用 8.8.8.8 或者其他支持 edns 的公共 dns ,最后在 adh 里填写一个你的 isp 的 ip ,基本上解析就非常好了。比如我在阿里云广州配置的 adh ,使用 8.8.8.8 解析的 taobao 就是广州电信的,jd 也是,腾讯也是广东省内,但是 google 都是解析到 sea 了,最后改成 surfshark 的境外 dns 后,国内依旧非常近,google 都解析到了 hkg 。
docx
7 天前
套娃这是……代理环境就解决了 DNS ,其它都不需要
crysislinux
7 天前
@terrancesiu 确实,我感觉 Google 的 edns 还是挺准的,作为一个 fallback 还是够用了。
MYDB
7 天前
dns 泄漏管它干啥,虽然苍蝇不叮无缝的蛋了,但是人总会优先吃无缝的蛋或者处理腐烂的蛋
xuxiake
7 天前
@MYDB 我不是太在意这个,所以就这样吧😂
sxwsuieyqwe11
7 天前
我只用 AdGuardHome ,其实它也能分流国内外 dns 请求。
Mystery0
7 天前
我之前是用 adh -> mosdns 的方案,但是 mosdns 每次要改分流都要登路由器去修改(自定义配置文件的方案无法启动,不知道为什么),现在换成了 adh -> singbox 的方案,singbox 单独开了个端口入站用来配置出站规则,dns 如果有需要调整的直接远程改 singbox 模板( openwrt 、mac 、Android 我用的模板不一样但是里面大部分规则一样,区别主要是包名、进程名这些不同平台的支持差异)然后拉了自动重启就行了
因为我自己要用公司的 vpn ,(相关请求理论上不走 singbox ,如果走了 singbox 就指定网卡出去)所以不能用 fakeip ,其他还有一些就是在家访问公司 vpn (公司我放了个树莓派,与家里组网,在家里就让 singbox 走 tailscale 网卡走到树莓派然后代理出去)
383394544
7 天前
怎麼不在 iKuai 上做 dns 分流,只把需要代理的流量交給 openwrt ?這樣國內上網會更快
SenLief
7 天前
其实 dns 分流没必要那么详细,因为大部分人使用的网站就那么多,大部分在访问一次缓存后就就非常快了,全部代理都没什么问题的。

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

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

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

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

© 2021 V2EX