プラットフォーム別ガイド 読了時間:約10分

iPhoneでClashルールを使う方法|App Store対応クライアントの入手と設定のインポート

iOSでClash形式の設定に対応したクライアントをApp Storeから入手し、リンク・ファイル・QRコードでサブスクリプションを取り込む方法を解説。VPNの許可設定やバックグラウンド動作の確認方法も紹介します。

対応範囲:ClashルールとiOS共通設定は別物

iPhoneでClashルールを使う際に重要なのは、アプリ名にClashが含まれるかではなく、クライアントが対象の設定形式に対応しているかどうかです。Windows用インストーラーはiOSでは動作しません。また、iOSクライアントがデスクトップ版Clashやmihomoと同じコアを使うとは限りません。どちらもYAMLを読み込めても、対応する項目、プロトコル、ルールセットの形式は異なる場合があります。

この記事では、Clash形式の設定に対応するStashを例に操作方法を紹介します。購入前にApp Storeの製品ページとクライアントのドキュメントで、システム要件、設定の互換性、価格を確認してください。ストアでの提供状況はAppleアカウントの国または地域や製品の公開状況によって変わります。検索結果に表示されないからといって、端末の故障とは限りません。

用意するもの インポート前の確認事項 対処方法
Clash形式のYAML設定 プロキシ、プロキシグループ、ルールを含み、各項目が利用するクライアントでサポートされている 設定ファイルまたは設定URLからインポートする
ノードサブスクリプションまたは個別ノードのリンク サーバー情報だけで、プロキシグループや振り分けルールが含まれない場合がある クライアントが対応するノード追加機能を使い、ルールは別途設定する
mihomo専用設定 専用項目、プロトコル、ルールセットのエンコード形式を確認する 利用するiOSクライアントに対応した設定を提供元に問い合わせる
他のクライアント向け設定 Surge設定や製品専用サブスクリプションなど 拡張子を変えるだけでは対応できません。対応する形式か、信頼できる変換方法を選んでください

App Storeから入手する:製品を確認してからインストール

ストアとシステム要件を確認

  1. App Storeを開き、「検索」に製品名(例:Stash)を入力します。
  2. 製品ページを開き、デベロッパ名、製品説明、アップデート履歴、「互換性」に記載された最低iOS要件を確認します。アイコンが似ている、または検索広告に表示されたという理由だけで判断しないでください。
  3. 現在のアカウントに表示されている価格と購入条件を確認してからダウンロードします。クライアントの購入費用とサブスクリプションサービスの料金は別です。
  4. クライアントを開き、まず設定のインポート方法を確認してから、サブスクリプションリンクまたはローカルファイルを用意します。初回起動時にすぐ接続を有効にする必要はありません。

製品が検索結果に表示されない場合は、まずApp Store右上のプロフィールから、「メディアと購入」で使用中のAppleアカウントを確認します。ストアの国または地域は購入用アカウントなどの条件で決まります。「設定」→「一般」→「言語と地域」を別の地域に変更しても切り替わりません。

アカウントの国または地域を変更する場合は、残高、サブスクリプション、支払い方法の制限を確認し、Appleの正式な手順に従ってください。出所不明の共有アカウントは使わず、他人のアカウントで端末のiCloudにサインインしないでください。企業証明書によるインストール、構成プロファイルの配布、App Storeからのダウンロードはそれぞれ異なる方法であり、同じインストール手順として扱えません。

インストール前に記録しておく3項目

  • クライアントのバージョン:アプリ内の「設定」または「バージョン情報」に表示されるバージョンを記録します。エラー発生時に、対応する項目を確認するために役立ちます。
  • システムのバージョン:「設定」→「一般」→「情報」でiOSのバージョンを確認します。
  • 設定の提供元:サブスクリプションの管理画面に記載された対象クライアントを確認します。提供元がClash、Stash、Surge向けをそれぞれ案内している場合は、使用中の製品に対応すると明記された項目を選んでください。

リンクからインポート:サブスクリプションURLと更新機能を維持する

ノードやルールを定期的に更新する場合は、リモート設定が適しています。以下はStashでよく見られる画面を例にしています。設定一覧を開き、右上の「+」をタップして、「URLからダウンロード」などの項目を選びます。バージョンによっては「設定をダウンロード」と表示されることもあります。単一のプロキシを手動追加するのではなく、リモート設定URLを登録する機能を選んでください。

  1. サービス提供元のアカウント画面で、使用中のクライアントに対応したサブスクリプションリンクをコピーします。ログインページや購入ページのURL、画面に表示された説明文ではなく、URL全体がコピーされていることを確認してください。
  2. 貼り付けたURLの先頭と末尾が欠けていないか、余分な空白や改行、チャットアプリが付け加えた句読点がないかを確認します。「URLを整える」ためにクエリパラメーターを削除しないでください。
  3. ダウンロード後、「普段使い」などの名前を付け、設定一覧でその項目を選択します。
  4. 設定の内容または概要を開き、プロキシ、プロキシグループ、ルールが読み込まれていることを確認します。ノードが一組しか表示されない場合は、完全な設定ではなくノードサブスクリプションを取得していないか確認してください。
  5. 設定の詳細で更新元と更新方法を確認します。まず手動で一度更新し、その後、クライアントで利用できる選択肢に応じて更新間隔を設定してください。

