V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
magic3584
V2EX  ›  OpenWrt

如何搭配 Openclash 和 ADG 使用?

  •  
  •   magic3584 · 2022-02-25 16:03:37 +08:00 · 10688 次点击
    这是一个创建于 786 天前的主题,其中的信息可能已经有所发展或是发生改变。

    红米 AX6 主路由拨号,N1 旁路由。

    哪个应该作为上游 DNS 呢? Openclash 选择 Redir 还是 Fake-IP ? 防火墙是否要添加规则?

    折腾了几天都没搞好,现在只保留 Openclash 关闭了 ADG 。

    求大佬指点。

    25 条回复    2023-04-06 21:58:54 +08:00
    Oishi
        1
    Oishi  
       2022-02-25 16:48:34 +08:00
    openclash 不要挟持 dns 请求,adguard home 里上游 dns 设置为 openclash 的本地 dns
    lazyrm
        2
    lazyrm  
       2022-02-25 16:59:32 +08:00
    我的理解是 直接 openclash 直接添加上 adg 里面的规则就好了。 反正都是对规则的配置,openclash 规则里面不也有 reject 么~
    jionlittlecat
        3
    jionlittlecat  
       2022-02-25 17:11:22 +08:00 via Android   ❤️ 1
    redir 与 fakeip 都可以,一般推荐是 fakeip ,前提是要开启 clash 的 dns 并且绑定在某个端口,然后在 adg 里面设置该端口上的 dns 为唯一的上游 dns ,注意是唯一。最后记得开启 adg 的端口转发或者直接覆盖 53 端口作为子网下的默认 dns 。
    另外如果 clash 选用 fakeip 模式,最好在 adg 里面把 dns 缓存禁用,把缓存时间还有 ttl 这些字段全部置 0 即可。
    magic3584
        4
    magic3584  
    OP
       2022-02-25 22:26:15 +08:00 via iPhone
    @Oishi #1

    @jionlittlecat #3

    才 3 楼就已经有分歧了。。。clash 的 dns 要不要开呢
    magic3584
        5
    magic3584  
    OP
       2022-02-25 22:27:16 +08:00 via iPhone
    @lazyrm #2
    主要是还想看 adg 里的域名访问情况
    jionlittlecat
        6
    jionlittlecat  
       2022-02-25 23:50:39 +08:00 via Android
    @magic3584 没有分歧,开启 dns 但不要劫持系统的 dns ,也就是不要开在 53 端口或是把 53 端口转发到 clash 的 dns 。clash 的 dns 要开,但要用 adg 的 dns 来劫持 dns 请求。
    Oishi
        7
    Oishi  
       2022-02-27 18:59:13 +08:00
    @magic3584 #4 没有分歧啊,我和 3 楼 老哥说的是一样的,他说的更详细 更清楚。

    内网请求 ->53 端口-> adguard home -> clash -> 外部 dns
    magic3584
        8
    magic3584  
    OP
       2022-02-27 22:18:22 +08:00
    @jionlittlecat #6
    @Oishi #7
    两位大佬请帮我分析下现在啥情况

    现在的问题是 openclash 网络都正常,但是 adguard home 中客户端列表只显示 127.0.0.1 ,并且过滤器中屏蔽 baidu 后仍然可以访问,访问 DNS 封锁清单中的网站后拦截次数未变。

    openclash:
    关闭本地 DNS 劫持,开启自定义上游 DNS ,禁止 Dnsmasq 缓存 DNS ,Fake-IP 模式

    adguard home:
    5553 重定向,重定向 53 端口到 adguard home ,上游 DNS 127.0.0.1:7874 ,Bootstrap DNS 服务器 114.114.114.114 ,DNS 缓存配置均为空

    openwrt:
    DHCP/DNS 中端口为 53 ,防火墙自定义规则为
    iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
    iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53
    magic3584
        9
    magic3584  
    OP
       2022-02-27 22:23:07 +08:00
    #8
    以上配置 youtube 无法播放。。。
    Oishi
        10
    Oishi  
       2022-02-28 11:05:05 +08:00
    iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
    iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53
    这两条应该注释掉吧?
    magic3584
        11
    magic3584  
    OP
       2022-02-28 11:19:50 +08:00
    @Oishi #10
    注释了以后网页都打不开了
    Oishi
        12
    Oishi  
       2022-03-01 16:56:17 +08:00   ❤️ 1
    @magic3584 #11 我后来又研究了下 这两条命令是强制内网的所有 dns 请求都转到路由本身的 dns 比如内网有设备自己设置了 dns 也会被转到路由本身的 dns 应该不会出现网页打不开的。

    你先确认下你的 53 端口有没有提供 dns 服务
    magic3584
        13
    magic3584  
    OP
       2022-03-02 14:08:16 +08:00
    @Oishi #12
    大佬这个怎么去查呢
    jionlittlecat
        14
    jionlittlecat  
       2022-03-02 23:28:15 +08:00
    @magic3584 先检查一下你局域网内客户端的 dns 地址是不是网关(路由器)的地址,并且只有这一个 dns 。看上面你注释掉那两条规则后打不开网页,应该就是局域网内的 dns 没设置对。

    另外使用 53 端口重定向后客户端只有 127.0.0.1 是正常的。先把 adg 的日志数据清除,看一下 adg 是否接受到了 dns 请求。
    magic3584
        15
    magic3584  
    OP
       2022-03-03 23:21:55 +08:00
    @jionlittlecat #24
    现在可以了,只是 adg 里只能显示 localhost ,如果 adg 设置为“使用 53 替换 dnsmasq”,又无法用了。。。不知道怎么去查这个问题
    jionlittlecat
        16
    jionlittlecat  
       2022-03-04 15:57:56 +08:00 via Android
    @magic3584 我使用替换 53 端口的时候也出现了这个问题,推测跟 dnsmasq 的设置有关。这里给个我的解决方案:在 dhcp 里的设置里手动指定 dns 服务器地址为路由器的地址就可以了。理论上用转发也没什么问题,但是直接替换可以降低一点 dns 响应延迟,如果不是特别在意的话不改也行。
    magic3584
        17
    magic3584  
    OP
       2022-03-04 19:17:53 +08:00
    @jionlittlecat #16
    我 DHCP 是主路由,openwrt 里用的 DNS ,大佬这个指向是指哪个路由器的地址?
    brucmao
        18
    brucmao  
       2022-03-04 22:17:48 +08:00   ❤️ 1
    我以前也折腾过这个很久,现在配置如下
    adg 使用 53 端口替换 dnsmasq
    adg 上游 dns 127.0.0.1:7874
    adg bootstrap dns: 本地运营商 dns
    openclash 运行模式:Redir-Host (兼容) 模式
    openclash 勾选:实验性:绕过中国大陆 IP
    openclash 取消勾选:本地 DNS 劫持

    参考: https://www.right.com.cn/FORUM/thread-4090928-1-1.html
    jionlittlecat
        19
    jionlittlecat  
       2022-03-04 22:37:46 +08:00 via Android   ❤️ 1
    @magic3584 原来是 op 旁路,我上面的方法是主路由的。那这里我就给不了完整的解决办法了,只能给几条思路自己摸索。

    1. 检查终端设备的 dns 服务器是否指向 op 。
    2. 检查 adg 是否绑定在 53 端口: netstat -alv 。
    3. 测试 op 内是否能正常联网。ping, curl 都可以测试一下。
    magic3584
        20
    magic3584  
    OP
       2022-03-06 21:57:12 +08:00
    @brucmao #18
    不行,设置完无法上网。。。不知道哪里有问题
    fuchaofather
        21
    fuchaofather  
       2022-03-27 21:49:36 +08:00
    @jionlittlecat 大佬,我的路由器跑 clash ,群晖跑 adguard 这种该怎么配置呢?目前是在 Redir-Host 中只指定 default-nameserver 为群晖 ip ,nameserver 配置还要改吗?
    CnpPt
        22
    CnpPt  
       2022-06-10 17:03:41 +08:00
    @fuchaofather
    1. 首先你的路由器关闭 iptables 的那两行劫持
    2. dhcp 分配内网 dns 为你的群晖里的 adguard IP (应该是标准 53 端口吧?)
    3. 修改 adguard 的上游为 clash 的 dns ,也就是路由器 IP+7874 ( clash dns 监听默认应该是 7874 吧?)
    CSGO
        23
    CSGO  
       2022-12-16 17:16:41 +08:00
    楼主解决了吗?我也需要这两个功能,但我不太清楚啥意思“上游”?
    以及我想的是,我可能并不需要 openclash ,所以希望 adg 能独立运行,所以我已经设置好了 adg 并且成功拦截广告,但是当我开启 openclash 后,似乎拦截效果差一些?还是需要怎么设置?楼上有人说把 adg 的 dns 设置成 open clash 里的 dns ,那岂不是我得一直开着 openclash ?那我要是哪天没机场了,怎么办呢?
    magic3584
        24
    magic3584  
    OP
       2022-12-19 14:00:50 +08:00
    @CSGO #23
    应该是解决了?记不太清楚了,当时搞完就没再管了
    KeShih
        25
    KeShih  
       2023-04-06 21:58:54 +08:00
    @Oishi
    @jionlittlecat 我也是按照你们这么设置的,但是这样似乎就用不上 adg 并行查询 dns 这样的优势了? 不过好像 openclash 自己也能并行查询
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   833 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:41 · PVG 04:41 · LAX 13:41 · JFK 16:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.