Nikki + SmartDNS实现DNS防泄露
Introduction
我在使用Nikki访问Google时出现“您的连接不是私密连接”提示,上网搜索发现可能是DNS被劫持导致的,搞了两三天终于完工了,话不多说,马上开整
前排提醒:不是很推荐这种套娃方式,用Nikki自带的DNS分流规则即可(把“遵循分流规则”选项打开),还不放心就走DoH,广告过滤走rule-providers,速度实测嘎嘎快
在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决定)
碎碎念
搞完发现电脑没问题了,手机还是漏的,Google还是上不去,死活查不出原因,后来发现Magisk内装了个AdGuardHome模块,禁用就行了
搞半天结果是自己的原因。。。
所以其实根本没必要搞这种套娃的,直接在Nikki的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