サブスクリプションとルールセットは、必ずしも同じ手順で更新されるとは限りません。設定ファイルがproxy-providersでプロキシのリストを、rule-providersでルールのリストを参照している場合、メイン設定のダウンロードに成功しても、これらのリモートリソースは個別に取得に失敗することがあります。トラブル時は、ホーム画面に設定名が表示されるかだけでなく、ログに記録されたリソースURLとエラー内容を確認してください。

ファイル・QRコードからインポート:静的コピーとリモート設定を区別する

「ファイル」アプリからYAMLをインポート

ローカルファイルは、既存の設定を移行する場合や、ネットワーク経由でダウンロードできないときに構文を確認する場合に便利です。まず.yamlまたは.ymlファイルを、「ファイル」アプリの「ダウンロード」、iCloud Drive、または「このiPhone内」に保存します。拡張子はファイルを見分ける手がかりにすぎません。内容が対象クライアントの対応形式であることも確認してください。

  1. クライアントの設定一覧で「+」をタップし、ファイルからインポートします。使用中のバージョンにその項目がない場合は、「ファイル」アプリでファイルを長押しし、「共有」から対象のクライアントを探してください。
  2. インポート後に設定を選択し、YAMLの解析エラーが表示されていないか確認します。インデントにはスペースを使い、タブを混在させないでください。
  3. ファイルが参照する外部リソースを確認します。デスクトップ設定内のローカルパスは、iPhoneにある同名ファイルを自動的に指すわけではありません。該当するファイルを再度インポートするか、クライアントが対応する参照方法に変更してください。
  4. 変更していない元ファイルのコピーを保存します。ルールをローカルで編集する前に、リモート更新で変更内容が上書きされないか確認してください。

ローカルからのインポートは通常、その時点の静的コピーを取り込むだけです。ファイル名が同じでも、元のサブスクリプションと自動的に関連付けられるわけではありません。継続的に更新するには、リモート設定の追加画面から配信元を登録してください。新しいファイルを手動でダウンロードしただけで、既存の設定が自動更新されたと思い込まないようにしましょう。

サブスクリプションのQRコードをスキャンする

QRコードは情報を格納するもので、独立した設定形式ではありません。HTTPSのサブスクリプションURLや、単一のノードURIが記録されている場合があります。まずクライアントの設定追加またはスキャン機能で読み取ります。写真からの読み込みに対応している場合は、保存済みのQRコード画像を選ぶこともできます。

  • 初回のスキャン時は、画面の案内に従ってカメラへのアクセスを許可します。後から「設定」→「プライバシーとセキュリティ」→「カメラ」で変更できます。
  • リモート設定URLとして認識された場合は、配信元とダウンロード結果を確認して続行します。手順はリンクからのインポートと同じです。
  • 単一ノードとして認識された場合は、ノード一覧に追加されていることを確認します。完全な振り分けルールも同時に表示されるとは限りません。
  • iOS標準のカメラでスキャンすると、URLやリンク先への移動が表示されるだけの場合があります。プロキシクライアントに直接内容が渡るとは限りません。

同じiPhoneの画面に表示されたQRコードを読み取る場合は、クライアントの写真読み取り機能を使うか、元のサブスクリプションURLを直接コピーしてください。トークンを含むスクリーンショットを公開のQRコード読み取りサービスにアップロードしないでください。

VPNの許可と初回接続の確認

設定を選択してから、クライアントの接続スイッチをオンにします。初回接続時は通常、VPN構成の追加を許可するようシステムに求められます。製品名を確認して「許可」をタップし、画面の指示に従って端末のパスコードまたは生体認証で承認してください。これはクライアントによるネットワークトンネルの作成を許可するもので、サブスクリプション提供元の証明書をインストールする操作ではありません。

VPNの状態は「設定」→「一般」→「VPNとデバイス管理」→「VPN」で確認できます。組織の管理下にある端末では、管理ポリシーによって権限が制限される場合があります。管理者に確認してください。インポートを繰り返して制限を回避することはできません。

4ステップで振り分けを確認

  1. ルールモードを選択:クライアントのアウトバウンド設定またはモード設定で「ルール」を選択します。グローバルモードは一時的な比較には使えますが、ルールの動作確認には適していません。
  2. プロキシグループを確認:設定に実際に含まれているプロキシグループを開き、利用可能なノード、または設定済みの自動選択グループを選びます。
  3. 2種類の通信をテスト:直接接続する想定のサイトと、プロキシ経由の想定のサイトにそれぞれアクセスし、リクエストログで適用されたルール、ポリシー、アウトバウンドを確認します。
  4. アプリでも再確認:ブラウザーで問題がないことを確認したら、対象のアプリでもテストします。既存の長時間接続が以前の経路を使い続ける場合は、対象アプリを終了して再起動してください。

