找回密码
 立即注册
img_loading
智能检测中

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
glinet
查看: 70344|回复: 1534

记录adg+opc+mosdns,实现dns分流、防泄漏,兼容ipv6

 火... [复制链接]
发表于 2023-10-17 15:38 | 显示全部楼层 |阅读模式
本帖最后由 lzk119 于 2024-8-25 17:55 编辑

参照宋晨文的博客DNS零泄露,零污染之终级方案并转载过来,在x86主路由上可正常运行,如有侵权联系删除。

在原有的基础上做了些修改。修改部分用绿字标出。

查询dns泄露:https://ipleak.net

查询WebRTC泄露:https://browserleaks.com/webrtc

ipleak查询要在左上角输入任一网址再查询,如google.com



实现效果:

完美保留了 AdGuardHome 的各种功能

基于 DNS 的流量分流,国内流量绕过 克拉斯 核心

用 Fake-IP 模式来解决 DNS 污染的问题,但限制 Fake-IP 的范围,不需要代理的域名仍返回正常 IP

不用再费心找无污染的 DNS 服务器,使用运营商提供的 DNS 也没问题

因为彻底解决了 DNS 污染,可以放心缓存 DNS 请求结果,开启 AdGuardHome 的乐观缓存后,DNS 平均处理时间降到 3ms

完美兼容 IPv6。国内流量可正常使用 IPv6 服务。只要代理有 IPv6 出口,那歪果也可正常使用。(使用 IPv6 居然还有意料之外的好处,后悔没早开)

兼容 BT/PT 应用,无需特殊配置也不会消耗代理流量

可以通过 AdGuardHome 的 Web 管理页面轻松切换内网设备是否走代理

DNS 分流:


经过 DNS 分流后,所有需要代理的域名都分配到了 Fake IP,无需代理的域名都是由运营商 DNS 返回的最优结果。克拉斯 的 DNS 在 Fake IP 模式下可以无需请求网络直接返回结果,所以整体的 DNS 响应速度非常快。在处理 Fake IP 的流量时,克拉斯 会把 hostname 发送到远端进行 DNS 解析,也就自然不存在 DNS 污染的问题了。

流量代理分流

经过 DNS 分流以后,我们只需要一条防火墙规则,把所有目的地址是 Fake IP 的流量都转发到 克拉斯 核心,所有其他流量都不经转发正常通行。

open克拉什 在 Fake IP 模式下会自动帮我们添加对应的防火墙规则。但它为了防止小白误操作把其它 IP 的流量也转发到 克拉斯 核心了,这是没必要的,我们在自定义防火墙规则里把这条删掉就可以了。

同时由于只有 Fake IP 流量会经过代理,那么无需 DNS 解析的 IP 直连流量自然就不会经过代理了,这样就不用再担心 BT/PT 跑代理的流量了。

解决个别 IP 的代理问题

有的需要代理的 App 是直连 IP,不经过 DNS 域名解析的步骤的,目前我用到的只有一个,就是电报。好在电报提供了它所使用的 ip-cidr 列表,我们只需要为这些 IP 单独配置防火墙规则,给它们转发到 克拉斯 核心。

IPv6

在这种分流方案下,可以放心开启路由器的 IPv6 支持了。因为我们在 DNS 请求阶段,把可能需要代理才能访问的 IPv6 请求已经都过滤掉了,也就不用担心代理软件对 IPv6 支持不好的问题了。

同时因为 克拉斯 会将 hostname 传递到远端进行解析,那么如果你的代理落地机支持 IPv6 的话,经过代理的流量就也可以走 IPv6 出口了。

内网设备分流控制

通过 AdGuardHome 的 Web 管理界面可以为局域网内不同的设备指定不同的上游 DNS 服务器。

对于需要代理的设备,把上游 DNS 服务器指定到 mosdns。对于不需代理的设备,把上游 DNS 服务器指定到 dnsmasq。这样就能做到基于设备的分流控制了。

如果内网大部分设备都需要走代理,那就把 mosdns 作为 AdGuardHome 的默认上游 DNS 服务器,然后对个别不需要走代理的设备单独配置 dnsmasq 上游。反过来也是一样的。

基于域名的黑白名单

