今天在 openclash 的项目讨论里发过,这边热闹一点就也发份在这里
在较新版本的 openclash 里,Yacd 和 dashboard 面板里无法显示域名,测试发现 openclash 的 Dns 劫持里要打开防火墙转发才能显示域名
但分流正常,例如打开油管是能正常从 mosdns 里得到解析,adguardhome 日志里有,openclash 的 dashboard 能显示规则,能正常分流,就是 dashboard 的域名一栏只有解析后的 ip ,没有域名
今天在备份好 openwrt 系统后反复修改这三个的配置,现在找到一个能用的,所以发出来给大家看看有没有问题
redir-host 兼容
Dns 设置
1.dns 劫持 防火墙转发
2.自定义 dns 设置为 127.0.0.1:1745 (adguardhome 监听端口 nameserver 和 fallback 均相同)
监听端口为 0.0.0.0:6010 (我的 mosdns 设置参照 easymosdns 这个项目)
1.重定向为 无
2.监听端口为 1745
修改后 我认为是从 openclash 》 adguardhome 》 mosdns 的顺序 现在 adguardhome 正常日志,mosdns 正常解析,openclash 正常分流且 dashboard 显示域名
1
xuesumin 2023-02-07 07:28:30 +08:00 via iPhone
不理解这样搭配的原因,openclash 本来就能 dns 分流,为何需要 mosdns 再做一次? Adguardhome 基于 dns 域名的去广告功能,在 openclash 配置文件加上去广告规则不就好了?
|
2
arfaWong 2023-02-07 08:39:08 +08:00
搞了台 Linux 服务器做代理的网关。
DHCP 直接分配这台服务器做 DNS 服务器。adg 53 --> mosdns 5335 分流到国内、国外的 DOH 。 主路由 ROS 将非中国大陆 IP 的流量转发到这台服务器,Clash.Meta 通过 iptables 和 tproxy 透明代理流量。 |
5
wangerka 2023-02-07 11:30:47 +08:00
|
6
yick 2023-02-07 12:38:24 +08:00 via Android
adgh 直接听 53 ,上流是 openclash 不好吗
|
7
HalloCQ 2023-02-07 15:16:33 +08:00
属实有点套娃
其实只需要 Adguardhome 就能完全实现 dns 分流,去广告,以及查看 dns 解析日志 的功能 |
8
murchef OP @HalloCQ 之前有用 adguardhome 的分流,用国内域名全走 223 其他走海外的方案,但还是比不上 mosdns 的方案,且缓存有时候用了会出问题,所以现在只用它做解析日志&去广告
|
11
murchef OP @yick 具体设置是什么,现在 openclash 不在 dns 劫持里开防火墙转发,面板就有问题,昨天试了很久
|
12
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 端口) |
13
nkcfc 2023-02-08 06:50:23 +08:00 via Android
oc 自带的是不是会泄露 dns ?比如我查询 xxx.com ,它会用两组 dns 查询,然后国内的 isp 服务商就知道我查询过了,当然用 doh 可以只让 dns 服务器知道,不过还是不爽。
|
14
riverdolphin 2023-02-08 15:39:04 +08:00 via Android 2
我同时使用 adgardhome, openclash, mosdns.
因为过滤广告是基于域名的,所以 adgardhome 先过滤广告,再通过 openclash 分流,再通过 mosdns 解析。 1 、重定向 53 到 adg ,关闭缓存,只做过滤,上游填写 openclash 的 dns 服务端口。 2 、openclash 的 dns 上游填写 mosdns 的端口,关闭缓存,不要劫持。 3 、设置 mosdns 分流解析,设置缓存策略,国外域名的 dns 记得加入到 openclash 的白名单强制走代理。 |
15
murchef OP @riverdolphin 好像试过,你看看 dashboard 和 yacd 面板里有没有显示域名
|
16
riverdolphin 2023-02-08 19:23:54 +08:00 via Android
@murchef 那你检查一下 iptables ,看看哪里有规则把 dns 请求劫持了。我的设置用起来很顺畅。
|
17
duetg 2023-02-08 22:36:00 +08:00 via iPhone
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 去分流,比较简单也可靠。套多了慢还不稳。 |
18
murchef OP @riverdolphin ok ,这方案有效
|
20
mac100 2023-02-10 14:22:52 +08:00
@riverdolphin 这方案 好像微信 好卡。转圈。
|
21
helb 2023-02-28 19:33:29 +08:00
@riverdolphin 请问如果我只用 mosdns openclash 是不是可以
1 openclash 的 dns 上游填写 mosdns 的端口,关闭缓存,打开劫持 2 设置 mosdns 时 DNS 转发是否需要打开 |
22
lastczj 2023-03-19 01:09:02 +08:00
@helb 1.建议关闭 openclash 的 DNS 劫持
2.打开 mosdns 的 DNS 转发 如果 openclash 打开 DNS 劫持,mosdns 打开 DNS 转发,最终导致哪个最后启动就会修改 Dnsmasq 的 DNS 转发 |
23
helb 2023-03-20 09:52:18 +08:00
@lastczj 感谢您的耐心解答 但当我采用了您的方法 关闭 openclash 的 DNS 劫持,打开 mosdns 的 DNS 转发后 出现国外媒体( nf 和 D+)无法播放提示错误的情况
可能是因为我开启了 ipv6 的原因 当我采用开启 op 的 dns 劫持后(关闭 DNS 缓存) 一切恢复正常 即使在主、旁路由都开启 ipv6 的情况 |
24
xpn282 2023-05-18 20:20:04 +08:00
@helb 关闭 OpenClash 的劫持,mosdns 的远程 dns 要填 127.0.0.1:7874 ,这样 OpenClash 才能正常工作
|
25
hongyichao 2023-07-12 04:06:37 +08:00
加 mosdns 主要是为了配合 fake-ip 吧? redir 模式应该不用套 mosdns
|
26
murchef OP @hongyichao #25 不是,只是为了 dns 能自己控制
|