OpenClash icon indicating copy to clipboard operation
OpenClash copied to clipboard

[Feature] 允许手动配置 defaultnameserver 以更好地对抗污染

Open Kihara777 opened this issue 3 years ago • 5 comments

Verify Steps

  • [X] Tracker 我已经在 Issue Tracker 中找过我要提出的问题
  • [X] Need 当前 OpenClash 并不包含该功能特性或者还不完善
  • [X] Framework 这是 OpenClash 应包含的特性, 并非 Clash 特性
  • [X] Meaningful 我提交的不是无意义的 催促更新或修复 请求

Describe the Feature

在 DNS 页面进行配置的时候,defaultnameserver 为自动配置项无法干预,想要配置就必须在 nameserver 中添加一个可被自动加入 defaultnameserver 的 TCP/UDP 服务器,这意味着在这个页面内无法生成如下的配置:

dns: ... nameserver:

  • https://cloudflare-dns.com/dns-query default-nameserver:
  • 1.1.1.1

而是:

`dns: ... nameserver:

  • 1.1.1.1
  • https://cloudflare-dns.com/dns-query default-nameserver:
  • 1.1.1.1

而这样的配置方式将会使 DoH 服务器失去意义。

Describe the Solution

在 DNS 配置界面添加相关选项,允许独立配置 defaultnameserver 的内容。

Describe Alternatives

1.完全不添加可以自动加入 defaultnameserver 的 UDP/TCP 服务器,将 DoH 服务器地址添加到 Hosts 中并启用 use-hosts 选项,也就是:

dns: ... nameserver:

  • https://cloudflare-dns.com/dns-query use-hosts: true hosts: cloudflare-dns.com: 1.1.1.1

但是 hosts 中并不允许为同一个域名指定多个地址,且此时代理服务器将不得不使用 IP 或将 IP 写入 hosts 内进行连接。

2.使用 fallback 方案,但需要指定一个不可信任的 DNS 解析服务器

3.开启 sniffing 或直接使用 fake-ip,可能需要额外配置 fake-ip filter,否则会导致部分软件异常

4.使用 openclash 的 socks 代理转发其他 DNS 解析服务(如https-dns-proxy)的请求,并将其监听地址作为 clash 配置内唯一的 DNS 解析服务器。

Additional Context

无。

Kihara777 avatar Jul 28 '22 14:07 Kihara777

default namesever 和 nameserver 有什么区别呢

eightsheep67 avatar Jul 29 '22 09:07 eightsheep67

default namesever 和 nameserver 有什么区别呢

我的理解是,defaultnameserver 可以在没有 host 也不使用上游服务器的时候,对 nameserver 中的 DoH / DoT 地址以及服务器节点,TestURL 等地址进行解析。

Kihara777 avatar Jul 29 '22 09:07 Kihara777

default namesever 和 nameserver 有什么区别呢

我的理解是,defaultnameserver 可以在没有 host 也不使用上游服务器的时候,对 nameserver 中的 DoH / DoT 地址以及服务器节点,TestURL 等地址进行解析。

谢谢解惑!所以default nameserver要求要纯IP的DNS。发现新的41beta,全局设置里的DNS设置也加入选项可以不自动添加到default nameserver,35beta是默认把带IP的DNS直接添加到default nameserver,可能导致meta内核启动报错DNS不是纯IP。

eightsheep67 avatar Jul 29 '22 12:07 eightsheep67

你手动加到配置文件里去不就行了

vernesong avatar Jul 29 '22 18:07 vernesong

你手动加到配置文件里去不就行了

确实如此,这也是我目前的方式(之前则是 Describe Alternatives:4),但在 DNS 配置界面直接进行配置自然更加友好和方便。

Kihara777 avatar Jul 30 '22 01:07 Kihara777

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days

github-actions[bot] avatar Sep 28 '22 08:09 github-actions[bot]