アプリ・設定・サブスクリプションの違いを確認

iPhoneで「Clash iOS」と検索する場合、通常は既存のサブスクリプションを利用できるプロキシアプリを探しています。Windows用のインストーラーをスマートフォンに入れるわけではありません。Clashのオリジナルプロジェクトから、公式iOSアプリとして認定できるアプリは公開されていません。App Storeにある互換アプリは、それぞれ開発元や対応する設定形式、機能が異なります。また、当サイト名はアプリの開発元であることを示すものではありません。

インストール前に、使用するアプリ、サービス提供元が発行するサブスクリプションの種類、そのサブスクリプションにアプリ対応のプロトコルが含まれているかを確認しましょう。アプリをダウンロードできても、サブスクリプションを必ずインポートできるとは限りません。ノードを取り込めても、ルールを含む設定全体が有効とは限りません。

対象内容インポート前の確認
StashClash形式のYAML設定に対応したiOSアプリサービス提供元のStash用設定を優先し、プロトコルと設定項目の対応状況を確認する
Shadowrocket独自のノード・サブスクリプション・ルール設定方式を使うアプリShadowrocket専用と明記されたサブスクリプションを選ぶ。Clash形式のYAML全体を共通形式として扱わない
サブスクリプションURLノード一覧または設定全体を返すリモートURL出力形式、アカウント状態、更新権限を確認する
Profileアプリに読み込ませる設定ファイルノード、プロキシグループ、ルール、DNSが揃っているか確認する

App Storeからアプリを入手する

アプリを確認してインストールする

  1. 当サイトのダウンロードセンターで、iOSアプリの案内と入手先を確認します。App Storeを開いたら、アプリ名、開発元、アプリの詳細を照合してください。
  2. ストアの詳細で「互換性」を開き、現在のiOSバージョンが要件を満たしているか確認します。名前やアイコンが似ているだけで判断しないでください。
  3. ストアに表示された価格と購入条件を確認しましょう。アプリの料金とプロキシサービスのサブスクリプション料金は別々に発生します。アプリを購入してもノードは利用できません。
  4. 入手したらホーム画面からアプリを開きます。まず設定管理の画面を探し、その後サブスクリプションをインポートしてください。設定が空のままでは、接続してもトラフィックを振り分けられません。

App Storeに「このAppは現在、お住まいの国または地域では入手できません」と表示される場合、現在のストア地域ではアプリを入手できないという意味で、サブスクリプションURLが無効ということではありません。配信状況、価格、必要な最低システム要件は、現在のストアページで確認してください。

検索しても見つからない場合の確認項目

「設定」→画面上部のApple Account→「メディアと購入」→「アカウントを表示」→「国または地域」で、ストアアカウントの地域を確認できます。これはシステムの「言語と地域」で設定する地域とは別です。システムの地域だけ変更しても、App Storeのアプリ一覧は変わりません。

有効なサブスクリプションURLを用意する

サービス提供元のアカウントページを開き、使用するアプリに対応したサブスクリプションを選びます。Stashの場合は「Stash」と明記された設定を優先します。Shadowrocketの場合は、専用サブスクリプションまたは公式ドキュメントで対応が確認できるノード用サブスクリプションを選んでください。URLが https:// で始まるというだけで、両者を相互利用できると判断しないでください。

サブスクリプションURLには、アカウントを識別するトークンが含まれていることがあります。一般的なヘルプページのURLとは異なり、リンクを持つ人がノード情報を閲覧したり、関連サービスを利用したりできる可能性があります。コピーしたURLを公開チャットに投稿したり、実際のサブスクリプションURLを不明なオンライン変換サイトに入力したりしないでください。

インポート前に確認する4項目

リクエストヘッダーに応じて応答内容を変えるAPIもあります。ブラウザーでURLを開けたとしても、そのリクエストに応答があったことしか確認できず、アプリが内容を解析できる証明にはなりません。最終的にはアプリ内でのダウンロード結果と設定内容を確認してください。

サブスクリプションをインポートして設定を選択する

Stashの設定手順を例に解説

バージョンによって、メニュー名は「設定」「設定ファイル」または英語表記など異なる場合があります。操作の目的は、手動でノードを追加することではなく、リモート設定を追加することです。以下では各操作の内容を説明します。実際の表示名はインストールしたバージョンで確認してください。

  1. 設定管理画面を開き、追加ボタンをタップして、URLからダウンロードまたはリモート設定のインポートを選択します。
  2. サブスクリプションURLを貼り付け、「個人用サブスクリプション-iPhone」など、見分けやすい名前を付けます。トークンを含むURL全体を名前に入れないでください。
  3. ダウンロードまたは保存を実行し、アプリによる解析が終わるまで待ちます。エラーが表示されたら種類を控え、トークンを含むURL全体は公開しないでください。
  4. 設定一覧でインポートした項目を選び、一覧に保存されているだけでなく、現在使用する設定になっていることを確認します。
  5. プロキシグループの画面を開いて、想定したグループが表示されているか確認します。その後、手動選択用のグループでノードまたはサブグループを選びます。

サービス提供元が「アプリで開く」を用意している場合、URL Schemeを使ってアプリが起動することがあります。アプリに移動できても、引き継ぎが始まっただけです。ダウンロードが完了したか、現在の設定が切り替わったかを確認してください。Safariからアプリが開かない場合は、アプリに戻り、URLを手動でインポートできます。

ノード数だけでなく、ルールの参照先も確認する

以下はプロキシグループとルールの関係を確認するための設定例です。単体で接続できる完全な設定ではありません。実際のノード定義は有効なサブスクリプションから取得してください。

proxy-groups:
  - name: 出口選択
    type: select
    proxies:
      - DIRECT

