请教下 clash 的 DNS 是这么配置么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shuiguomayi
V2EX    问与答

请教下 clash 的 DNS 是这么配置么?

  •  2
     
  •   shuiguomayi 2024-02-13 21:14:13 +08:00 23172 次点击
    这是一个创建于 605 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Clash dns

    请教下 clash 的 dns 的配置,用下面这个配置持续出现报错说 dns 解析失败,是这些 dns 服务器全被封了?求一下能用的 DNS 或者正确的配置。

    dns: enable: true listen: '0.0.0.0:53' default-nameserver: - 119.29.29.29 - 223.5.5.5 use-hosts: true nameserver: - https://doh.pub/dns-query - https://dns.alidns.com/dns-query fallback: - 'https://doh.dns.sb/dns-query' - 'https://dns.cloudflare.com/dns-query' - 'https://dns.twnic.tw/dns-query' - 'tls://8.8.4.4:853' - 'https://dns.alidns.com/dns-query' fallback-filter: geoip: true geoip-code: CN ipcidr: - '240.0.0.0/4' - '0.0.0.0/32' 
    34 条回复    2025-03-31 13:02:30 +08:00
    icaolei
        1
    icaolei  
       2024-02-14 02:07:37 +08:00   11
    default-nameserver 是用来解析 nameserver 和 fallback 里面的域名的
    nameserver 是用来解析规则没有命中(也就是墙内域名)的
    fallback 是用来解析墙外域名的
    fallback-filter 是用来直接让这些域名走 fallback 解析的(也就是放在这里的默认就是需要翻墙解析)

    所以你这里的问题有:
    1. 没有看到 enhanced-mode ,需要加上
    2. fallback 里不应该出现墙内 DNS
    3. geoip-code: CN 需要去掉
    4. 建议把 use-hosts 也去掉(我不知道 use-hosts 是干嘛的)
    5. 建议删除单引号(对 yaml 语法不太熟,不知道这样混用单引号会不会报错)
    6. 建议多写点 DNS ( clash 的机制是同时向所有 DNS 发起解析请求,用返回最快那个,后续的直接丢弃)

    给你一个我自己用的 DNS 配置参考:

    dns:
    enable: true
    listen: 127.0.0.1:53
    ipv6: true
    enhanced-mode: fake-ip
    default-nameserver:
    - 223.5.5.5
    - 8.8.8.8
    - 8.8.4.4
    - 1.0.0.1
    - 119.29.29.29
    nameserver:
    - https://223.6.6.6/dns-query
    - https://dns.alidns.com/dns-query
    - tls://dns.alidns.com:853
    - https://dns.pub/dns-query
    - https://doh.pub/dns-query
    - tls://dot.pub:853
    fallback:
    - https://1.0.0.1/dns-query
    - tls://one.one.one.one:853
    - https://public.dns.iij.jp/dns-query
    - https://dns.google/dns-query
    - tls://dns.google:853
    - https://dns.quad9.net/dns-query
    - tls://dns.quad9.net:853
    - https://doh.sb/dns-query
    - tls://dot.sb:853
    fallback-filter:
    geoip: true
    ipcidr:
    - 240.0.0.0/4
    - 0.0.0.0/32
    - 127.0.0.1/32
    domain:
    - +.google.com
    - +.facebook.com
    - +.youtube.com
    - +.xn--ngstr-lra8j.com
    - +.google.cn
    - +.googleapis.cn
    xpn282
        2
    xpn282  
       2024-02-14 15:41:42 +08:00   2
    不用搞那么复杂的,直接放弃 fallback 这种复杂而过时的东西,用下面 2 组设置就可以搞定了,并且实现国内外 dns 分流,思路就是:
    nameserver-policy 用运营商 dns (让国内 cn 走运营商的 dns )
    nameserver 用国外的 dns

    dns:
    enable: true
    ipv6: true
    enhanced-mode: redir-host
    listen: 0.0.0.0:7874
    nameserver:
    - tls://8.8.4.4
    - tls://208.67.222.222
    nameserver-policy:
    geosite:cn,apple:
    - 运营商 dns
    shuiguomayi
        3
    shuiguomayi  
    OP
       2024-02-14 16:31:48 +08:00
    @icaolei
    @xpn282

    请收下我诚挚的感谢。
    daisyfloor
        4
    daisyfloor  
       2024-02-14 21:59:43 +08:00
    @xpn282 @shuiguomayi @icaolei

    这是一个可用的简单配置:

    dns:
    enable: true
    prefer-h3: true
    listen: :1053
    enhanced-mode: fake-ip
    fake-ip-range: 28.0.0.1/8
    fake-ip-filter:
    - "*"
    - "+.lan"
    - "+.local"
    nameserver:
    - https://101.101.101.101/dns-query
    - https://1.1.1.1/dns-query
    nameserver-policy:
    "geosite:cn,private":
    - https://223.5.5.5/dns-query#h3=true
    - https://223.6.6.6/dns-query#h3=true

    解释一下:
    - IPv6 我之前一直是 true ,最近打算关掉试一试,因为看到有说法是这个打开后有时候会影响上网体验。待验证。
    - prefer-h3: true 要打开,这个对于支持 http3 的 Doh 会启动并发查询,如果对方支持,速度更快,那就起飞
    - nameserver 部分没有开强制 h3 ,原因是,这部分请求会出去,而出国的 udp 通常可能体验不好,默认并发即可。
    - policy 部分,增加了#h3=true ,让国内的域名解析强制开启 http3 的 Doh (目前阿里是支持的),理论上可以起飞。
    - 去掉了 default-nameserver ,因为下面的请求地址用的都是 ip ,不是域名,不需要再解析了。

    另外就是,enhanced-mode 这部分到底怎么用我还没搞清楚,fake-ip 部分是我最近加上去的。我不是在网关上用,就是客户端上用。所以我不知道有没有用。或者说有没有负作用。目前也是测试待验证。

    以上。
    Nin
        5
    Nin  
       2024-02-14 22:07:15 +08:00
    dns:
    enable: true
    ipv6: true
    listen: 0.0.0.0:5453
    enhanced-mode: fake-ip # or redir-host
    fake-ip-range: 198.18.0.1/16
    fake-ip-filter:
    - '+.lan'
    - '+.local'
    use-hosts: true
    nameserver:
    - tcp://127.0.0.1:1054

    我选择不让它处理,交给 mosdns
    icaolei
        6
    icaolei  
       2024-02-15 01:35:08 +08:00   1
    @xpn282 #2 我看了下 clash.meta 的文档,解析流程似乎和原版 clash 不一致。

    clash.meta 的 nameserver 和 fallback 是并发查询的,原版 clash 是只把 fallback-filter 命中了的(墙外的)交给 fallback 解析,没有命中的(墙内的)交给 nameserver 解析。

    相当于用 fallback-filter 来分流。


    按 clash.meta 这个解析流程:

    nameserver-policy 相当于原版的 fallback-filter ,用于分流,但在这里加入了命中时(墙内的)交给哪个 DNS 解析这个逻辑。也可以延申出更多更个性化的 DNS 分流,而不像 fallback-filter 一样,只能区分是否要用 fallback 解析。
    nameserver 相当于原版的 fallback ,在分流没有命中时(墙外的),交给这些 DNS 来解析。

    结论就是:如果使用的是 clash.meta 内核的话,确实可以不配置 fallback 。
    icaolei
        7
    icaolei  
       2024-02-15 01:38:07 +08:00
    @icaolei #1 更正一下:

    3. geoip-code: CN 这个不需要去掉。我以为这个配置的意思 CN 的 IP ,但其实是除了 CN 以外的 IP 。
    icaolei
        8
    icaolei  
       2024-02-15 01:44:35 +08:00
    @daisyfloor #4 这个配置可以。我现在也是用的 clash.meta 了,看到文档描述的解析流程,确实没有必要上 fallback 了。

    我准备加上 ipv6: true 和 default-nameserver 两个配置,再加上我那一堆 DNS 来用了。

    - 加上 ipv6 是因为我比较喜欢 ipv6 ,毕竟我家宽带没有独立 ipv4 公网 ip ,但 ipv6 是真公网。

    - 加上 default-nameserver 和那一堆 DNS 是因为我想增加一点容错,除了纯 IP 的 DNS 外,可以配置一些域名的 DNS ,多配点没关系,就怕少了万一除啥问题导致网出问题。
    xpn282
        9
    xpn282  
       2024-02-15 06:35:00 +08:00
    对啊,用 Meta 内核,直接 nameserver-policy 和 nameserver 对 dns 分流了,简单明了

    我是用 OpenClash Meta ,IPv6 我也一直都是全开的,没一点问题,要使用 ipv6 就要让 clash 接管 ipv6 的所有流量。那些开了 v6 ,但是只让 clash 接管 v4 而已,出国绝对会出问题

    请问现在的 Meta 内核文档在哪里找?之前文档被作者删除了
    daisyfloor
        10
    daisyfloor  
       2024-02-15 11:16:32 +08:00
    @icaolei @xpn282

    有个地方我可能没有说明白,ipv6: true 有两处,一个是全局的,一个是 dns 项里的。

    dns 里的默认是 true 。全局的好像也是,而且一般 app 会在 GUI 里有开关控制,它们的区别是:

    -全局的 :是否处理 ipv6 流量
    -dns 里的 :是否丢弃 AAAA

    这 2 个任意一个改为 false ,就会无法使用 ipv6 进行网络访问,可以通过 https://ipw.cn/测试。这个根据自己的需求来。如果你没有 ipv6 就建议关掉。 有 ipv6 的话想用就开,比如有些网络电视用的是 ipv6 地址。

    回到 DNS 优化的问题:
    除了 DNS 配置项目问题,规则才是关键。因为 dns 优化的核心是要避免本地进行“不必要的 DNS 解析”,使用 Fake-ip 就是一种策略,还有一个策略就是要在规则里,尽量避免使用 IP 规则,如果有,也建议放在排序的后面,并且加上 no-resolve 。

    这样,就避免(减少)了一次或多次为了匹配规则而进行的 DNS 请求。
    daisyfloor
        11
    daisyfloor  
       2024-02-15 17:13:19 +08:00
    刚知道 google 的 Doh 可以这样配置:

    https://8.8.8.8/dns-query

    那么就完全不需要 default-nameserver 了。
    shuiguomayi
        12
    shuiguomayi  
    OP
       2024-02-16 17:57:43 +08:00
    @icaolei ,@xpn282 请问,你用的 clash.meta 是 https://github.com/clash-verge-rev/clash-verge-rev 这个项目么?我目前在用 clash-linux-armv7-v1.18.0 ,原版仓库应该被删除了,我这是某个 github 上面的 fork 项目里找来的,不知道这个是否支持 meta 内核。
    xpn282
        13
    xpn282  
       2024-02-16 19:11:57 +08:00
    @shuiguomayi 这个我也不是很清楚,我是在 OpenWrt 上使用 OpenClash ,OpenClash 可以使用 Meta 内核
    icaolei
        14
    icaolei  
       2024-02-16 23:59:36 +08:00
    icaolei
        15
    icaolei  
       2024-02-17 00:04:49 +08:00
    @shuiguomayi #12 clash-verge 只是一个基于 clash 内核和 clash.meta 内核的 GUI 客户端而已,目前 clash-verge 使用的是 clash.meta ( mihomo v1.18.1 )内核。

    你说的 clash-linux-armv7-v1.18.0 我理解也是一个内核?

    要找 clash.meta 内核去 https://github.com/MetaCubeX/mihomo/tree/Meta

    PC 三大系统的 GUI 客户端去 https://github.com/clash-verge-rev/clash-verge-rev

    安卓的 GUI 客户端去 https://github.com/MetaCubeX/ClashMetaForAndroid
    shuiguomayi
        16
    shuiguomayi  
    OP
       2024-02-17 07:56:55 +08:00
    @icaolei 请收下我诚挚的感谢。
    shuiguomayi
        17
    shuiguomayi  
    OP
       2024-02-17 23:05:10 +08:00 via iPhone
    @icaolei 请教用 ipv6 是有什么使用场景?
    icaolei
        18
    icaolei  
       2024-02-18 00:47:49 +08:00
    @shuiguomayi #17 本地和代理服务器均有 IPv6 时,可通过 IPv6 通信,没什么特殊的。现在大部分服务器都是至少有 IPv4 ,一部分是双栈,极少数只提供 IPv6 。

    如果服务器只有 IPv6 ,那本地必须有 IPv6 ,并且在 clash 中配置好 IPv6 才可以代理成功。

    (我还发现有些时候通过 IPv6 翻墙时走的路由不太一样,也许会没那么拥挤?瞎猜的)
    BABYMETAL
        19
    BABYMETAL  
       2024-02-18 10:41:52 +08:00
    折腾很久看完文档的表示同意 9 楼说法,直接设置 nameserver-policy 和 nameserver 对 dns 分流,我是喜欢 nameserver-policy 解析 gfw 域名,剩下域名走 nameserver ,简洁高效
    daisyfloor
        20
    daisyfloor  
       2024-02-20 10:28:29 +08:00   3
    经过我多天测试,在我这边的网络环境下,需要关掉 ipv6: true 和 #h3=true

    上面两个任意一个打开,都会造成国内 DNS 解析缓慢。现象就是微信打开后,连接中..-> 收取中.. 要转很久很久。

    全部关闭后。秒开。

    prefer-h3: true 这一项还是打开了。因为有可能别的 isp 网络环境下,dns over HTTP3 会比 doH 要快。这选 true 那么下面的 dns 查询就是 dns over HTTP3 和 doH 并发 谁快用谁。我之前强制 #h3=true 就不行了。

    最终配置如下:
    dns:
    enable: true
    prefer-h3: true
    listen: :1053
    enhanced-mode: fake-ip
    fake-ip-range: 28.0.0.1/8
    fake-ip-filter:
    - "*"
    - "+.lan"
    - "+.local"
    nameserver:
    - https://8.8.8.8/dns-query
    - https://1.1.1.1/dns-query
    nameserver-policy:
    "geosite:cn,private":
    - https://223.5.5.5/dns-query
    - https://223.6.6.6/dns-query

    @icaolei @shuiguomayi @Nin @xpn282 @BABYMETAL
    815169876
        21
    815169876  
       2024-07-08 08:55:43 +08:00
    @icaolei 这部分文档写在哪里了呢。。抱歉没找到
    icaolei
        22
    icaolei  
       2024-07-08 09:11:30 +08:00 via Android
    @815169876 #21 哪部分文档?
    815169876
        23
    815169876  
       2024-07-14 00:03:24 +08:00
    @icaolei 就是你前面说的这部分


    nameserver-policy 相当于原版的 fallback-filter ,用于分流,但在这里加入了命中时(墙内的)交给哪个 DNS 解析这个逻辑。也可以延申出更多更个性化的 DNS 分流,而不像 fallback-filter 一样,只能区分是否要用 fallback 解析。
    nameserver 相当于原版的 fallback ,在分流没有命中时(墙外的),交给这些 DNS 来解析。
    icaolei
        24
    icaolei  
       2024-07-14 12:12:14 +08:00 via Android
    borsalinolllll
        25
    borsalinolllll  
       2024-09-04 03:24:24 +08:00 via Android
    玛德要是早点搜到这一篇帖子就好了,几位大神已经讲透了
    lurui45
        26
    lurui45  
       220 天前
    @daisyfloor #20 兄弟,你这个 DNS 配置我用最新的 Verge+meta 内核昨天试了,刚开始是好的,后来就不行了,什么都打不开,不知道哪里出了问题。我又切回了 fallback 写法
    3eWMea0rfV9xG3Jt
        27
    3eWMea0rfV9xG3Jt  
       220 天前
    手机上的 meta 也可以修改吗?没找到 yaml 文件。。。。
    jaleo
        28
    jaleo  
       219 天前
    @BABYMETAL #19 nameserver-policy 要解析国外域名 配置如何写?
    daisyfloor
        29
    daisyfloor  
       214 天前
    @lurui45 我已经不用这么花里胡哨的东西了 就这样简单的用:

    dns:
    enable: true
    prefer-h3: true
    ipv6: false
    enhanced-mode: fake-ip
    fake-ip-filter:
    - "*"
    - "+.lan"
    - "+.local"
    nameserver:
    - https://1.12.12.12/dns-query
    - https://223.5.5.5/dns-query

    没有其他的了
    lurui45
        30
    lurui45  
       214 天前
    @daisyfloor #29 我也觉得没必要了,就是请教一下 fake-ip-filter:
    - "*"
    - "+.lan"
    - "+.local"
    这个 filter 有人加,有人不加,而且有的加的没有第一个“*”这个规则,区别在哪?
    daisyfloor
        31
    daisyfloor  
       213 天前
    @lurui45 我不清楚区别,只是目前这样用着没有任何问题。所以不打算折腾了。这些 filter 我就是看到 clash 的项目里给出的模板里这样写的。就这样了。
    muffins
        32
    muffins  
       210 天前 via iPhone
    我还配了 proxy-server-nameserver ,让节点走国内 dns ,但也有没加的,不知道节点地址直接走 nameserver 的话,会不会影响速度
    2263075977
        33
    2263075977  
       193 天前
    @daisyfloor 你好 友情提示下 腾讯 IP 版 DoH 不再提供服务( https://1.12.12.12/dns-query )
    公告链接 https://docs.dnspod.cn/notices/mian-fei-ban-dot-dohbu-zai-gong-kai-ipjie-ru-de-gong-gao/
    daisyfloor
        34
    daisyfloor  
       193 天前
    @2263075977 感谢!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2859 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 14:14 PVG 22:14 LAX 07:14 JFK 10:14
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86