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

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

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

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

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

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

© 2021 V2EX