iOS で購読インポートがつまずきやすい理由
iPhone では、Android や PC と違って「公式の Clash 単体アプリ」を前提にした手順がそのまま使えないことが多く、ユーザーは Stash や Shadowrocket など、購読 URL や Clash 形式のプロファイルを取り込めるクライアントへ移ります。ここで問題になるのは、購読そのものが「ブラウザで開ける URL」であることと、クライアントが HTTPS のサーバ証明書をどう検証するかがセットになっている点です。画面には「ダウンロードできない」「SSL/TLS エラー」「タイムアウト」「一覧はあるのに中身が空」など、似た言葉で表現されますが、原因は URL が古い、端末の日時が狂っている、プロバイダ側が UA や IP を制限している、MITM 用のルート証明書をまだ信頼していないなどに分かれます。
デスクトップ版の Clash と同様、接続段階の timeout や TLS の読み方は ログで timeout と TLS を読む の記事が役立ちます。一方で iOS の購読トラブルでは、まず 購読 URL が HTTPS で正しいか、同じ URL を Safari で開いて本文が返るかを確認するのが早いです。HTTP の 404/403 や User-Agent の話は 購読更新の 404/403 とキャッシュ と重なる部分があります。クライアントの選び方の全体像は クライアントの選び方 も参照してください。
まず確認する共通チェック(URL・HTTPS・回線)
Stash でも Shadowrocket でも、最初に見るべきは共通です。(1) 設定画面に貼った購読 URL が、プロバイダのダッシュボードに表示されている現在の文字列と一致しているか。コピー時の余分な空白、改行、古い短縮リンクのまま、といったミスはどの OS でも最頻出です。(2) URL が https:// で始まっているか。中間者攻撃を防ぐため、信頼できるプロバイダの購読は HTTPS であることがほとんどです。(3) iPhone の「日付と時刻」が自動設定になっているか。日時が大きくずれると TLS の検証が失敗し、ブラウザでも同様の症状が出ます。(4) モバイルデータと Wi‑Fi を切り替えて試す。特定の回線だけプロバイダの WAF やレート制限に引っかかる例があります。
Safari で購読 URL を開き、テキスト(YAML や Base64 っぽい塊)が表示されるかを見ます。ここで開けないなら、クライアントの問題に進む前にURL かサーバ側を疑うべきです。開けるのにアプリだけ失敗するときは、TLS 検証・プロキシのかかり方・キャッシュの順に見ます。一般的な接続の整理は FAQ も併せて読むとよいです。
Stash での典型エラーと対処の順序
Stash は Clash 系の設定を扱う iOS 向けクライアントの一つで、購読やプロファイルのインポート UI が比較的まとまっています。よくあるのは、購読追加後に取得に失敗と出る、あるいはプロファイルはあるがノードが表示されないというパターンです。まずアプリ内のログ/タスク画面で、HTTPS リクエストがどの段階で止まっているか(DNS か、TCP か、証明書か)を確認します。証明書エラーが明示される場合は、後述の MITM/ルート信頼の項へ進みます。
Stash で HTTPS 検証をオフにできる項目がある場合、それはセキュリティ上リスクが高いので、テストで一時的に切るにしても原因が分かったら必ず元に戻す運用にしてください。プロファイルに「ローカルに保存した YAML を読み込む」流れに切り替えている場合は、購読 URL ではなくファイルの中身が空になっていないか、文字コードが壊れていないかも確認します。アプリのバージョンが古く、新しいトランスポートやサブスク形式に未対応だと、取得は成功してもパース後にノードがゼロになることがあります。App Store で更新し、再インポートを試してください。
Shadowrocket での典型エラーと対処の順序
Shadowrocket は長く使われているクライアントで、購読は「サブスクリプション」として追加するのが一般的です。表示文言は英語のままのことが多く、TLS handshake failed、SSL error、timed out などがそのまま出ます。タイムアウトなら、まずは回線と DNS、プロバイダのサーバ負荷を疑い、別ネットワークで再試行します。SSL/TLS なら、端末の日時、購読 URL の https、中間証明書の欠落(サーバ側の設定不良)を疑います。クライアント側で「証明書の検証を緩める」系のオプションがある場合も、Stash と同様に暫定の診断用に留めるべきです。
Shadowrocket は設定項目が細かく、「更新時だけ別のプロキシを通す」のような見えにくい組み合わせで、購読取得だけ失敗することがあります。購読更新が自分のプロキシ経由になり、そこでループや遮断が起きていないかを確認します。トラブルシュート中は、可能なら最小構成(購読と直結ルールだけ)のプロファイルで試し、余計なルールセット取得を止めて差分を見ると原因が絞れます。
TLS 証明書・MITM と「HTTPS を検証する」意味
Clash 系クライアントの一部の機能(広告除去や HTTPS キャプチャに近い挙動)では、端末に独自のルート証明書をインストールし、通信を復号するための中間者(MITM)が有効になります。この状態では、購読 URL への HTTPS アクセスも「クライアントが生成したローカル CA」で再署名されるため、購読サーバの実証明書と期待が一致せず TLS エラーになることがあります。対処の基本は、(1) MITM/復号まわりをオフにして購読だけ通るか試す、(2) ルート証明書を「信頼」設定まで完了しているか確認する、(3) 不要ならプロファイルから MITM 関連を外す、の順です。
iOS の「設定」→「一般」→「VPN とデバイス管理」や「証明書信頼設定」まわりで、ユーザーが入れたルート証明書を「完全に信頼」に切り替えていないと、アプリによっては接続に失敗します。逆に、信頼しすぎると悪意のあるプロファイルで危険なので、入手元が分からないプロファイルを入れないことも併せて守ってください。TLS の基礎的な切り分けは、PC 版のログの読み方と共通する部分が多いです。
ログに出やすい英語(例)TLS handshake failed
certificate verify failed
SSL error: -9806
The certificate for this server is invalid
「ノードが空」「更新できない」の切り分け
購読の HTTP レスポンスは 200 でも、本文が空だったり、プロバイダが一時的に空のリストを返したりすると、画面上は「更新した」に見えてノードがゼロのままです。また、取得した内容が Clash 形式として解釈できず、パース結果が空になるケースもあります。アプリのログに parse や yaml、invalid などが出ていないかを確認し、同じ URL を Safari で開いたときの先頭数行が期待どおりかを見ます。
別のよくある原因は、プロキシを有効にした状態で購読だけが遮断されることです。まだノードがなくてもルールで更新先を誤ってプロキシへ流し、失敗する——という鶏卵は、デスクトップの Clash でも起きます。iOS では「一度 VPN をオフにして購読だけ更新」「モバイルデータでだけ更新」など、更新経路を変えて試すと切り分けやすいです。それでも解消しない場合は、マスクした URL とエラーメッセージをプロバイダのサポートに渡す材料にしてください。
まとめ
iPhone で Clash 系の購読インポートが止まるときは、Stash と Shadowrocket のどちらでも、まず購読 URL の鮮度と Safari での表示、端末の日時、HTTPS/TLS の検証エラーの有無を確認します。次に MITM やルート証明書、更新だけがプロキシループに入っていないかを見ます。ログに出る英語のエラーは、PC 版 Clash の timeout/TLS の読み方とつながります。HTTP ステータスや UA の話は 404/403 の記事 と合わせると、同じ購読でも「ブラウザでは開けるのにアプリだけ失敗」という状況を説明しやすくなります。
モバイルは画面が小さく、ログも製品ごとに見え方が違うため、一度に全部を入れ替えず、購読一本だけの最小構成で試すと復旧が早いです。長期運用では、設定の透明性とコアのメンテナンス性が重要になります。
→ 原因の型が見えてきたら、Clash を無料ダウンロードし、PC や Android などメイン端末と同じ運用フローでルールと購読を揃え、iOS 側は補助的に使う構成も検討してみてください。