V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
murchef
V2EX  ›  DNS

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

  •  
  •   murchef · 2023-02-06 22:59:30 +08:00 · 13937 次点击
    这是一个创建于 690 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天在 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 显示域名

    26 条回复    2023-07-12 15:15:29 +08:00
    xuesumin
        1
    xuesumin  
       2023-02-07 07:28:30 +08:00 via iPhone
    不理解这样搭配的原因,openclash 本来就能 dns 分流,为何需要 mosdns 再做一次? Adguardhome 基于 dns 域名的去广告功能,在 openclash 配置文件加上去广告规则不就好了?
    arfaWong
        2
    arfaWong  
       2023-02-07 08:39:08 +08:00
    搞了台 Linux 服务器做代理的网关。
    DHCP 直接分配这台服务器做 DNS 服务器。adg 53 --> mosdns 5335 分流到国内、国外的 DOH 。
    主路由 ROS 将非中国大陆 IP 的流量转发到这台服务器,Clash.Meta 通过 iptables 和 tproxy 透明代理流量。
    arfaWong
        3
    arfaWong  
       2023-02-07 08:39:53 +08:00
    @arfaWong Clash.Meta 关闭 DNS 监听和劫持。
    jeanz
        4
    jeanz  
       2023-02-07 09:30:48 +08:00
    @xuesumin #1 mosdns 可以把国内 /国外解析分开,加上 Adguardhome 界面便于查看记录
    wangerka
        5
    wangerka  
       2023-02-07 11:30:47 +08:00
    你这终极套娃属于是。我自己写规则,有的节点不咋好所以没做分流,基本够用
    ![]( )
    yick
        6
    yick  
       2023-02-07 12:38:24 +08:00 via Android
    adgh 直接听 53 ,上流是 openclash 不好吗
    HalloCQ
        7
    HalloCQ  
       2023-02-07 15:16:33 +08:00
    属实有点套娃
    其实只需要 Adguardhome 就能完全实现 dns 分流,去广告,以及查看 dns 解析日志 的功能
    murchef
        8
    murchef  
    OP
       2023-02-07 15:30:22 +08:00 via Android
    @HalloCQ 之前有用 adguardhome 的分流,用国内域名全走 223 其他走海外的方案,但还是比不上 mosdns 的方案,且缓存有时候用了会出问题,所以现在只用它做解析日志&去广告
    murchef
        9
    murchef  
    OP
       2023-02-07 15:31:02 +08:00 via Android
    @yick 试过,有问题好像
    murchef
        10
    murchef  
    OP
       2023-02-07 15:33:44 +08:00 via Android
    @arfaWong 未来可能去玩玩 ros ,现在先琢磨琢磨 openwrt
    murchef
        11
    murchef  
    OP
       2023-02-07 15:36:55 +08:00 via Android
    @yick 具体设置是什么,现在 openclash 不在 dns 劫持里开防火墙转发,面板就有问题,昨天试了很久
    yick
        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 端口)
    nkcfc
        13
    nkcfc  
       2023-02-08 06:50:23 +08:00 via Android
    oc 自带的是不是会泄露 dns ?比如我查询 xxx.com ,它会用两组 dns 查询,然后国内的 isp 服务商就知道我查询过了,当然用 doh 可以只让 dns 服务器知道,不过还是不爽。
    riverdolphin
        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 的白名单强制走代理。
    murchef
        15
    murchef  
    OP
       2023-02-08 16:11:41 +08:00 via Android
    @riverdolphin 好像试过,你看看 dashboard 和 yacd 面板里有没有显示域名
    riverdolphin
        16
    riverdolphin  
       2023-02-08 19:23:54 +08:00 via Android
    @murchef 那你检查一下 iptables ,看看哪里有规则把 dns 请求劫持了。我的设置用起来很顺畅。
    duetg
        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 去分流,比较简单也可靠。套多了慢还不稳。
    murchef
        18
    murchef  
    OP
       2023-02-08 23:29:27 +08:00 via Android
    @riverdolphin ok ,这方案有效
    mac100
        19
    mac100  
       2023-02-10 00:40:42 +08:00
    @murchef 懵圈了那种方案好啊。??
    mac100
        20
    mac100  
       2023-02-10 14:22:52 +08:00
    @riverdolphin 这方案 好像微信 好卡。转圈。
    helb
        21
    helb  
       2023-02-28 19:33:29 +08:00
    @riverdolphin 请问如果我只用 mosdns openclash 是不是可以
    1 openclash 的 dns 上游填写 mosdns 的端口,关闭缓存,打开劫持
    2 设置 mosdns 时 DNS 转发是否需要打开
    lastczj
        22
    lastczj  
       2023-03-19 01:09:02 +08:00
    @helb 1.建议关闭 openclash 的 DNS 劫持
    2.打开 mosdns 的 DNS 转发

    如果 openclash 打开 DNS 劫持,mosdns 打开 DNS 转发,最终导致哪个最后启动就会修改 Dnsmasq 的 DNS 转发
    helb
        23
    helb  
       2023-03-20 09:52:18 +08:00
    @lastczj 感谢您的耐心解答 但当我采用了您的方法 关闭 openclash 的 DNS 劫持,打开 mosdns 的 DNS 转发后 出现国外媒体( nf 和 D+)无法播放提示错误的情况
    可能是因为我开启了 ipv6 的原因

    当我采用开启 op 的 dns 劫持后(关闭 DNS 缓存) 一切恢复正常 即使在主、旁路由都开启 ipv6 的情况
    xpn282
        24
    xpn282  
       2023-05-18 20:20:04 +08:00
    @helb 关闭 OpenClash 的劫持,mosdns 的远程 dns 要填 127.0.0.1:7874 ,这样 OpenClash 才能正常工作
    hongyichao
        25
    hongyichao  
       2023-07-12 04:06:37 +08:00
    加 mosdns 主要是为了配合 fake-ip 吧? redir 模式应该不用套 mosdns
    murchef
        26
    murchef  
    OP
       2023-07-12 15:15:29 +08:00
    @hongyichao #25 不是,只是为了 dns 能自己控制
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   979 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:00 · PVG 04:00 · LAX 12:00 · JFK 15:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.