功能介绍
内置 DNS 服务

内置 DNS 服务

自定义上游 DNS 服务器

Stash 支持同时配置多个 DNS 服务器,在进行查询时,Stash 会并发请求所有服务器,并采用最快响应的结果。Stash 支持下述 DNS 协议:

default-nameserver 将会被用来解析 DNS 服务的域名,仅支持填写 DNS 服务器的 IP 地址。

dns:
  # 以下填写的 DNS 服务器将会被用来解析 DNS 服务的域名
  # 仅填写 DNS 服务器的 IP 地址
  default-nameserver:
    - 223.5.5.5
    - 114.114.114.114
  # 支持 UDP / TCP / DoT / DoH / DoQ 协议的 DNS 服务,可以指明具体的连接端口号。
  # 所有 DNS 请求将会直接发送到服务器,不经过任何代理。
  # Stash 会使用最先获得的解析记录回复 DNS 请求
  nameserver:
    # 不建议配置超过 2 个 DNS 服务器,会增加系统功耗
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query
    - quic://dns.adguard.com:853
    - doq://test.dns.nextdns.io:853
    - system # 使用 iOS 系统 DNS
 
  # 跳过证书验证,解决部分兼容性问题 https://help.nextdns.io/t/g9hdkjz
  skip-cert-verify: true

Stash 会对 DNS 查询使用 LRU 算法进行本地缓存。当本地缓存过期时,Stash 会继续沿用缓存结果,并在后台静默更新记录,这会有效降低 DNS 缓存过期引发的请求延迟。

基于域名的自定义 DNS 服务

nameserver-policy 可以对指定域名使用特定的 DNS 服务器。

dns:
  # 对部分域名使用单独的 DNS 服务器
  nameserver-policy:
    'www.baidu.com': 114.114.114.114
    '+.internal.crop.com': system

自定义 Hosts

# 支持通配符域名 (例如: *.clash.dev, *.foo.*.example.com )
# 不使用通配符的域名优先级高于使用通配符的域名 (例如: foo.example.com > *.example.com > .example.com )
# 注意: +.foo.com 的效果等同于 .foo.com 和 foo.com
hosts:
  '*.clash.dev': 127.0.0.1
  '.dev': 127.0.0.1
  'alpha.clash.dev': '::1'