V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
murchef
V2EX  ›  DNS

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

  •  
  •   murchef · Feb 6, 2023 · 17268 views
    This topic created in 1176 days ago, the information mentioned may be changed or developed.

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

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

    当我采用开启 op 的 dns 劫持后(关闭 DNS 缓存) 一切恢复正常 即使在主、旁路由都开启 ipv6 的情况
    xpn282
        24
    xpn282  
       May 18, 2023
    @helb 关闭 OpenClash 的劫持,mosdns 的远程 dns 要填 127.0.0.1:7874 ,这样 OpenClash 才能正常工作
    hongyichao
        25
    hongyichao  
       Jul 12, 2023
    加 mosdns 主要是为了配合 fake-ip 吧? redir 模式应该不用套 mosdns
    murchef
        26
    murchef  
    OP
       Jul 12, 2023
    @hongyichao #25 不是,只是为了 dns 能自己控制
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3276 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 00:30 · PVG 08:30 · LAX 17:30 · JFK 20:30
    ♥ Do have faith in what you're doing.