
TLS ClientHelloパケットを断片化し、TLSバージョンを書き換えることで、Deep Packet Inspectionによる検閲を回避し、ブロックされたHTTPSサイトへのアクセスを回復するAndroidプロキシアプリ。
ブロックにNOを!
[!IMPORTANT] このプロジェクトはリポジトリ https://github.com/theo0x0/nodpi のフォークであり、独立して開発されています。https://github.com/raspabamos/nodpi と混同しないでください!
[!NOTE] このバージョンはAndroid専用です。デスクトップ版はこちら: https://github.com/GVCoder09/NoDPI
🌐 ウェブサイト&ドキュメント - わかりやすいガイドと概要
💬 NoDPI Lab — NoDPI、DPI、ネットワークフィルタリング、回避策に関するコミュニティフォーラム
他の言語で読む / Читайте на других языках
NoDPI4Androidは、NoDPIのグラフィカルなアドオンです。このアプリケーションはAndroidデバイス専用に設計されており、Windows版とLinux版はこちらから入手できます。
NoDPIは、DPI(Deep Packet Inspection:深層パケット検査)を回避するために設計されたユーティリティです。DPIとは何でしょうか?DPIは、ネットワークパケットの内容に基づいて検査し、トラフィックを規制・フィルタリングする技術です。これは、インターネットサービスプロバイダーが特定のウェブリソースやプロトコルへのアクセスを検閲・ブロックするためにしばしば使用されます。このプログラムの目的は、ネットワークパケットを改変することでDPIを「騙す」ことですが、実際にはこの騙しは、計算リソースと時間の不足の単なる結果であることがよくあります。
このユーティリティは、主にロシアのユーザー向けに、類似ツールのよりシンプルな(しかし強力ではない)代替として開発されました。ほとんどの場合、その役割を果たし、特にYouTubeを問題なく利用できるようにします。
しかし残念ながら、このユーティリティの絶対的な性能を保証することはできません。YouTubeのようないくつかのサイトはブロック解除に適していますが、Instagram.comやFacebook.comのような他のサイトは、ロックを回避するためにまったく異なる方法を必要とし、その低レベル性と難易度から、このユーティリティにはまだ実装されていません。特定のサイトの性能は、プロバイダーによっても異なる場合があります。つまり、そのサイトをどのようにブロックしているか、どのような技術的手段を適用しているかによります。
NoDPI はコンピュータ上でプロキシサーバーを起動し、そこを経由して http(s) トラフィックを送信します。このプログラムは発信接続の ClientHello を傍受し、以下のいずれかの方法で断片化します:
SNI による断片化(デフォルト)
パケットには SNI レコードを含むフィールドがあります。ClientHello は複数の TLS レコードに分割されます: SNI より前の部分、SNI を 1 文字ずつ、SNI より後の部分です。各部分には ClientHello の種類を示すヘッダーが付加され、その後パケット全体が 1 つのパケットとして送信されます。
ランダム断片化
ClientHello はランダムな長さの複数の部分に分割されます。各部分は ClientHello の種類のプレフィックスと結合され、その後すべてが 1 つのパケットとして送信されます。
また、方法に関係なく、TLS バージョンは最も現代的なバージョンである 1.3 に置き換えられます(ただし、これはデータがこのバージョンの仕様に従って送信され始めるという意味ではありません)。これらすべてを組み合わせることで、ロックを回避できます。どうやら DPI はまだこの「塊」を解きほぐすために必要な能力を持っておらず、単にそのようなトラフィックを無視して時間と労力を節約しているようです。しかし、まもなくこれらの方法が機能しなくなる可能性もあります。
[!IMPORTANT] NoDPI は HTTPS トラフィックでのみ動作します。HTTP トラフィックも受け取ることができますが、それは純粋に互換性のためです。この古いプロトコルで動作するサイトは実質的にブロック解除の対象ではなく、プログラムは単にトラフィックを宛先に送信するだけです。
NoDPI はあなたに関するデータを収集および送信せず、サードパーティのプログラムやライブラリを使用せず、システムプロセスに干渉せず、動作に管理者権限を必要としません。
すべてのコードは完全に Python で書かれており、Kivy や KivyMD などのライブラリを使用しています
2026年5月現在、以下のサービスおよびウェブサイトは NoDPI を使用してブロック解除できません:
このアプリケーションには Android 7.0 以上が必要です。 また、このアプリケーションは通知を送信する権限を使用します。プロキシサービスの正しい動作のために、アプリケーションのシステム設定でエネルギー消費の最適化を無効にすることをお勧めします
[!WARNING] 本ソフトウェアをいかなる形式で使用または配布することにより、以下の利用規約および免責事項に同意したものとみなされます
本ソフトウェアの開発者および/または提供者は、本ソフトウェアの使用または使用不能から生じるいかなる損失または損害(直接的、間接的、偶発的、懲罰的または結果的損害を含むがこれらに限定されない)についても、たとえ開発者または提供者がかかる損害の可能性について知らされていたとしても、一切責任を負わないものとします。
本ソフトウェアの開発者および/または提供者は、本ソフトウェアの使用から生じるいかなる法的結果についても責任を負わないものとします。これには、法律、規則または規制の違反、ならびに本ソフトウェアの使用から生じるあらゆる請求または訴訟が含まれますが、これらに限定されません。本ソフトウェアを使用する際に適用されるすべての法律および規制を遵守する責任は、もっぱらユーザーにあります。
本ソフトウェアの開発者および/または提供者は、本ソフトウェアの不正使用から生じるいかなる損失または損害についても責任を負わないものとします。不正使用には、違法目的でのソフトウェアの使用、著作権、特許、商標その他の知的財産権の侵害、または本ソフトウェアのライセンス条項に違反するソフトウェアの使用が含まれますが、これらに限定されません。
本ソフトウェアは、違法または不法な目的で使用してはなりません。詐欺、ハッキング、プライバシー侵害、マルウェアの配布、その他規範や規制に反するあらゆる行為を含むがこれらに限定されない、違法行為への本ソフトウェアの使用は固く禁止されます。違法目的で本ソフトウェアを使用することから生じるあらゆる法的結果については、ユーザーが全面的に責任を負います。
本ソフトウェアを使用することにより、ユーザーは本免責事項の条項に同意したものとみなされます。これらの条項に同意しない場合は、直ちに本ソフトウェアの使用を中止しなければなりません。
問題や不具合はIssuesページでご報告ください
デフォルトでは、YouTube専用ドメインを含むブラックリストが使用されます。追加のリストはこちらにあります。
[!WARNING] ビルドはLinuxでのみ実行できます!
sudo apt update
sudo apt install -y git zip unzip openjdk-17-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake libffi-dev libssl-dev
pip3 install --user --upgrade Cython==0.29.33 virtualenv # the --user should be removed if you do this in a venv
# add the following line at the end of your ~/.bashrc file
export PATH=$PATH:~/.local/bin/
buildozer android debug
buildozer android deploy run