rules:
  - DOMAIN-SUFFIX,example.com,出口選択
  - MATCH,DIRECT

DOMAIN-SUFFIXは指定したドメインとそのサブドメインに一致し、ルールは上から順に評価されます。この例では「出口選択」にDIRECTしかないため、プロキシ経由の通信にはなりません。実際に使う場合、プロキシグループにはサブスクリプションのノードまたは有効な別のプロキシグループを指定する必要があります。ルールが存在しない名前を参照していると、読み込み時にエラーになることがあります。

サブスクリプションを更新すると、手動で加えた変更が上書きされることがあります。独自ルールが必要な場合は、アプリがローカルオーバーライドや個別のルール設定に対応しているか確認してから変更してください。元の設定を削除するより、復元できるようにコピーを残しておくほうが簡単に元へ戻せます。

VPN構成を許可して接続する

初回接続時、iOSからアプリによるVPN構成の追加を求められることがあります。表示されたアプリがインストールしたクライアントであることを確認し、「許可」を選択します。画面の案内に従って、デバイスのパスコードまたは生体認証で承認してください。この許可はシステムのネットワークトンネル機能を使うためのもので、サービス提供元のサブスクリプションを購入する手続きではありません。

  1. アプリに戻り、現在のProfileとプロキシグループが正しく選択されていることを確認します。
  2. 接続スイッチをタップし、システムに表示されるVPN構成の許可を処理します。
  3. アプリに「接続済み」と表示されるまで待ってから、ネットワークを確認します。接続中にスイッチを何度も切り替えないでください。
  4. 必要に応じて「設定」→「一般」→「VPNとデバイス管理」→「VPN」を開き、該当する構成の接続状態を確認します。

iOSアプリは通常、Network Extensionが提供するトンネル機能で通信を処理します。デスクトップ版の「システムプロキシを有効にする」手順はそのまま使えません。また、PCの127.0.0.1:7890をそのまま設定しないでください。iPhoneで127.0.0.1が指すのはiPhone自身であり、PCではありません。

初回接続を確認する手順

「設定を読み込み済み→トンネル接続済み→リクエストがルールに一致→実際のページを表示」の順に確認します。設定は一度に1つだけ変更しましょう。そうすれば、問題の原因がノード、DNS、ルールのどれにあるか判断しやすくなります。

  1. 設定を確認:現在の設定名を確認し、解析エラーがないかを調べます。プロキシグループが、通信に合わないDIRECTやREJECTのままになっていないかも確認してください。
  2. ノードを確認:アプリ内の接続テストを実行します。結果が示すのはテスト先への接続状況だけで、動画、ダウンロード、その他のサイトが必ず使えることを保証するものではありません。
  3. 実際の通信を確認:SafariでアクセスしたいHTTPSページを開きながら、アプリの接続ログを確認します。ドメイン、適用されたルール、最終的な出力先を照合してください。
  4. 直接接続を確認:直接接続する想定のサイトにもアクセスし、すべての通信が誤って同じ出力先に送られていないか確認します。
  5. ネットワーク切り替えを確認:Wi-Fiからモバイル通信に切り替えて、もう一度テストします。片方のネットワークだけで失敗する場合は、そのネットワークのアクセス制限とノードへの到達性をそれぞれ確認してください。

DNSに問題があると、トンネルの接続は成功しても、ドメイン名の解決でリクエストが止まることがあります。まずサービス提供元が推奨するDNS設定に戻してください。不明な暗号化DNS、別のVPN、独自ルールを一度に追加するのは避けましょう。fake-ipは特定の設定方式で使われる機能で、iOSで必ず手動有効化すべき汎用の修復スイッチではありません。

よくあるエラーと対処方法

症状まず確認する項目次の手順
ダウンロード時にHTTP 401または403が返るトークン、アカウント権限、サービス提供元のアクセス制限サービス提供元のアカウントページに再ログインしてサブスクリプションを取得します。必要に応じて、アクセスが拒否された理由をサービス提供元に確認してください。
ダウンロード時にHTTP 404が返るURLのパスが完全か、APIのURLが変更されていないか現在のサブスクリプションURLをコピーし直します。APIのパスを推測して入力しないでください。
YAMLの解析エラーが表示される取得した内容がログインページではないか、インデントや形式が崩れていないか使用するアプリに対応した形式を取得します。Webページの内容を設定ファイルとして保存しないでください。
非対応のプロトコルまたは設定項目と表示される別のコア専用の設定を使っていないかStashまたは使用するアプリ専用の設定を選び、対応機能を確認してください。
設定のインポートは成功したが、想定したルールがないノード一覧だけをインポートしていないかアプリが対応するルール設定を追加するか、設定一式を含むProfileを使用してください。
接続後もサイトにアクセスできない現在のノード、最終出力先、DNS、サービスの利用上限失敗したリクエストのログを1件確認し、設定を一度にすべて変更せず、項目ごとに検証します。

サブスクリプションの更新と端末の変更

ノードの停止やルールの変更後は、アプリ内で設定を更新し、現在のProfileが目的の設定のままか確認してください。自動更新を設定していても、iOSが常に予定どおりバックグラウンドで処理するとは限りません。長期間アプリを開いていない場合は、接続前に手動で更新すると結果を確認しやすくなります。

iPhoneを買い替えた場合、アプリが復元されても、VPNの許可、現在のプロキシグループ、リモート設定を改めて確認してください。サブスクリプションURLが公開された場合は、サービス提供元の管理画面でトークンを再発行し、古いURLを使っているすべての端末を更新します。基本操作は使い方ガイド、ルールとプロキシグループの関係は設定の応用ガイドをご覧ください。