通过 mosdns 的 query_matcher 功能,可以构建基于域名的黑白名单,保证一些你选择的域名一定通过或不通过 克拉斯 核心的代理。

比如开启了 IPv6 功能之后,我们就可以把 test-ipv6.com 加入到域名白名单里,这样我们就能测试自己对 IPv6 配置的怎么样了。

AdGuardHome 乐观缓存

克拉斯 可以在重启过程中对 Fake IP 列表进行保存,运营商 DNS 的返回结果也基本稳定,所以我们可以放心的开启 AdGuardHome 的乐观缓存功能。这时 AdGuardHome 会优先返回已过期的缓存结果然后再自己慢慢去更新缓存内容,可以大大提高内网客户端的 DNS 请求响应速度。

具体配置

open克拉什:

插件设置 - 模式设置 - 运行模式: 切换到 Fake-IP(增强)模式

插件设置 - 模式设置:勾选meta内核

插件设置 - 模式设置:勾选UDP流量转发

插件设置 - DNS 设置 - 本地 DNS 劫持 选择 禁用

插件设置 - DNS 设置 - Fake-IP地址范围 选择 198.18.0.1/16

插件设置 - 流量控制 - 绕过中国大路 IP 取消勾选

插件设置 - 流量控制 - 仅允许内网 开启

插件设置 - IPv6 设置 这页的选项全都关闭就行了

覆写设置 - 常规设置 这里都不用改,只需要记住 DNS 监听,后面配置 mosdns 要用

覆写设置 - DNS 设置 - 自定义上游 DNS 服务器 勾选

覆写设置 - DNS 设置 - 追加上游 DNS 勾选

覆写设置 - DNS 设置 - 追加默认 DNS 勾选

覆写设置 - DNS 设置 - Fake-IP 持久化 勾选

覆写设置 - DNS 设置 页面下方 NameServer,FallBack,Default-NameServer 里的 DNS 服务器全都取消勾选,我们只用运营商提供的 DNS 服务器就够了,一般运营商 DNS 都是最快的,也是 CDN 最优化的。

插件设置 - GEO 数据库订阅 把 GeoIP Dat 和 GeoSite 这两个库的自动更新打开,都选 Loyalsoldier 的版本,这个是用来给 mosdns 用的。

2024年8月25日 GeoIP Dat 和 GeoSite 两个文件Unpack后无 APPLE-CN等文件,MOSDNS运行会报错

插件设置 - 开发者选项里,我们自定义一下防火墙规则。


其中 /etc/mosdns/rule/geoip2ipset.sh 这个脚本可以根据 GeoIP 数据库来生成对应的 ipset。这个文件放到路由器上后,记得要执行 chmod a+x /etc/mosdns/rule/geoip2ipset.sh 给它赋予可执行权限。


mosdns:

选自定义配置文件,取消 DNS 转发的勾,然后我就直接贴配置了,注意 克拉斯 DNS 端口要改成你自己在 open克拉什 里的配置,LAN IP-CIDR 也要改成你自己的内网配置,这里 mosdns 监听了 5335 端口。并且要在 GeoData 数据导出 里配置上我们用到的标签:


GeoSite: cn, apple-cn, category-games@cn, geolocation-!cn

GeoIP: cn

2024年8月25日 GeoIP Dat 和 GeoSite 两个文件Unpack后无 APPLE-CN等文件,MOSDNS运行会报错

解决办法:

1.可以把自定义配置的第19、20行注销掉(- "/var/mosdns/geosite_apple-cn.txt"和- "/var/mosdns/geosite_category-games@cn.txt")让MOSDNS正常运行,不过感觉这样怪怪的。

2.打开MOSDNS的数据库自更新,修改/usr/share/mosdns/mosdns.sh

  1. https://github.com/Loyalsoldier/geoip/releases/latest/download/geoip-only-cn-private.dat
复制代码
  1. https://github.com/Loyalsoldier/geoip/releases/latest/download/geoip-only-cn-private.dat.sha256sum
复制代码

修改为

  1. https://github.com/Loyalsoldier/“师夷长技以制夷”-rules-dat/releases/latest/download/geoip.dat
复制代码
  1. https://github.com/Loyalsoldier/“师夷长技以制夷”-rules-dat/releases/latest/download/geosite.dat.sha256sum
