mihomo icon indicating copy to clipboard operation
mihomo copied to clipboard

[Feature–Request] 基于HTTP的代理集合应当可以把DNS请求从nameserver/fallback策略中独立

Open tihSdoolB opened this issue 1 year ago • 5 comments

Verify steps

  • [X] 我已经在 Issue Tracker 中找过我要提出的请求 I have searched on the issue tracker for a related feature request.
  • [X] 我已经仔细看过 Documentation 并无法找到这个功能 I have read the documentation and was unable to solve the issue.

Description

在下面给定的样式中,"DNS代理"需要获取代理节点后生效;如果网络运营商阻断了指定服务器的DNS请求,会导致"somewhere"的代理集合无法正常加载。

dns:
  enable: true
  listen: 0.0.0.0:53
  enhanced-mode: redir-host
  default-nameserver:
    - https://223.5.5.5/dns-query
    # - 114.114.114.114
  nameserver:
    - https://dns.alidns.com/dns-query
    - https://dns.rubyfish.cn/dns-query
    - https://dns.pub/dns-query
  proxy-server-nameserver:
    - https://dns.alidns.com/dns-query
    - https://dns.rubyfish.cn/dns-query
    - https://dns.pub/dns-query
  fallback:
    - https://1.1.1.1/dns-query#DNS代理
    - https://dns.google/dns-query#DNS代理
    - https://cloudflare-dns.com/dns-query#DNS代理
  fallback-filter:
    ipcidr:
      - 240.0.0.0/4
  nameserver-policy:
    'geosite:gfw':
      - https://1.1.1.1/dns-query#DNS代理
      - https://dns.google/dns-query#DNS代理
      - https://cloudflare-dns.com/dns-query#DNS代理
proxy-providers:
  somewhere:
    type: http
    path: ./profile/somewhere.yaml
    url: https://example.com/config.yaml

Possible Solution

建议由proxy-server-nameserver策略组处理代理集合DNS请求。

tihSdoolB avatar Mar 01 '24 16:03 tihSdoolB

proxy-server-nameserver这个策略需要嘛(我读了官网的文档,感觉这个没啥用)?用nameserver-policy这个不就够了嘛?

ttyy33 avatar Mar 02 '24 06:03 ttyy33

proxy-server-nameserver这个策略需要嘛(我读了官网的文档,感觉这个没啥用)?用nameserver-policy这个不就够了嘛?

目前我也是采用nameserver-policy指定策略来,但是个人觉得这种Workaround让我感到复杂。 问题是订阅链接大多数不会一成不变,是会随着时间(比如机场更换域名)和需求(更换机场)发生变化,这对手动维护配置的人不够友好。用到proxy-providers功能的用户,一般会有维护配置的需求,如果同时订阅多个链接,这对维护者的精力消耗是相当可观的。 我想这正是proxy-server-nameserver策略的出发点,让节点的域名解析都走一个相对纯净的DNS服务器,又不用维护节点的DNS策略,把nameserver-policy留给代理请求。同理,proxy-providers也应当被单独对待。

tihSdoolB avatar Mar 02 '24 16:03 tihSdoolB

建议走match,proxy兜底,这样订阅域名怎么变都没问题,当然至少得有个好用的节点,我理解clash的DNS只是分流用,最终还是看你规则安排走直连还是代理。

rickblue avatar Mar 23 '24 00:03 rickblue

建议走match,proxy兜底,这样订阅域名怎么变都没问题,当然至少得有个好用的节点,我理解clash的DNS只是分流用,最终还是看你规则安排走直连还是代理。

我现在的配置思路是: 1.常用的自己设置rules规则,例如:gesite,google,proxy 2.国内的ip走直连,geoip,cn,DIRECT 3.最后收尾走代理match,proxy

ttyy33 avatar Mar 24 '24 01:03 ttyy33

建议走match,proxy兜底,这样订阅域名怎么变都没问题,当然至少得有个好用的节点,我理解clash的DNS只是分流用,最终还是看你规则安排走直连还是代理。

你没有理解我的意思,这个问题发生在proxy–provider未就绪而同时provider的dns请求在fallback/nameserver中由于没有有效的proxy无法处理,match proxy也不能让没有节点的情况下让国内访问到8.8.8.8啊。当然直接使用没有被屏蔽的dns或者关掉dns分流那就万事大吉了

tihSdoolB avatar Mar 26 '24 02:03 tihSdoolB