Androidクイックスタート
Chute Androidは他のエディションと同じエンジン(Kotlin移植版)で動作し、同じ設定ファイルを読みます。このページは初回実行の流れです。iOS、macOS、tvOSの手順はクイックスタートにあり、そこにある最小構成はAndroidでもそのまま使えます。
1. 設定を入手する
設定が1つもない状態で初めて起動すると、Chuteはセットアップウィザード(「最初のプロキシ設定をセットアップしましょう」)を開きます。経路は3つあります: プロバイダーのサブスクリプションURL、QRコード、または自分のサーバー情報を入力し、続けてプロキシするサイトとDNSを選ぶ方法です。最後のステップの作成して接続で、設定が保存・選択され、トンネルが開始されます。スキップでウィザードを閉じられます。設定がまだ1つもない限り、次にChuteを起動したときにまた開きますが、画面を回転させたときやアプリに戻ったときには開きません。設定のオンボーディングを表示でウィザードをもう一度開けます。
サブスクリプションURLはhttps://のアドレスでなければなりません。ウィザードがダウンロードしたネイティブのプロファイルは — そのURLからでも、QRコードに載ったアドレスからでも — 管理設定として保持され、下のサブスクリプションを追加の既定値と同じ86400秒ごとに更新されます。Clashやsing-boxのプロファイルは、サブスクリプションから来たものでもQRコードから来たものでも、設定一覧ページと同じく、更新されない静的なスナップショットに変換されます。QRコードはそのページと同じように読み取られます。chute://downloadのリンク(またはimport、install-config、subscribe)はダウンロードするアドレスを示し、コードに設定全体を載せることもでき、chute://tvやchute://remoteのコードはメイン画面のリモートリポジトリのダイアログを開きます。
後から設定を追加するには、メイン画面の設定バーをタップして設定一覧を開き、設定の追加元...を選びます:
- 空の設定 — エディターは開かず、テンプレートを
Untitled.confとして保存します。開くには、その行の⋮メニューから構造化編集またはテキスト編集を選びます。 - サブスクリプションを追加 — プロバイダのURLからダウンロードし、管理設定として保持して、ダイアログで入力した間隔(既定は86400秒)で更新します。Clashやsing-boxのサブスクリプションは取り込む途中で変換され、更新ヘッダーを持たない静的なスナップショットとして保存されるため、自分では更新されません。
- ローカルファイルからインポート — Chute(
.conf)、sing-box(.json)、Clash/mihomo(.yaml)のファイルを取り込みます。ネイティブ以外の形式は変換されます。 - URLからダウンロード、QRコードからダウンロード、Wi-Fi経由でファイルをアップロード — 同じことをする別の経路です。Wi-Fiアップロードページには同じネットワークのブラウザで開くアドレスが表示され、PINで保護されます。
- リモートサーバー — リモートの設定リポジトリから設定を読み込みます。
アプリの外から開いたchute://download?url=...のリンク(タップした場合も、カメラで読み取った場合も)でもファイルはダウンロードされ、Clashやsing-boxのプロファイルは設定一覧ページと同じく静的なスナップショットに変換されます。ただし、このリンクはサブスクリプションを追加しません。chute://subscribe?url=...もdownloadのエイリアスにすぎません。このようなリンクで保存したネイティブのプロファイルをアプリが更新することはありませんが、実行中のエンジンは24時間ごとにそのURLを再取得し、新しい内容をメモリ上で適用します。URLスキームを参照してください。同じリンクでも、ネイティブのプロファイルを指すものをセットアップウィザードで読み取れば、アプリが86400秒ごとに更新する管理設定になります。
ライセンスがない場合、Chuteが保持するローカル設定は1つだけです。どの経路からであれ2つ目を追加するのはChute Proの機能です。ライセンスと有効化を参照してください。
2. 設定を選択する
設定一覧ページで設定をタップして保留中の印を付け、完了をタップします。これがChuteの実行する設定になります。そこで追加したばかりの設定は、すでに保留中の印が付いた状態で戻ってきます。アプリの外から開いたchute://リンクが追加した設定も同じです。Chuteはこのページを開いてその設定に印を付け、完了をタップするまで何も変わりません — このようなリンクが、Chuteの実行中の設定を切り替えることはありません。選択中の設定はChuteの実行中でも切り替えられ、ライセンスの有無は問いません。新しい設定はトンネルを再起動して適用されます。
3. 開始して許可する
スイッチ(タップしてVPNを開始)をタップします。初回起動時、AndroidはVPN接続要求の許可を求めます。これはすべてのVPNアプリに必要なシステムの同意で、拒否するとChuteは停止したままです。トンネルが何を運ぶかは2つの設定で決まります。
- サービスモード — VPN(既定)はシステムVPNでデバイスのトラフィックを捕捉します。ローカルプロキシはトンネルを張らず、他のアプリやデバイスから指定するHTTPとSOCKS5のリスナーだけを動かします。
- アプリプロキシモード — グローバルはすべてのアプリ、プロキシは選択したアプリのみ、ブラックリストは選択したアプリ以外のすべてをルーティングします。
設定内の関連スイッチ: 起動時に開始(VPNの同意が一度済んでいる必要があります)、Wi-Fiのみ(VPNモードでのみ有効: 下位のネットワークが従量制課金のときトンネルを一時停止し、そうでなくなったら再開します。判断の材料はAndroidが報告する従量制かどうかであって回線の種別ではないため、従量制のWi-Fiでも一時停止し、定額のセルラー回線では一時停止しません)、常時接続VPN(常時接続VPNのページ自体は公開された遷移先ではないため、AndroidのVPN一覧を開きます。そこでChuteの常時接続VPNをオンにしてください)。アプリの外からは、ホーム画面の起動・停止・切り替えショートカット、ブロードキャストIntent、Tasker/Localeプラグインでトンネルを開始・停止でき、クイック設定タイルでも同じことができます — ただし設定のクイックアクションでタイルをVPNからモード(アウトバウンドモードを順に切り替え)またはグループ(ウィジェットグループで選んだポリシーグループを順に切り替え。そこには、すでに選んであるものを除き、hidden=trueが付いたグループは出ません)に変えた場合は別です。ホーム画面のウィジェットはトンネルが動作中かどうかとそのグループのポリシーを表示し、タップするとそのグループが次のポリシーに切り替わります。
常時接続VPNをオンにすると、Androidが自らトンネルを開始します — その設定をオンにしたとき、起動時、そしてChuteの更新後に — 選択中の設定を使い、サービスモードがローカルプロキシであっても必ずVPNとして開始します。これとは別に、VPNの動作中にAndroidがChuteのプロセスを終了させた場合、トンネルは選択中の設定で自動的に戻ります。ただし、自分で停止していた場合、AndroidのVPN設定で切断した場合、VPNの権限を別のアプリに渡した場合は戻りません。ローカルプロキシモードでも同じです。動いていたリスナーは、自分で停止していない限り戻ります — ただしAndroid 12以降では、Chuteがバックグラウンドにある間はシステムがこの再起動を拒否することがあり、その場合は開始の失敗として表示されます。
4. 確認する
アウトバウンドモードをルールのままにし(ダイレクト / グローバルモードはプロキシを丸ごと迂回または強制します)、Webサイトを開きます。メイン画面のダッシュボードは統計、トンネル、DNS、UDP、ログタブでライブトラフィックを表示し、トンネルを開くとリクエストとレスポンスの詳細が見られます。コントロールパネルにはランタイムのスイッチ — ローカルのHTTP/SOCKS5リスナー、HTTPコントロールAPIとWebコンソール、MitM、トラフィックキャプチャ、プロトコルスニッフィング、Optimus DNS — と、DNSキャッシュを消去、ランタイム診断バンドルがあります。
プラットフォームの違い
- プロセスルールはパッケージ名でマッチします。
PROCESS-NAMEは接続を開いたアプリのパッケージ名と比較します(例:PROCESS-NAME,com.android.chrome,Proxy)。Chuteは、VPNインターフェースが運ぶ各TCP接続の所有アプリをAndroidに問い合わせます。代わりにリスナーに届く接続 — ローカルプロキシモードではそのすべて、またシステムHTTPプロキシを使うアプリの接続 — にはパッケージ名がないため、このルールには一致しません。 - HTTPS復号には自前のCAが必要です。 証明書ジェネレーターはありません。エディターのMitMの下にあるCAを設定ページでP12をインポートするとPKCS#12がbase64で設定の
ca-p12に書き込まれます。ChuteがAppleデバイスで書くのと同じ形式なので、設定はそのCAをどのデバイスにも運べます。パスフレーズを入力すると、CAをインストールでそのCA証明書に対してAndroidの証明書インストーラが開きます。エディターのこのページ自体にライセンスは要りませんが、エンジンには必要です。Chute Proがなければ、プロファイルの[MITM] enable = trueが何を求めていても復号は行われず、コントロールパネルとダッシュボードにあるMitMのランタイムスイッチも同様に制限されます。 - SSID系の機能は動作します —
ssidポリシーグループ、SUBNETルール、[SSID Setting]— ただしネットワーク名の読み取りにシステムが要求する位置情報(Android 12以前)または付近のWi-Fiデバイス(Android 13以降)の権限が必要です。Chuteがこの権限を求めるのは、メインスイッチで開始し、設定にssidまたはsubnetのポリシーグループ、SUBNET,SSID:またはSUBNET,BSSID:のルール、あるいは[SSID Setting]/[SSID Suspend]セクションがあるときです。要求を表示できない開始方法 — クイック設定タイル、ショートカット、起動時に開始、ブロードキャスト、常時接続VPN — では、代わりにSSID権限が必要ですの通知が設定ごとに1回出て、タップすると要求が表示されます。エンジンは1分ごとにネットワークを読み直すので、許可は再起動なしで1分以内に反映されます。外部のルールセット内のSUBNETルールは検出されません。そこにある場合はシステム設定から許可してください。VPNモードでは、端末が一致するネットワークにいる間、SSIDサスペンドのsuspendエントリがVPNインターフェースを外します。ローカルプロキシモードではこのエントリは無視されます。 - Tailscale は利用でき、エディターにTailscaleページがあります。
- プラットフォームディレクティブ —
#!IOS-ONLY、#!MACOS-ONLY、#!TVOS-ONLYの行はここではコメントなので、Androidではどれも適用されません。 - 旧バージョンが書いたTrojanの行。 Trojanポリシーには、どのプラットフォームでも明示的な
tls=trueが必要です。旧バージョンのChute AndroidはTrojanをTLSとみなしていて、そのエディターも既定ではこのオプションを書かなかったため、更新後の最初の起動で、ローカルの設定にあるtlsオプションを持たないTrojanポリシーそれぞれにtls=trueを追加し、変更をすべてアプリのサービスログに記録します。管理設定には手を付けません(配信元の内容で置き換わるため)。tls=falseと書かれた行もそのままです。 - ログは2種類あります。 エンジンのログはメモリ上にあります: Webコンソールのログページや
GET /api/logsで読むか、ランタイム診断バンドル(コントロールパネル、トンネル実行中)で持ち出すか、adb logcatで追いかけます。アプリがディスクに書くのは自身のサービスログ(開始と停止、一時停止、ネットワークの変化、アプリが出した通知)だけで、プライベートストレージのlogs/runtime.logと、sessions/<実行ID>/以下の実行ごとのコピーに書き込みます。ダッシュボードのログタブはこのファイルの最後の80行を、セッションのログタブはその実行のコピーを表示します。設定 → 診断 のオフライン診断バンドルを保存はこのファイルを含み、設定のローカルログを削除はこのファイルを削除しますが、実行ごとのコピーは削除しません。トラブルシューティングを参照してください。 - MacのChute Dashboardは
adbを介してUSBで、またはネットワーク経由で端末に接続します。Chute Dashboardを参照してください。 - 通知は他のアプリと同じエンジンイベントを扱います(設定 → 通知)。「ネットワークが通信を運んでいません」は大規模な接続失敗のスイッチに従います。通知が出るのはVPNモードのときだけで、ローカルプロキシモードではエンジンイベントの通知は出ません。
- Androidにないもの: Mac専用の拡張モードとVIF、iCloud同期、
chute://start/stop/toggleのURLアクション。代わりのブロードキャストIntentはURLスキームを参照してください。ブロードキャストからはVPNの同意ダイアログを出せないため、同意が一度も済んでいない間、START_VPNは黙って破棄されます。TOGGLE_VPNは代わりにアプリを開き、そこでスイッチをタップするとダイアログが表示されます。ローカルプロキシモードではそもそも同意が要りません。
本ページは英語版からの翻訳です。内容に相違がある場合は、英語版が優先されます。