DNSサーバー

このオプションを使用してシステムのDNS設定を上書きできます。ChuteはDNSサーバー、DoH(DNS-over-HTTPS)、DoT(DNS-over-TLS)、DoQ(DNS-over-QUIC)、DoH3(DNS-over-HTTP/3)サービスをサポートしています。

[General]
dns-server = 8.8.8.8, 8.8.4.4
doh = cloudflare, google, 1111
dot = dns.google, cloudflare-dns.com
doq = dns.adguard.com
doh3 = https://dns.google/dns-query

キーワードsystemを使うと、システム設定のDNSサーバーに加えてDNSサーバーを指定できます。(重複するサーバーは無視されます)

キーワードsyslibを使用して、システム組み込みAPIでDNS結果を取得できます。macOSでは、TUNインターフェースが有効な間、プール全体に対するsyslibはスキップされます。そのときシステムリゾルバーはChute自身を指し返しているためです。[Host]のserver:syslibと.localの経路は、引き続きこれを使います。

[General]
dns-server = system, syslib, 8.8.8.8, 8.8.4.4

エントリにはポートを付けられます: 192.0.2.53:5353、IPv6の場合は[2001:db8::1]:5353。dns-serverにはホスト名を指定できません。名前で指定するリゾルバーにはDoH、DoT、DoQ、DoH3を使ってください。これらもスキーム(https://、tls://、quic://、h3://)を付ければここに直接書くことができ、encrypted-dns-serverと同様にdoh、dot、doq、doh3のいずれかに加わります。

現在、5つの組み込みDoHサービスがあります。識別子は小文字で、大文字と小文字が区別されます:

  • cloudflare (Cloudflare)
  • google (Google)
  • 1111 (1.1.1.1)
  • securedns (SecureDNS)
  • dnssb (DNS.SB)

個人用のDoHサービスも設定できます。例えば、NextDNS DoHエンドポイントとしてhttps://dns.nextdns.io/xxxxxxを使用している場合、次のように設定できます:

[General]
doh = google, dns.nextdns.io/xxxxxx

無効なDoHエントリは設定エラーとして報告され、doh行は拒否されます。

Surge設定との互換性のため、doh-serverとdoh-serviceという綴りもdohのエイリアスとして受け付けられます。


DNS-over-TLS(DoT)サービス

DoTサービスを設定して、DNSクエリをTLS経由で暗号化できます。

[General]
dot = dns.google, cloudflare-dns.com

各DoTサービスエントリは、DNS-over-TLSをサポートするドメイン名である必要があります。Chuteはデフォルトでホスト名のポート853に接続します。エントリをhost:portまたはhost:port:peer-nameの形式で記述して(IPv6アドレスには[IPv6]:portを使用)、ポートとTLSピア名を上書きすることもできます。

DoTホスト名が解決できないか到達不能な場合、黙ってスキップされます。

同じ設定でDoT、DoH、DoQ、DoH3、および従来のDNSサーバーを混在させることができます:

[General]
dns-server = system, 8.8.8.8
doh = cloudflare
dot = dns.google
doq = dns.adguard.com
doh3 = https://dns.google/dns-query

DNS-over-QUIC(DoQ)サービス

DoQサーバーを設定して、DNSクエリをQUIC経由で暗号化できます。

[General]
doq = dns.adguard.com

各DoQエントリは、DNS-over-QUICをサポートするドメイン名またはIPアドレスである必要があります。デフォルトではポート853が使用されます。エントリをhost:portまたはhost:port:peer-nameの形式で記述して(IPv6アドレスには[IPv6]:portを使用)、ポートとTLSピア名を上書きすることもできます。ChuteはDNSクエリにQUICトランスポートを使用し、TCPベースのDNS暗号化と比較してレイテンシを低減します。

複数のDoQサーバーをカンマ区切りで指定できます:

[General]
doq = dns.adguard.com, dns.nextdns.io

DoQサーバーが到達不能な場合、黙ってスキップされます。


DNS-over-HTTP/3(DoH3)サービス

HTTP/3(QUIC)トランスポートを使用したDNS-over-HTTPS用のDoH3サービスを設定できます。

[General]
doh3 = https://dns.google/dns-query

各DoH3エントリは、HTTP/3をサポートするDNSリゾルバーへの完全なHTTPS URLである必要があります。複数のDoH3サーバーをカンマ区切りで指定できます:

[General]
doh3 = https://dns.google/dns-query, https://cloudflare-dns.com/dns-query

DoH3はDNS-over-HTTPSのプライバシーとQUICトランスポートのパフォーマンス上の利点を組み合わせます。DoH3サーバーがHTTP/3をサポートしていないか到達不能な場合、黙ってスキップされます。


DNS over TCP

[General]
dns-server = tcp://8.8.8.8, tcp://[2001:4860:4860::8888]:53

tcp://IP[:port]と書いたリゾルバーには、UDPではなくTCP(RFC 7766)で問い合わせます。ポートのデフォルトは53です。UDPのDNSを破棄または改ざんするネットワークで使います。通常のリゾルバーを書ける場所ならどこでも使えます: dns-server、専用DNSプール、SSIDサスペンドのエントリのdns-server=、[Host]のserver:リストです。通常のリゾルバーと同じくIPアドレスだけを受け付け、ホスト名、system、syslibは使えません。#disable-qtype=などのサーバーごとのオプションは通常どおり使えます。#proxyを付けると、クエリはそのポリシーを通って送られ、ポリシー経由の通常のクエリと同じくTCPを使います。encrypted-dns-serverには書けません。


専用DNSプール

上記のメインプールのほかに、特定の名前を扱う3つの任意のプールがあります:

[General]
direct-dns-server = 223.5.5.5, https://doh.pub/dns-query, system
proxy-dns-server = 1.1.1.1, tls://dns.google
fallback-dns-server = 8.8.8.8

direct-dns-server

ルールの判定がDIRECTになるドメインを解決します。対象は、Chuteが直接接続を張るときに行う名前解決と、Chuteのリゾルバーに届いたアプリの問い合わせ — ChuteのDNSリスニングポートに送られたもの、always-real-ipに挙げられた名前に対するもの、AとAAAA以外のレコードタイプのもの — です。TUNでは、アプリのAとAAAAの問い合わせはリゾルバーに届きません: ルールの判定にかかわらず、フェイクIPのレイヤーが直接応答します。参照されるのはドメインルールだけなので、どのドメインルールにも一致しないドメイン — つまり判定が IP-CIDR や GEOIP などのIPルールに依存するドメイン — をアプリが問い合わせた場合は FINAL に従います: FINAL がDIRECTならこのプール、プロキシならメインプールです。そうしたドメインについてChute自身が行う名前解決は、接続がまだDIRECTに確定していないため、メインプールを使います。このキーを設定しない場合は、すべてメインプールが応答します。

proxy-dns-server

プロキシサーバー自身のホスト名を解決します。このキーを設定しない場合は、メインプールを使います。

fallback-dns-server

メインプールからまったく応答がない場合に、名前解決が失敗する直前に一度だけ問い合わせます。他のDNSキーと同様に [General] にも [DNS] にも書けますが、一度だけです。

これらのプールのエントリには、さまざまなトランスポートを混在させられます: ip[:port]、[v6][:port]、system、syslib、DoH URL(https://…)、DoT用のtls://host[:port]、DoQ用のquic://host[:port]、DoH3用のh3://…。通常のDNS、DoH、DoT、DoQ、DoH3のエントリには末尾に#proxyサフィックスを付けられます。system#proxyとsyslib#proxyは警告を出してスキップされます。direct-dns-serverやproxy-dns-serverから応答がない場合は、メインプールで再試行します。各キーは一度だけ記述できます。tcp://IP[:port]のエントリはDNS over TCPで問い合わせます。

Shadowrocketとの互換性のため、dns-direct-system = trueはdirect-dns-server = systemとして読み込まれ、その形で保存されます。同様に、dns-fallback-system = trueはfallback-dns-serverにsystemを追加します。プロファイルが fallback-dns-server も宣言している場合、両者は 1 つのプールにマージされます。


暗号化DNSのオプション

encrypted-dns-server

encrypted-dns-server = https://dns.google/dns-query, tls://dns.google, quic://dns.adguard.com, h3://cloudflare-dns.com/dns-query

暗号化リゾルバーをまとめて指定するSurgeのリストです。各エントリはスキーム(https://、tls://、quic://、h3://)に応じてdoh、dot、doq、doh3のいずれかに振り分けられます。tcp://などその他のスキームは通知を出して無視されます。DNS over TCPを使うには、tcp://をdns-serverまたは専用プールに書いてください — DNS over TCPを参照。

encrypted-dns-follow-outbound-mode(デフォルト: false)

encrypted-dns-follow-outbound-mode = true

DoH、DoT、DoQ、DoH3のアップストリームへの接続を、ほかのリクエストと同じようにアウトバウンドモードとルールに従わせます。ダイレクトモードでは直接接続、グローバルモードでは選択中のポリシー、ルールモードではマッチしたルールのポリシーを使います。PROTOCOL,DOH、PROTOCOL,DOT、PROTOCOL,DOQ、PROTOCOL,DOH3でマッチできます。判定がREJECTになったアップストリームはスキップされます。DoQとDoH3はQUICを使うため、その接続は選ばれたポリシーのUDPリレーを通ります。そのポリシー(グループなら現在の選択)がUDPを運ばない場合はudp-policy-not-supported-behaviourに従います。デフォルトのREJECTではそのアップストリームをスキップし、DIRECTでは直接問い合わせます。

encrypted-dns-skip-cert-verification(デフォルト: false)

encrypted-dns-skip-cert-verification = true

DoH、DoT、DoQ、DoH3のアップストリームの証明書を検証しません。自己署名証明書を使うリゾルバー向けです。リゾルバーのなりすましに対する保護もなくなります。


ポリシー経由でクエリを送信する

[General]
dns-server = 1.1.1.1#proxy, 8.8.8.8#proxy=HK
doh = https://dns.google/dns-query#proxy=Proxy%20Group
doq = dns.adguard.com#proxy=HK

dns-server、doh、dot、doq、doh3、または専用プールのエントリの末尾に#proxyや#proxy=<ポリシー>を付けると、クエリは直接ではなくそのポリシーを経由して送信されます。#proxyだけの場合はグローバルモードで選択中のポリシーを、それがない場合はFINALルールのポリシーを使います。#proxy=<名前>はポリシーまたはポリシーグループを指定し、名前の空白は%20と書きます。すべてのポリシーがUDPを中継できるわけではないため、通常のDNSのエントリはDNS over TCPに切り替わります。DoQやDoH3のエントリはQUICのままで、その接続はポリシーのUDPリレーを通ります。ポリシー(グループなら現在の選択)がUDPを運ばない場合、そのアップストリームは警告を出してスキップされ、直接問い合わせることはありません。存在しないポリシーやREJECTに解決されるポリシーを指定した場合、そのアップストリームはスキップされます。プロキシサーバー自身のホスト名の問い合わせには、プロキシ経由のアップストリームは使われません。


サーバーごとのオプション

[General]
dns-server = 1.1.1.1#disable-ipv6, 8.8.8.8#disable-qtype=65
doh = https://dns.google/dns-query#h3=true, https://10.0.0.1/dns-query#skip-cert-verify=true

同じ#フラグメントには、そのサーバーだけに適用されるオプションも書けます。複数の場合は&でつなぎ、=trueは省略できます。

  • h3=true — そのDoHサーバーにHTTP/2ではなくHTTP/3で問い合わせます。
  • skip-cert-verify=true — このアップストリームの証明書を検証しません。そのサーバーについては、なりすましリゾルバーに対する保護がなくなります(全体に対する encrypted-dns-skip-cert-verification と同じ効果です)。
  • disable-ipv4=true / disable-ipv6=true — そのサーバーにA / AAAAレコードを問い合わせません。
  • disable-qtype=65 — そのレコードタイプを問い合わせません。disable-qtype-65も同じ意味で、カンマ区切りにすれば複数のタイプを一度に無効にできます: 8.8.8.8#disable-qtype=65,64は両方のタイプを無効にした 1 つのエントリです。エントリへの分割は#フラグメントを認識するため、フラグメントの外にあるカンマはこれまでどおりサーバーを区切ります: 8.8.8.8#proxy, 1.1.1.1は 2 つのエントリです。

無効にされた質問タイプのサーバーは、クエリを送る前にスキップされるため、試行回数もタイムアウトも消費しません。プールのすべてのサーバーがそのタイプを拒否する場合、誰も送っていない応答を待たずに、そのまま失敗します。


HTTPSとSVCBの問い合わせ

allow-dns-svcb = true

デフォルトではオフです。アプリが送るHTTPS(タイプ65)とSVCB(タイプ64)の問い合わせには、アップストリームに転送せず空のNOERROR応答を返します。これらのレコードのアドレスヒントを使うと、アプリがフェイクIPとルールを迂回して接続できてしまうためです。trueにすると転送されます。この設定は、アプリがTUN経由で送る問い合わせにも、Chute自身のDNSアドレス宛てかhijack-dnsがハイジャックするリゾルバー宛てかを問わず適用されます。Chute自身のECH用の問い合わせには影響しません。

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

本ページは英語版からの翻訳です。内容に相違がある場合は、英語版が優先されます。

results matching ""

    No results matching ""