发一个 openclash 与 Mosdns 和 AdguardHome 的配置,大家看看

2023-02-06 22:59:30 +08:00
 murchef

今天在 openclash 的项目讨论里发过,这边热闹一点就也发份在这里

在较新版本的 openclash 里,Yacd 和 dashboard 面板里无法显示域名,测试发现 openclash 的 Dns 劫持里要打开防火墙转发才能显示域名

但分流正常,例如打开油管是能正常从 mosdns 里得到解析,adguardhome 日志里有,openclash 的 dashboard 能显示规则,能正常分流,就是 dashboard 的域名一栏只有解析后的 ip ,没有域名

今天在备份好 openwrt 系统后反复修改这三个的配置,现在找到一个能用的,所以发出来给大家看看有没有问题

openclash 设置

redir-host 兼容

Dns 设置

1.dns 劫持 防火墙转发

2.自定义 dns 设置为 127.0.0.1:1745 (adguardhome 监听端口 nameserver 和 fallback 均相同)

mosdns 设置

监听端口为 0.0.0.0:6010 (我的 mosdns 设置参照 easymosdns 这个项目)

AdguardHome 设置

1.重定向为 无

2.监听端口为 1745

  1. dns 设置为 mosdns 的端口 127.0.0.1:6010

修改后 我认为是从 openclash 》 adguardhome 》 mosdns 的顺序 现在 adguardhome 正常日志,mosdns 正常解析,openclash 正常分流且 dashboard 显示域名

13603 次点击
所在节点    DNS
26 条回复
xuesumin
2023-02-07 07:28:30 +08:00
不理解这样搭配的原因,openclash 本来就能 dns 分流,为何需要 mosdns 再做一次? Adguardhome 基于 dns 域名的去广告功能,在 openclash 配置文件加上去广告规则不就好了?
arfaWong
2023-02-07 08:39:08 +08:00
搞了台 Linux 服务器做代理的网关。
DHCP 直接分配这台服务器做 DNS 服务器。adg 53 --> mosdns 5335 分流到国内、国外的 DOH 。
主路由 ROS 将非中国大陆 IP 的流量转发到这台服务器,Clash.Meta 通过 iptables 和 tproxy 透明代理流量。
arfaWong
2023-02-07 08:39:53 +08:00
@arfaWong Clash.Meta 关闭 DNS 监听和劫持。
jeanz
2023-02-07 09:30:48 +08:00
@xuesumin #1 mosdns 可以把国内 /国外解析分开,加上 Adguardhome 界面便于查看记录
wangerka
2023-02-07 11:30:47 +08:00
你这终极套娃属于是。我自己写规则,有的节点不咋好所以没做分流,基本够用
![]( )
yick
2023-02-07 12:38:24 +08:00
adgh 直接听 53 ,上流是 openclash 不好吗
HalloCQ
2023-02-07 15:16:33 +08:00
属实有点套娃
其实只需要 Adguardhome 就能完全实现 dns 分流,去广告,以及查看 dns 解析日志 的功能
murchef
2023-02-07 15:30:22 +08:00
@HalloCQ 之前有用 adguardhome 的分流,用国内域名全走 223 其他走海外的方案,但还是比不上 mosdns 的方案,且缓存有时候用了会出问题,所以现在只用它做解析日志&去广告
murchef
2023-02-07 15:31:02 +08:00
@yick 试过,有问题好像
murchef
2023-02-07 15:33:44 +08:00
@arfaWong 未来可能去玩玩 ros ,现在先琢磨琢磨 openwrt
murchef
2023-02-07 15:36:55 +08:00
@yick 具体设置是什么,现在 openclash 不在 dns 劫持里开防火墙转发,面板就有问题,昨天试了很久
yick
2023-02-07 17:07:31 +08:00
@murchef 两个方案
1.不开劫持,OC 自定义 DNS 打开端口 default ,name servers 及 fallback 正常设置; adgh 重定向到 53 ,上游设置为 127.0.0.1:( OC DNS 端口)
2.不开劫持,OC 自定义 DNS 打开端口 default ,name servers 及 fallback 正常设置;想办法让 adgh 直接接管 53 端口(一般是 dnsmap/oc 可能回有占用,可能修改一下它们的防火墙 rule 可以),上游设置为 127.0.0.1:( OC DNS 端口)
nkcfc
2023-02-08 06:50:23 +08:00
oc 自带的是不是会泄露 dns ?比如我查询 xxx.com ,它会用两组 dns 查询,然后国内的 isp 服务商就知道我查询过了,当然用 doh 可以只让 dns 服务器知道,不过还是不爽。
riverdolphin
2023-02-08 15:39:04 +08:00
我同时使用 adgardhome, openclash, mosdns.
因为过滤广告是基于域名的,所以 adgardhome 先过滤广告,再通过 openclash 分流,再通过 mosdns 解析。

1 、重定向 53 到 adg ,关闭缓存,只做过滤,上游填写 openclash 的 dns 服务端口。
2 、openclash 的 dns 上游填写 mosdns 的端口,关闭缓存,不要劫持。
3 、设置 mosdns 分流解析,设置缓存策略,国外域名的 dns 记得加入到 openclash 的白名单强制走代理。
murchef
2023-02-08 16:11:41 +08:00
@riverdolphin 好像试过,你看看 dashboard 和 yacd 面板里有没有显示域名
riverdolphin
2023-02-08 19:23:54 +08:00
@murchef 那你检查一下 iptables ,看看哪里有规则把 dns 请求劫持了。我的设置用起来很顺畅。
duetg
2023-02-08 22:36:00 +08:00
openclash 的依赖都没问题的话(留意 iptables 和 nftables 的依赖是不同的):
1 、路由系统,在防火墙的端口转发里,把路由的 53 端口 udp 转发到 adguard home 设置的监听端口(比方 5335 )
2 、adguard home ,把 dns 上游设置成 openclash 的监听端口(默认是 7874 )
3 、openclash ,使用 redir 模式的话,取消 dns 劫持,开启自定义上游 dns (默认的一般就够用了)
这样配置的话 dns 请求从 53 到 adguard home 并被过滤,然后再转到 openclash 去分流,比较简单也可靠。套多了慢还不稳。
murchef
2023-02-08 23:29:27 +08:00
@riverdolphin ok ,这方案有效
mac100
2023-02-10 00:40:42 +08:00
@murchef 懵圈了那种方案好啊。??
mac100
2023-02-10 14:22:52 +08:00
@riverdolphin 这方案 好像微信 好卡。转圈。

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

https://www.v2ex.com/t/913768

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

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

© 2021 V2EX