复制代码


然后在ssh运行/usr/share/mosdns/mosdns.sh geodata更新数据库。


自定义规则列表里移除domain:bing.com,并添加到灰名单列表里,这样newbing就可以正常使用

AdGuardHome:

AdGuardHome 本身监听 53 端口,把 非53 端口留给 dnsmasq,重定向:无

在 Web 管理页面上,设置 - DNS 设置中,上游 DNS 服务器内只填写一个 mosdns 的地址 127.0.0.1:5335

私人反向 DNS 服务器写上 127.0.0.1:15335。DNS 缓存配置里面,缓存大小看你内存大小填写,乐观缓存勾上。

对于不想走代理的设备,可以在设置 - 客户端设置中添加,并且把上游 DNS 服务器设置成 127.0.0.1。

DHCP设置:

DNS转发留空

DNS服务端口改为15335

防火墙设置:

在防火墙加一条规则,重启防火墙生效


  1. iptables -t nat -A PREROUTING -d 198.18.0.0/16 -p tcp -j REDIRECT --to-ports 7892
复制代码


其他设置:


系统启动项禁用avahi-daemon、snmpd(或直接软件管理卸载snmp)、Nginx


以上所有设置设置完后,win+R打开cmd输入:ipconfig/flushdns刷新dns


添加自动更新github hosts,参考自mylovesaber / Tools-Share
shh连接openwrt
  1. cd /root
  2. touch hostsUpdate.sh
  3. vim hostsUpdate.sh
复制代码
将以下内容粘贴到 hostsUpdate.sh中

设置脚本权限
  1. chmod a+x hostsUpdate.sh
复制代码
运行脚本
  1. /root/hostsUpdate.sh
复制代码
待运行完成后,查看hosts是否有变化
若有更新,表示脚本顺利执行,可以在OpenWRT路由器管理页面的系统-计划任务中添加下面的代码(每天早上8点钟运行脚本),添加后点提交,最后在系统-启动项中将cron重启即可。
  1. 0 8 * * * /root/hostsUpdate.sh
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 6恩山币 +7 收起 理由
nimalaoob + 1 不知道为什么,MOSDNS用自定义配置就是运行 ...
squaly + 1 定时脚本设置不了root@OpenWrt:~# 0 6 * * .
jinshuqishi + 1 可以提供一个可以用的固件吗?使用几个都不.
ttwyong + 1 强大的恩山!(以下重复1万次)
virus1999 + 2 风清云淡、飘逸悠然……极爽!
goodname + 1 呐,做人呢,最重要的就是开心.

查看全部评分

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2023-10-17 16:54 来自手机 | 显示全部楼层
看起来好复杂!研究研究!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-18 11:53 | 显示全部楼层
很用心的设计,点赞
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-18 19:41 | 显示全部楼层
看看隐藏了啥
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-18 19:43 | 显示全部楼层
大萨达实打实大师
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-18 20:03 | 显示全部楼层
回复思考一下~~~~~~~~
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-18 21:05 | 显示全部楼层
不知道咋样 看看再说
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-18 21:18 | 显示全部楼层
请问不开AdGuardHome的话应该怎么设置呢?大佬我qq305581504,有时间的话希望抽空加下Q请教下!

点评

你好,设置好了吗?  详情 回复 发表于 2023-11-27 14:21
老哥,设置好不套AdGuardHome的方法请教下、  详情 回复 发表于 2023-10-20 13:56
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-18 21:57 | 显示全部楼层
看起来好复杂!研究研究!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-18 22:02 | 显示全部楼层
不多不多不多
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-18 22:29 | 显示全部楼层
思考思考
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-18 22:53 | 显示全部楼层
很用心奥
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-18 23:01 | 显示全部楼层
看起来好复杂!研究研究!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-18 23:06 | 显示全部楼层
+++++++++++++++++++++++++++
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-18 23:11 | 显示全部楼层
研究一下思考思考
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛

只谈技术、莫论政事!切勿转播谣言!为了你也为了他人。
只谈技术、莫论政事!(点击见详情) 切记不要随意传播谣言,把自己的日子过安稳了就行,为了自己好也为了大家好。 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。

查看 »

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2025-5-25 21:14

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表