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

Mosdns + adguardhome +passwall ,实现 dns 国内外分流、bt 下载直连和 ipv6 正常使用

  •  
  •   maxus · 108 天前 · 7429 次点击
    这是一个创建于 108 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用了一段时间,速度很快,分享一下

    系统环境:
    openwrt 主路由,安装 MosDNS v5.3.1 ,adguardhome 核心版本:0.107.52 ,passwall 4.69-4

    逻辑:
    1 ,mosdns 国内外分流、DNS 缓存、防 DNS 泄漏,由 mosdns 包揽 openwrt 所有解析
    2 ,adguardhome 屏蔽网站,可跟踪全屋访问的网站,上游 dns 设置为 mosdns
    3 ,passwall 翻墙,bt 直连,上游 DNS 设置为 adguardhome

    Mosdns 设置:
    1 ,监听端口:5335
    2 ,DNS 转发,不勾选
    3 ,勾选,远程 DNS 首选 IPv4 、自定义国内 DNS 、Apple 域名解析优化
    4 ,其他选项随意

    adguardhome 设置:
    1 ,后台设置:6060 重定向:选择 用 53 端口替换 dnsmasq

    2 ,打开 AdGuardHome 进入安装向导,
    点击 “开始配置”
    a,网页管理界面,监听接口:选择 所有接口,端口:3000
    b,DNS 服务器,监听接口:选择 所有接口,端口:5388
    c,其他选项随意

    3,管理页面设置:
    a,上游 DNS 服务器 127.0.0.1:5335 (即 mosdns ),选择负载均衡
    b,其他都不选不填,拦截模式选空 ip
    c,DNS 缓存配置,全部留空不选(因为 DNS 缓存由 Mosdns 负责)
    d,其他选项随意

    passwall 设置:
    1,DNS
    a,选择 过滤代理域名 IPv6
    b,过滤模式:选择,通过 UDP 请求 DNS
    c,远程 DNS:自定义 127.0.0.1:5388 (即 adguardhome)
    d,当使用中国列表外时的默认 DNS:选择 直连 DNS

    2,高级设置
    a,TCP 不转发端口:填写 BT 端口/ UDP 不转发端口:填写 BT 端口
    b,TCP 转发屏蔽端口:不使用
    c,UDP 转发屏蔽端口:QUIC
    d,TCP 转发端口:常用的
    e,UDP 转发端口:DNS
    f,TCP 代理方式:Tproxy
    g,其他不填不选

    3 ,访问控制,点击添加
    a,源地址,选择 bt 客户端的 ip 地址
    b,前四项选择默认
    c,TCP 转发端口:填写 BT 端口/UDP 转发端口:填写 BT 端口
    d,TCP 代理模式:不代理/UDP 代理模式:不代理
    e,TCP 节点:默认/UDP 节点:默认

    Openwrt 的 DHCP/DNS 设置
    1 ,服务器设置——常规设置:DNS 转发留空,其他默认
    2 ,服务器设置——高级设置:DNS 服务器端口:5388 ,,其他默认

    Openwrt 防火墙——自定义规则
    ```
    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
    [ -n "$(command -v ip6tables)" ] && ip6tables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
    [ -n "$(command -v ip6tables)" ] && ip6tables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53
    ```

    ios adguardhome 管理 app https://apps.apple.com/us/app/adguard-home/id1667119601?l=zh-Hans-CN
    57 条回复    2024-12-04 15:40:33 +08:00
    xbin
        1
    xbin  
       108 天前
    感觉有点乱,5388 端口到底谁在用? 是 adguardhome 还是 dnsmasq?
    maxus
        2
    maxus  
    OP
       108 天前
    @xbin 不会乱的,已经用几个月了,adguardhome 自己的 dns 端口是 5388 ,他的上游交给 mosdns,dnsmasq 交给 adguardhome
    52acca
        3
    52acca  
       108 天前 via Android
    mosdns 还是用配置文件更灵活
    GoldenLeez
        4
    GoldenLeez  
       108 天前
    有点懵,adguardhome “选择 用 53 端口替换 dnsmasq”,后面又设置 dns 监听端口 5388 。那么 adguardhome 监听的到底是 53 还是 5388 ,还有 dnsmasq 监听的端口被替换成什么了?
    maxus
        5
    maxus  
    OP
       108 天前
    @GoldenLeez 懵不懵,想用,自己配置完,自己测试就行了,不想用,可以直接无视。
    我觉得好用只拿出来分享,不负责解释
    maxus
        6
    maxus  
    OP
       108 天前
    按照上面配置完,全屋的网关和 dns 设置为 openwrt 的 ip 地址即可,不需要添加任何端口。打开 adguardhome, 可以看到全屋设备的网址访问历史, 打开 mosdns 日志可以看到 lazy_cache 缓存数量。

    如果有人不理解配置内容,本人不做解释,只负责分享
    showgood163
        7
    showgood163  
       108 天前
    想问一下 LZ mosdns 的分流方案来源是?
    maxus
        8
    maxus  
    OP
       108 天前   ❤️ 1
    @showgood163 内置预设,手动配置
    国内 https://1.12.12.12/dns-query https://223.5.5.5/dns-query
    国外 1.1.1.1 和 8.8.4.4

    GeoIP & GeoSite 数据库 自动更新
    864766428
        9
    864766428  
       108 天前 via iPhone
    以前也折腾过各种方案,包括但不限于 passwall 、bypass 、v2ray 、passwall2 、openclash 、shellclash 、mosdns 、smartdns 、adguardhome 等,最后还是 dae ,配置文件写好,放着不用管了,ipv6 正常,bt 直连,不看查询记录也习惯了,不会强迫症一样时不时看一下记录,机器只要不断电就和不存在一样
    maxus
        10
    maxus  
    OP
       108 天前
    @864766428 不知道 DAE 是什么,反正这个 DNS 分流和缓存方案,实现国内外网页快速打开,又能屏蔽几十万条垃圾网站和跟踪网站,如果有个人域名,可以设置成自己的私人 dns ,在外面使用
    864766428
        11
    864766428  
       108 天前 via iPhone
    @maxus 搜 GitHub dae 就有了,imm 的软件包里直接可以下载,采用 eBPF 技术,自带分流,国内直通,无泄漏,你折腾的所有功能都有
    maxus
        12
    maxus  
    OP
       108 天前
    @864766428 不要,我要 adguardhome 的订阅屏蔽网站功能,自动更新。
    mosdns 的国内外域名,自动更新。
    yuchenr
        13
    yuchenr  
       107 天前
    对,我现在也是 dae,啥也不用管。
    jqtmviyu
        14
    jqtmviyu  
       107 天前
    反感在上级路由使用 dns 过滤广告, 误伤了排查和设置太麻烦.
    同理也不在路由上装翻墙软件. 一挂全挂.
    Kale
        15
    Kale  
       107 天前
    DNS 广告拦截基本没用,还是需要浏览器插件。
    TimeStudy
        16
    TimeStudy  
       107 天前
    很折腾 不如直接 mosdns + singbox 来的直接
    HalloCQ
        17
    HalloCQ  
       107 天前
    adguardhome 就能分流,mosdns 多此一举
    Kale
        18
    Kale  
       107 天前
    @HalloCQ 不能。除非你搞两个 ADH
    maxus
        19
    maxus  
    OP
       107 天前
    评论五花八门,还有说反感在路由器安装翻墙的,你不用不代表别人不用。
    还有什么 dae 的,你的一劳永逸,别的的也一样一劳永逸。
    还有说路由器去广告没效果的,路由器是屏蔽跟踪网站的,肯定无法隐藏网页元素,当然需要配合浏览器插件使用。
    Earsum
        20
    Earsum  
       107 天前
    @Kale adgh 其实有分流功能,可以指定某个域名用哪个 dns 服务器解析,不过整理起来有点麻烦
    kidxiang
        21
    kidxiang  
       106 天前
    @864766428 求 dae 在 openwrt 部署的教程
    abolast
        22
    abolast  
       106 天前
    我这种在 dnsmasq 里面填写本地运营商 dns 的,看到你用过这么多 dns 软件,我简直两眼一抹黑。
    不过,只要不搞旁路由,折腾什么都应该理解万岁
    abolast
        23
    abolast  
       106 天前
    @kidxiang 大鹅有 dead 可以用,这个带了 webGUI ,安装就是一个包的事情。不过,需要编译的时候把 eBPF 带上。面前 immortalwrt 就自带了 eBPF
    zhsama
        24
    zhsama  
       106 天前
    佬,使用你上述的配置,直接无法科学了

    除了 adg 的 dns 端口不同,其他完全一致,如何排查问题呢

    HalloCQ
        25
    HalloCQ  
       106 天前
    @Kale #18 不是不能,是你不会。搞个脚本定时更新白名单或者黑名单
    Kale
        26
    Kale  
       106 天前
    @HalloCQ #25 那为什么不用 modns 啊
    xycost233
        27
    xycost233  
       106 天前
    mos 怎么访问国外 dns 呢,单独配置 proxy 么
    maxus
        28
    maxus  
    OP
       106 天前
    @zhsama 国内网站正常访问吗? AdGuard 各个客户端流量可以正常显示吗
    maxus
        29
    maxus  
    OP
       106 天前
    @xycost233 mosdns 默认国内外分流解析 DNS ,有个国内域名和 ip 库,匹配的直接国内解析,不匹配的国外解析
    xycost233
        30
    xycost233  
       103 天前
    @maxus #29 国外解析也是走 proxy 到谷歌 dns 对吧,类似于国内白名单?不在白名单的都走国外解析?如果代理挂了岂不是很多没有被墙的网站都访问不了了
    zhsama
        31
    zhsama  
       103 天前
    @maxus #28 境内正常、adg 可以显示各个客户端的请求
    Zoyo94
        32
    Zoyo94  
       103 天前
    #### 看了好多人问 5388 端口,证明你们不理解「重定向:」是干啥的。
    #### 我一直用的就是 ADH+mosDNS+OpenClash 这种方案。
    #### 配置和 up 相同只是 passwall 换成 OpenClash 。
    HalloCQ
        33
    HalloCQ  
       103 天前
    @Kale #26 mosdns 好像不支持自动 ecs ,没发部署到公网服务器。adguardhome 支持的很好
    batilo
        34
    batilo  
       103 天前
    这样配置好乱
    maxus
        35
    maxus  
    OP
       103 天前
    @zhsama 翻墙服务器的域名,要直连,在 mosdns 设置为本地 dns 解析
    maxus
        36
    maxus  
    OP
       103 天前
    @xycost233 需要保持正常的啊
    Kale
        37
    Kale  
       103 天前
    @HalloCQ #33 搜索 Easymosdns ,支持公网。致动 ECS
    HalloCQ
        38
    HalloCQ  
       103 天前
    @Kale 很早前用过,他使用的是 mosdns v4 版本,不支持现在的 v5 版本。mosdns 作者有说过,v4 版本的 mosdns v4 处理的并不好
    HalloCQ
        39
    HalloCQ  
       103 天前
    @HalloCQ 很早前用过,他使用的是 mosdns v4 版本,不支持现在的 v5 版本。mosdns 作者有说过,v4 版本的 mosdns ecs 处理的并不好
    agon1012
        40
    agon1012  
       102 天前
    youtube 的广告可以拦截吗?我之前配置了好多方案都不得行
    maxus
        41
    maxus  
    OP
       102 天前
    @agon1012 手机端 YouTube 广告需要 mitm 去广告,可以借助 stash qx 实现
    stcode
        42
    stcode  
       101 天前
    @yuchenr dae 配置一般人真搞不来
    haodi1987
        43
    haodi1987  
       98 天前
    爱快主路由+op 旁路由的话,爱快要怎么设置呢?
    rabt
        44
    rabt  
       92 天前
    感觉不错,回家试试
    anytk
        45
    anytk  
       86 天前
    其实 dnsmasq + sing-box 就足够了,sing-box 可以同时 dns 分流和翻墙,外加 DNS 过滤广告。
    bclerdx
        46
    bclerdx  
       85 天前 via Android
    @abolast 大鹅是什么鬼?
    aidenLL2019
        47
    aidenLL2019  
       78 天前 via iPhone
    厉害,正需要这样的配置样例,多谢!
    Kale
        48
    Kale  
       77 天前
    @agon1012 如果是安卓手机可以用 Youtube Revanced
    maxus
        49
    maxus  
    OP
       75 天前
    如果是最新版 passwall, 远程 DNS 和直连 DNS 都设置指向 Adguardhome, 模式中,将路由器本机代理和客户端代理 全部打勾
    maxus
        50
    maxus  
    OP
       75 天前
    还有提醒一点,mosdns 的远程 dns 设置成 https://8.8.8.8/dns-query https://1.1.1.1/dns-query 这样的,ip 形式的 DOH , 不要用 dot, tls 的 853 端口是被封锁的
    agon1012
        51
    agon1012  
       75 天前
    @Kale 谢谢,我是想的 adguardhome 上配置规则,一直没合适的
    diave971349
        52
    diave971349  
       66 天前
    感谢楼主,我一直想这样设置奈何网上都是 openclash 的教程,并没有 passwall 的教程,那个不勾选过滤海外 ipv6 会有问题吗,我手上是纯 ipv6 的机场,
    maxus
        53
    maxus  
    OP
       66 天前
    @diave971349 估计没事
    devli
        54
    devli  
       58 天前
    “还有提醒一点,mosdns 的远程 dns 设置成 https://8.8.8.8/dns-query https://1.1.1.1/dns-query 这样的,ip 形式的 DOH , 不要用 dot, tls 的 853 端口是被封锁的”
    @maxus 不是这样吧,远程解析 DNS 是在远程服务器上解析,自己的服务器自己控制端口,怎么会是被封锁的?我远程解析一直用的 tls://8.8.8.8, 没什么问题啊。这个又不是本地解析的,谷歌的 doh 、dot 在国内早被封了。
    maxus
        55
    maxus  
    OP
       58 天前
    @maxus #53 我这里用 tls 总是出错
    devli
        56
    devli  
       57 天前
    @maxus 本地解析的话我这里早都墙完了,那就是我理解错了,这里说的远程 dns 只是访问外网时的请求的 dns ,不是远程服务器解析的 dns ,我最近在搞 singbox ,还以为这个和 singbox 一样可以通过代理在远程服务器上解析。我的谷歌 doh/dot 本地解析早不能用了,你那里的 doh 还能用已经不错了。
    rabt
        57
    rabt  
       17 天前
    新版的 openwrt 使用的是 firewall4 ,请问是否有人知道 firewall4 如何设置这个防火墙规则?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1601 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:41 · PVG 00:41 · LAX 08:41 · JFK 11:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.