Nikki + SmartDNS实现DNS防泄露

Introduction

我在使用Nikki访问Google时出现“您的连接不是私密连接”提示,上网搜索发现可能是DNS被劫持导致的,搞了两三天终于完工了,话不多说,马上开整

前排提醒:不是很推荐这种套娃方式,用Nikki自带的DNS分流规则即可(把“遵循分流规则”选项打开),还不放心就走DoH,广告过滤走rule-providers,速度实测嘎嘎快

是什么,为什么,怎么做 —— 谈谈 DNS 泄漏、CDN 访问优化与 Fake IP

google_private_connection dns_hijack

在OpenWrt上装好SmartDNS和Nikki,不多赘述了(可以看看我上一篇Nikki配置教程)

SmartDNS设置:

本地端口改成你喜欢的端口号,这个端口分流走国内,我这里是6053,取消勾选自动设置 Dnsmasq

高级设置:测速模式选tcp:80,tcp:443,ping,缓存大小填20000(依据参考资料)

v6服务器看个人需求,我这关掉了,其他默认就行

第二DNS服务器:勾选启用,端口任意但不与前面冲突(我这是6553),这个端口分流走国外

服务器组填一个喜欢的名称,我这里是Global,其他默认就行

来到下方的上游服务器

DNS 服务器名称 DNS 服务器 IP DNS 服务器端口 协议类型 服务器组
随意 这里是腾讯云的DNS 223.5.5.5/dns-query https
随意 这里是cf的dns dns.cloudflare.com/dns-query https Global(填你走国外的服务器组)

(我这里cf的doh好像不能直连了,用腾讯的doh也是可以的)

点击Global服务器组的编辑,高级设置,勾选从默认组中排除

保存应用即可

Nikki设置:

混入设置→DNS设置

v6设置同上,我这关了

DNS模式我用的Fake-IP没问题,网上有说要用Redir-host的,欢迎各位佬在评论区交流

勾选覆盖DNS服务器

启用 类型 DNS服务器
default-nameserver 127.0.0.1:6053
proxy-nameserver 127.0.0.1:6553
nameserver 127.0.0.1:6553

勾选覆盖DNS查询策略

启用 匹配 DNS服务器
geosite:cn 127.0.0.1:6053(走国内)
geosite:geolocation-!cn 127.0.0.1:6553(走国外)

保存应用即可

https://ipleak.net/ 检测DNS泄露情况,清一色的Cloudflare就行了(以你国外上游DNS决定)

ip_leak

碎碎念

搞完发现电脑没问题了,手机还是漏的,Google还是上不去,死活查不出原因,后来发现Magisk内装了个AdGuardHome模块,禁用就行了

搞半天结果是自己的原因。。。

所以其实根本没必要搞这种套娃的,直接在Nikki的DNS配置页加上就行,算了折都折腾了还是写篇文章吧。。。


参考资料

公共DNS哪家强?

OpenClash+SmartDNS防止dns泄漏 • LeaF Blog

SmartDNS负责解析,OpenClash负责分流 | 个人学习经验分享

对抗校园网 DNS 污染,我有妙招 | Hans362 ‘s Blog

Nikki+AdGH设置成功 · nikkinikki-org/OpenWrt-nikki

openclash使用fakeip模式,应该如何设置使用mosdns来解析? · Issue #113 · sbwml/luci-app-mosdns

OpenWrt安装并配置SmartDNS - Forever Young

openclash使用fakeip模式,应该如何设置使用mosdns来解析? #113