findns — 高速DNSトンネル対応リゾルバスキャナー

Security

概要

findnsは「DNSトンネリング」ツールで使える実働リゾルバを高速に見つけるスキャナーです。UDPベースの従来DNSと、HTTPS経由のDoH(DNS-over-HTTPS)両方に対応しており、単にDNS応答が返るかを確かめるだけでなく、DNSTTやSlipstreamといったトンネル実装を用いて実際にトンネル確立が可能かを検証します。これにより、検閲やフィルタリングが厳しいネットワーク下でも、通信確立に使えるリゾルバを短時間で絞り込めます。CLIベースでスキャン対象のリストを使った一括検査やパラレル処理に最適化されており、運用現場での実用性を重視した設計です。

GitHub

リポジトリの統計情報

  • スター数: 2
  • フォーク数: 0
  • ウォッチャー数: 2
  • コミット数: 8
  • ファイル数: 8
  • メインの言語: Go

主な特徴

  • UDP と DoH(DNS-over-HTTPS)両対応で幅広いリゾルバを検査可能
  • DNSTT / Slipstream によるエンドツーエンドのトンネル接続検証
  • Goで実装され、高速な並列スキャンを想定した設計
  • 制限のあるネットワーク環境(検閲やフィルタリング)向けに最適化

技術的なポイント

findnsはGo製のCLIユーティリティで、並列性を活かした大量の候補リゾルバに対する高速スキャンが特徴です。UDPプローブは従来のDNSクエリを送り、レスポンスの有無や応答時間で基本的な可用性を判定します。DoH対応はHTTPS経由でDNSクエリを投げるため、HTTPクライアントの構成(TLS設定、ヘッダ、タイムアウト)やエンドポイントの互換性が重要になります。さらに単なる応答確認にとどまらず、DNSTTやSlipstreamを用いた“トンネル検証”を実装している点が肝で、これによりパケットフィルタや中間プロキシの存在下でも実際にDNSトンネルが確立できるかを確認できます。

設計面では、タイムアウトやリトライ、レート制御(スロットリング)といったネットワークの不安定性対策が求められます。Goのgoroutineとチャネルを用いた並列処理により、I/O待ちを効率化しつつスキャン速度を確保していると推測されます。また、DoHのヘッダ振る舞いやHTTP/2の取り扱い、TLS検証のオプションなどが実装されていれば、検閲回避のための細かな挙動調整が可能になります。結果出力は動作確認済みリゾルバのリストを生成する用途が中心で、他ツール(DNSTTクライアントやSlipstream)と組み合わせて運用する設計思想が見て取れます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .github: dir
  • GUIDE.md: file
  • LICENSE: file
  • README.md: file
  • cmd: dir

…他 3 ファイル

まとめ

制限ネットワーク下でDNSトンネルに使える実働リゾルバを素早く見つけたい場面に有用な実用ツールです。

リポジトリ情報:

READMEの抜粋: 🌐 Languages: English | فارسی

🔍 findns

A fast, multi-protocol DNS resolver scanner for finding resolvers compatible with DNS tunneling.

Supports both UDP and DoH (DNS-over-HTTPS) resolvers with end-to-end tunnel verification through DNSTT and Slipstream.

🌐 Built for restricted networks where finding a working resolver is the difference between connectivit…