デスクトップでよく使われるmixed-port: 7890は、ローカルプロキシの待ち受けポートを示すもので、iPhoneでVPNトンネルを起動するための必須条件ではありません。クライアントの接続スイッチの代わりに、Wi-Fiの「プロキシを構成」で127.0.0.1:7890を手動入力しないでください。このアドレスは端末自身を指しており、対応する待ち受けサービスが存在するとは限りません。

iOSクライアントは通常、システムのNetwork Extensionを使ってトンネルを作成します。デスクトップ版mihomoの「サービスをインストール」やTUNインターフェースの操作は、そのまま適用できません。デスクトップ設定のtun、ルーティング、DNSの各項目も、iOS上で同じように機能するとは限りません。

バックグラウンド動作:画面ロック、ネットワーク切り替え、オンデマンド接続

iOSではネットワーク拡張がトンネルを維持するため、アプリを常に前面に表示しておく必要はありません。「Appのバックグラウンド更新」とトンネルの継続動作は別の機能です。バックグラウンド更新を有効にすれば切断しなくなるとは限りません。また、接続を維持するためにクライアントを何度も強制終了するのも避けてください。

おすすめのテスト手順

  • 画面ロック時のテスト:まずアプリを前面に表示した状態で正常にアクセスできることを確認します。次に約2分間画面をロックし、ロック解除後にVPNの状態と新しいリクエストのログを確認します。この時間はトラブルシューティングの目安であり、バッテリー持続時間や安定性の実測結果ではありません。
  • ネットワーク切り替えのテスト:Wi-Fiからモバイル通信に切り替え、接続が復旧するか確認します。モバイル通信でのみ失敗する場合は、「設定」→「モバイル通信」でクライアントのデータ通信が許可されているか確認してください。
  • オンデマンド接続:クライアントに「オンデマンド接続」がある場合は、説明に従ってネットワーク条件を設定します。接続を開始するタイミングを指定する機能であり、無効なノードや設定ミスを修正するものではありません。
  • 低電力モード:低電力モードのときだけ問題が発生する場合は、比較のため一時的にオフにして確認できます。ただし、あらゆる切断の原因が低電力モードとは限りません。

リモート設定の更新は、クライアントのスケジュール、前面での実行、またはシステムが許可するバックグラウンド実行の機会に依存する場合があります。更新間隔を設定しても、iOSが指定した時刻に毎回正確にアプリを起動するわけではありません。長期間クライアントを開いていない場合は、再利用する前に設定の更新日時を手動で確認してください。

他のVPN、DNSフィルタリングツール、セキュリティ関連のネットワーク拡張が、ルーティングや名前解決に影響することがあります。切り分ける際は、テスト対象のトンネルだけを残して他のサービスを一時停止してください。職場や学校から配布された管理設定を安易に削除しないでください。

よくあるエラー:ダウンロード・解析・接続に分けて確認

症状またはログ まず確認する項目 次の対応
ダウンロード時に401、403、404が返る トークン、アクセス制限、リンクが再発行されていないか アカウント画面からリンクをコピーし直し、サブスクリプションの状態を確認します。ステータスコードだけで原因を特定することはできません
レスポンスがHTMLで始まる ログインページを誤って使っていないか、認証ページにブロックされていないか 正しい設定のエンドポイントを取得します。ウェブページをYAMLとして保存してインポートしないでください
YAMLの解析に失敗する エラー行付近のインデント、コロン、引用符、ファイル全体の完全性 元ファイルのコピーに戻し、ローカルのエディターで項目ごとに確認します。認証情報を含むファイルを公開ツールにアップロードしないでください
不明な項目または非対応のプロトコル 設定がmihomoまたは他の製品向けではないか 対象クライアント専用の設定を入手してください。項目を削除しただけで動作が変わらないと思い込まないでください
VPNは接続済みだが、サイトを開けない ノードの稼働状況、プロキシグループの選択、DNS、適用されたルール まず動作が確認できている別のノードに切り替え、リクエストログで名前解決エラーと接続タイムアウトを切り分けます
メイン設定は成功するが、ルールセットの読み込みに失敗する リモートルールのURL、形式、ダウンロード先 該当するリソースのログを確認し、クライアントがエンコード形式に対応しているか調べます。バイナリ形式のルールセットはクライアント間で共通ではありません

レイテンシテストに応答があっても、すべての通信が使えるとは限りません。速度テストでは特定のURLを使うことがあり、対象サイトのDNS、UDP、ルールによる経路を確認できない場合があります。逆に、テストがタイムアウトしても、確認先のアドレスに到達できないだけかもしれません。一つの数値だけでサブスクリプション全体が無効だと判断しないでください。

サービス提供元やクライアントの開発者に問い合わせる際は、クライアントのバージョン、iOSのバージョン、インポート方法、エラー発生時刻、個人情報を除いたログを添えてください。項目名とエラー行番号は残し、サブスクリプショントークン、パスワード、秘密鍵、個人アカウント情報は削除します。「設定をダウンロードできるか → 解析できるか → トンネルを起動できるか → リクエストがどのアウトバウンドに振り分けられるか」の順で確認すると、再インストールを繰り返すより効率的です。

Clashをダウンロード