Cloudflare Workers&Pages で DOH サービスを構築し、DNS 汚染を解決

聞くところによると、キャンパスネットがあなたのサイトに DNS 汚染を行っているらしく、直接開くことができないのでしょうか?よく知られている理由から、海外の DoH サービスは国内では使えないか、解析速度がひどいです;国内の 阿里家360 家腾讯家 の DoH は DNS 汚染は解決できても、しかし国内のネット環境下では他の汚染対象サイトは依然として汚染されます。
したがって、Cloudflare が提供する Workers/Pages の無料プランを使用して、個人用の DoH サービスを構築できます、優先手段と組み合わせることも可能です、より高速・正確・安全な DNS 解析を実現し、DNS 汚染問題を根本的に解決します。

対応プラットフォーム

現在、Chrome、Firefox、Edge などの主要ブラウザは PC 版で DoH 機能を標準搭載しており、最近 Firefox の Android クライアントにも DoH 機能が追加されました。

要件

  • Cloudflare アカウント
  • ドメイン(任意、Workers を使用して構築する場合は Cloudflare にホストする必要があります)
  • GitHub アカウント(任意、リポジトリをフォークして自動同期し、更新や変更が可能)

関連プロジェクト

注意事項

  • Cloudflare Workers & Pages の無料プランは1日あたり10万回のリクエストが可能です (使い切れない、根本使い切れない)
  • Cloudflare Workers/Pages を使用して DoH 中継を構築することは Cloudflare の利用規約に違反せず、安心して使用できます
  • 優先 IP や優先ドメインなどの手段で国内での使用品質を向上させる行為は、理論上 Cloudflare の利用規約に違反し、警告やアカウント停止などのリスクがあります、しかし DoH のトラフィックは極めて少なく、誰も真剣に追及しないでしょう、結局優先でプロキシを走らせる人が多いです
  • DoH のデフォルトパス /dns-query は 関係当局の 探査ノードにより検出され、ドメインがブロックされることがあります (私も何度かブロックされたことがあります)。したがって、デフォルトのクエリパスを変更することを推奨します。

構築手順

  • Pages の構築
    Pages のデフォルトドメインはブロックされていないため、独自ドメインは不要で、パスの変更も不要です。そのまま使用できます。ただし、Pages の優先手段はやや手間がかかり、検索速度はプロバイダーや
「いいね!」 4

学びました:face_savoring_food:

一般的なデフォルトのクエリパスを使用しなければ、能動的に検出されないのでしょうか?:thinking:

DoH トラフィックの特徴分析などの仕組みが存在するのでしょうか?(よくわかりません)

「いいね!」 1

はい、doh のトラフィック特性は実はかなり明確です:大量の小さなデータパケットで構成された TLS 暗号化接続。ただし既に TLS 暗号化されているため、client hello の情報からアクセス先のドメイン名は確認できますが、パスは見ることができませんので
デフォルトパスのみを検出できます。

「いいね!」 2

DoH の本質は HTTPS と同じで、少なくとも私は一年間使用していますが、特に問題はありませんでした。

しかし、DoH のトラフィックパケットの特徴はかなり顕著で、小さいものと大きいものがあり、機械学習に基づくトラフィック分析で簡単に検出できるはずです。

私が Caddy で構築した DoH プロキシを共有します:

ah.example.com {
    route /ciallo* {
        rewrite * /dns-query
        reverse_proxy {
            to https://dns.google https://cloudflare-dns.com https://dns.quad9.net https://dns.adguard.com
            lb_policy random
            header_up Host {upstream_hostport}
        }
    }
    respond "Not Found 404" 404
}

最終的な DoH の問い合わせアドレスは次の通りです:https://ah.example.com/ciallo

「いいね!」 1

カスタム DNS サーバーでレスポンスにパディングを付加して特徴を弱めるものを見たことがあります。例えばこちらです:

<padding: 暗号化された DNS のパケットを固定長にパディングし、トラフィック解析を防止します。

ただし効果は不明です、ローカルで実行しているので。(

「いいね!」 1

stateless はネットワーク工学の勉強ですか?GitHub の活動でネットワークに関係するものがたくさん見えます(

ただ、ちょっと興味があるだけです(

なぜかというと、デコンストラクトスタック上で別のスタックを開いて分析できます :rofl:

「いいね!」 2