FakeDNSはV2RayのDNSモードのひとつで、クエリを受け取ると予約済みネットワーク帯の偽装IP(例:198.18.0.0/15)を即座に返し、実際の名前解決を出站段階まで遅らせます。これによりDNSの往復を減らし、最初のパケットの遅延を抑えます。TUNモードとの組み合わせに最適ですが、IPベースのルーティング規則が機能しなくなる点に注意が必要です。
FakeDNSの動作フロー
FakeDNSはV2Rayの特殊なDNSモードです。有効にすると、DNSクエリを受け取った時点でV2Rayは予約済みネットワーク帯の偽装IP(例:198.18.0.0/15)を即座に返し、実際のDNS解決を待ちません。これによりアプリはすぐに接続を開始でき、待ち時間を短縮できます。
たとえ話
従来のDNSは「先に住所を調べてから出かける」ようなもので、出かけるたびに住所を調べる時間がかかります。FakeDNSは「とりあえず適当な番地を伝えて出かけ、現地で正確な住所を確認する」方式です。多数のドメインに頻繁にアクセスする場面(Web閲覧やチャットアプリなど)では、後者の方が待ち時間を大幅に減らせます。
DNSクエリを受け取る
アプリがドメインの解決を要求すると、V2RayのDNSモジュールがそのクエリを傍受します。
偽装IPを返す
V2Rayは予約済みネットワーク帯の偽装IPを即座に返し、アプリはすぐに接続を開始します。
出站時にドメインを復元する
トラフィックがルーティング段階に入ると、V2Rayはマッピングテーブルを使って偽装IPを実際のドメインに復元します。
ドメインで転送する
ルーティング規則がドメインに基づいて出站先を決定し、トラフィックはプロキシまたは直接接続で送信されます。
FakeDNSで高速化できるシーン
FakeDNSは、Web閲覧やチャットアプリなど、頻繁にドメイン解決が必要な場面に特に適しています。これらの場面では従来のDNS解決に複数回の往復が必要ですが、FakeDNSは即座に結果を返すため、遅延を大幅に削減できます。
最も効果が高いシーン
Web閲覧、動画ストリーミング、インスタントメッセージングなど「ドメイン数が多く、解決頻度が高い」場面ではFakeDNSの効果が最も顕著です。一方、オンラインゲームや一部の金融アプリのように実際のIPを検証する必要がある場面では、FakeDNSが問題を引き起こす可能性があります。有効にするかどうかは、主な利用シーンに応じて判断してください。
FakeDNSを有効にする
推奨DNSクエリに即座に応答し、最初のパケットの遅延を抑えます。Web閲覧、チャット、動画など高頻度の解決が必要な場面に適しています。
FakeDNSを無効にする
毎回実際のDNS解決を行うため遅延はやや高くなりますが、IPベースの規則は正常に機能します。
ルーティング規則との連携
FakeDNSを使用する場合は、IP規則ではなくドメイン規則を優先して使うことをお勧めします。FakeDNSが返すのは偽装IPのため、IPベースの規則は正しく機能しない可能性があります。v2rayNでは「パラメータ設定」→「DNS」でFakeDNSを有効にし、「ルーティング設定」で規則を調整できます。
ドメイン規則
推奨ドメインに基づいてマッチングするため、FakeDNSのマッピング機構と自然に連携し、正確に振り分けられます。
IP規則
IPに基づいてマッチングしますが、FakeDNSが返すのは偽装IPのため、規則が機能しない可能性があります。
ルーティング規則にIPベースの規則が含まれている場合、FakeDNSは正しくマッチングできない可能性があります。ドメイン規則をIP規則より前に配置することをお勧めします。
FakeDNSとTUNモードの組み合わせ
FakeDNSはTUNモードと組み合わせて使用すると最も効果的です。TUNモードがすべてのトラフィックを引き受けるため、FakeDNSはすべてのDNSクエリを高速化できます。ただし、FakeDNSがすべての場面に適しているわけではなく、例えばIPベースのルーティング規則は偽装IPを正しくマッチングできない可能性があります。
TUNモードでは、すべてのアプリのDNSクエリがカーネルに引き継がれるため、FakeDNSの効果が増幅されます。TUNモードとFakeDNSを同時に有効にしている場合は、ルーティング規則のドメイン規則を最前面に配置し、正確な振り分けを確保してください。
FakeDNSの有効化方法
v2rayNでは「パラメータ設定」→「DNS」→「FakeDNSを有効にする」の順に進みます。有効にすると、v2rayNは生成する設定にfake-dnsサーバーを追加します。v2rayNGでは「設定」→「DNS」→「FakeDNSを有効にする」の順に進みます。
{
"dns": {
"servers": [
{
"address": "fake-dns",
"domains": [
"geosite:geolocation-!cn"
]
}
]
}
}
上記の例では、fake-dnsが中国本土以外のドメインの解決を処理するように設定されています。これにより、中国本土以外のドメインには即座に偽装IPが返され、中国本土のドメインは引き続き実際のDNSサーバーを使用します。
すべてのドメインをFakeDNSで処理させたい?
domainsを["geosite:geolocation-!cn", "geosite:cn"]に変更するか、domainsフィールドを省略することもできます。ただし、中国本土のドメインもFakeDNSに任せると、国内サイトの解決も出站段階まで遅延し、直接接続の速度に影響する可能性があります。
FakeDNSの制限
FakeDNSは万能ではありません。実際のIPが必要な場面(一部のアプリがIPアドレスを検証する場合など)では、FakeDNSが問題を引き起こす可能性があります。また、FakeDNSはカーネルがドメインと偽装IPのマッピングテーブルを維持する必要があるため、メモリ使用量が増加します。低スペックなデバイスでは、有効にするかどうかを慎重に判断する必要があります。
見落としがちな問題
FakeDNSが返す偽装IPは予約済みネットワーク帯(例:198.18.0.0/15)に属します。アプリやゲームがターゲットIPをハードコードで検証している場合や「IPで直接接続する」ポリシーを使用している場合、接続異常が発生する可能性があります。このような場合は、関連ドメインを直接接続規則に追加するか、FakeDNSを無効にしてください。
推奨構成
- DNSサーバー
- fake-dns + 実際のDNSによるフォールバック
- ルーティング規則
- ドメイン規則を中心に
- 適用シーン
- TUNモード + 高頻度の解決
非推奨構成
- DNSサーバー
- fake-dnsのみ
- ルーティング規則
- 多数のIP規則
- 適用シーン
- 実際のIPに敏感なアプリ
有効にした後、一部のアプリが開けない
これらのアプリは実際のIPを検証している可能性があります。FakeDNSを無効にするか、関連ドメインを直接接続規則に追加してみてください。
IPベースの規則が機能しない
FakeDNSが返すのは偽装IPのため、IPベースのマッチングは機能しません。ドメイン規則に切り替え、ドメイン規則をIP規則より前に配置してください。
メモリ使用量の増加
カーネルがドメインと偽装IPのマッピングテーブルを維持する必要があります。低スペックなデバイスではFakeDNSを無効にし、通常のDNSを使用してください。
有効にする価値があるのはいつか
TUNモードですべてのトラフィックを引き受け、ルーティングが主にドメイン規則で構成されている場合、FakeDNSは最初のパケットの遅延を大幅に削減できます。逆に、ルーティングがIP規則に大きく依存している場合や、アプリが実際のIPに敏感な場合は、無効のままにすることをお勧めします。
FakeDNSはDNSを漏えいさせますか?
いいえ。FakeDNSは解決を出站段階まで遅らせるだけで、実際の解決は設定したDNSサーバーが行うため、ドメインがプロキシサーバーに平文で露出することはありません。
FakeDNSと通常のDNSは同時に使えますか?
はい。FakeDNSに一部のドメイン(例:geosite:geolocation-!cn)だけを処理させ、残りのドメインは実際のDNSサーバーで解決できます。