Shadowrocket
Settingsの設定項目一覧
設定の適用範囲、接続経路、検証結果を確認します。まず現在の値を確認し、一度に変更する項目は一つにします。共通の初期値を確認できない場合は、アプリに表示されている値を基準にしてください。
- 設定項目の意味
- 値の確認
- 設定の目安
- ルールのトラブル対処
このページでは、Shadowrocketの公式マニュアルのうち、設定項目を体系的に確認できます。まだ初回接続が完了していない場合は、まずチュートリアルのクイックスタートを読み、手元のサーバーまたはサブスクリプションを追加して、サーバーの選択と接続を確認してください。その後、このページで個別の設定を確認します。接続はできるものの、名前解決、自動接続、テスト、同期に問題がある場合は、目次から該当する項目に進んでください。
ここでは、ご自身のサブスクリプションまたはサーバー情報をお持ちであることを前提としています。アプリの買い切り購入と接続サービスの契約は別のものです。本サイトではノードやサブスクリプションの提供、販売、推奨は行っていません。アプリはクローズドソースの商用アプリで、入手先はApp Storeのみです。購入、互換性、システム要件については正規品の確認とダウンロード案内をご覧ください。システム要件はApp Storeのページに記載された内容をご確認ください。
Settings、Home、Configなどの画面名は英語表記のまま記載しています。設定によっては、現在のConfig、デバイス、アプリの状態により動作が変わります。ここで紹介する内容はトラブル対処の手がかりであり、すべての環境に共通する固定値ではありません。操作前に使用中のConfigを保存し、Global Routing、選択中のサーバー、関連するスイッチの状態を記録してください。変更前からの動作と変更後の結果を混同しにくくなります。
Global Routingと設定の適用範囲
Global Routingは、接続全体の処理方法を決めます。Settingsを確認する前に、まず現在の設定を確かめてください。画面のConfig、Proxy、Directは、それぞれ設定、プロキシ、直接接続を表します。画面上部の接続スイッチとは役割が異なります。スイッチはクライアントの接続が動作中かどうかを示し、Global Routingは接続中の通信をどのように処理するかを示します。システムにVPNの状態が表示されていても、特定の通信が選択したサーバーを経由しているとは限りません。
全体の接続方式と個別ルールを区別する
Configでは、現在有効な設定ファイルのルールに基づいて通信方法を決めます。通信先ごとに経路を分けたい場合に適しています。Proxyはプロキシ経由を基本とし、手元のサーバーで特定のアクセスが可能かを確認する際に使えます。Directは直接接続を基本とし、比較確認に役立ちます。実際に維持される動作は、現在のConfigとアプリの説明もあわせて確認してください。各モードの名称だけから、すべてのシステム通信が同じように処理されると判断しないでください。
| 画面上の値 | 意味 | 使用例 |
|---|---|---|
| Config | 現在のConfigのルールに基づいて処理を選択 | 通常の振り分けとルールの一致確認 |
| Proxy | プロキシ経由を基本に処理 | ルールの影響を分けてサーバー経路を確認 |
| Direct | 直接接続を基本に処理 | ローカルネットワークと接続先への到達性を比較 |
Proxyに切り替えてアクセスできるようになっても、接続方式の変更と結果に関連があると分かるだけで、特定のルールに誤りがあるとは限りません。サーバーも同時に変更していないか、古い接続を再利用していないか、ドメイン名を再解決したかも確認してください。反対に、Directで接続先を開けても、プロキシの設定が正しいとは言えません。比較する際は、接続先、ネットワーク、サーバーを固定し、モードだけを一つずつ切り替えて、新しい接続でテストしてください。
Settings、Config、サーバー設定の違いを確認する
同じ現象に、Settingsのアプリ全体に関わる設定、Config内のルールや名前解決設定、サーバー編集画面のプロトコル設定という3つの層が関わる場合があります。ある場所に設定項目があるからといって、別の場所にある同名の設定を上書きするとは限りません。まず現在どのConfigが有効かを確認し、関連する項目が含まれているかを見てください。ファイルを読み込んだ後もアプリ全体の設定が有効かどうかは、ファイルの有無だけで判断せず、実際の動作とLogで確認します。
初期値も設定の層ごとに確認してください。初回インストール時、データ復元後、Config読み込み後では、表示される値が異なることがあります。本マニュアルでは、共通の値を確実に確認できない項目について「現在アプリに表示されている値を基準」としています。設定名、画面上の場所、変更前の値、変更によって期待する影響を記録しておくと便利です。たとえば「サーバーは変更せず、名前解決方式だけを比較する」のように記録します。前後関係の分からない画面だけを保存するより、元の状態に戻しやすくなります。
再現可能な基準を用意する
トラブル対処を始める際は、まず正常に動作することが分かっている、ご自身で管理するサーバーを一つ選びます。Homeで選択されていることを確認し、Global Routingと現在のConfigを記録してください。環境を安定させるため、自動サブスクリプション更新や再接続のきっかけになる条件を一時停止し、テスト中は状態を固定します。完了後は元の設定に戻してください。テストには状態を確認できるページを使い、異なるWebサイトの結果を混ぜて比較しないようにします。
テストごとに、操作の順序を記録します。接続を切断し、設定を一つ変更してから再接続し、新しいリクエストを発生させて、該当する記録を確認します。想定と異なる結果になった場合は、直前の状態に戻して再テストし、問題を再現できるかを確認してください。ブラウザーのキャッシュ、継続中のダウンロード、バックグラウンドの長時間接続では、以前の結果が引き継がれることがあります。そのため、ページの再読み込みが必ずしも新しい接続を意味するとは限りません。必要に応じて対象ページを閉じてから開き直しますが、一度の失敗でアプリのすべてのデータを消去する必要はありません。
DNS:名前解決方式と接続経路
DNSはドメイン名を接続先として使用できるアドレスに変換します。「ドメイン名では開けないが、アドレスを直接入力すると結果が異なる」場合は、名前解決を確認してください。ただし、DNSに関する設定をすべてすぐに変更する必要はありません。名前解決に成功したか、返されたアドレスが現在のネットワークに適しているか、その後の接続がどの経路を通るかは、それぞれ別の問題です。ドメイン名の解決に成功しても、接続先のポートやTLSハンドシェイク、ページの表示まで正常とは限りません。
システムDNS、カスタムDNS、暗号化DNS
システムDNSは、現在のシステムやネットワークが提供する名前解決方法を使います。まず基準となる状態を確認する際に適しています。カスタムDNSは別の名前解決先を指定するため、参照先を選べますが、その接続先に現在の環境から到達できる必要があります。DNS over HTTPSはHTTPS経由で名前解決のリクエストを送信する方式で、DNSサービスのアドレス、証明書、接続経路にも依存します。この方式を選んでも、その後のすべての通信が同じ経路を使うとは限りません。それぞれ分けて確認してください。
まず現在動作している名前解決方式を基準にしてください。変更する場合は、既存の項目と順序を記録し、名前解決先を一つだけ変更して、再接続後に同じドメイン名をテストします。成功率を上げようとして複数の接続先を一度に追加しないでください。返されるアドレスや応答順、キャッシュの影響で、問題の再現が難しくなることがあります。DNSの接続先自体にドメイン名が使われている場合は、初回接続時にその名前を解決できるかも確認し、依存関係が循環しないようにしてください。
| 方式 | 確認すること | 設定の目安 |
|---|---|---|
| システムDNS | 現在のネットワークで名前解決できるか | 初期状態の比較に使い、固定の接続先とは考えない |
| カスタムDNS | アドレスの形式、到達性、名前解決結果 | 使用可能と確認済みの名前解決先を使う |
| DNS over HTTPS | 接続先の完全なアドレス、証明書、接続経路 | 必要な場合にだけ変更し、復元できるよう元の値を残す |
設定の上書き、キャッシュ、アドレスの種類を確認する
ConfigにDNS関連の項目が含まれていることがあるため、Settingsだけを確認しても十分ではありません。変更後も動作がまったく変わらない場合は、有効なファイル内の関連設定を確認し、テストのリクエストがキャッシュを使っていないかも確かめてください。階層ごとに結果がキャッシュされる場合があり、Webページを開き直しても新しい名前解決が行われるとは限りません。Logに新しい名前解決の記録があるかを確認する方が、何度も再読み込みするより判断に役立ちます。キャッシュが使われた結果を、新しい応答と誤認しないようにしてください。
同じドメイン名からIPv4とIPv6の両方のアドレスが返されることがあります。一方の経路に到達できない場合、接続に時間がかかったり、一部のリクエストが失敗したりすることがあります。その場合は、返されたアドレスの種類と接続エラーをそれぞれ確認し、すぐにDNSサービスの問題と決めつけないでください。関連する設定を有効にするかどうかは、現在のネットワーク、サーバーの対応状況、接続先に応じて判断します。初期値は現在アプリに表示されている値を確認し、変更後は以前アクセスできた接続先にも影響がないか確認してください。
失敗した段階に応じて次の確認を行う
名前解決の応答がない場合は、まず名前解決先の形式、ネットワークからの到達性、設定の適用場所を確認します。アドレスを取得できても接続がタイムアウトする場合は、ルーティングとサーバーを確認してください。接続後に証明書エラーが発生した場合は、ドメイン名、デバイスの日時、サーバー関連の設定を確認します。証明書の問題を隠すためにDNSを何度も変更しないでください。Webサイトからエラーページが返された場合は、ネットワーク接続自体は完了している可能性があります。原因との関連が薄いまま、名前解決の設定を変更し続けないようにしてください。
ローカルデバイス名やLAN内のサービスでは、名前解決できる範囲にも注意が必要です。パブリックDNSでは、家庭やオフィスのネットワーク内で使われる名前を解決できないことがあります。すべての名前解決を同じ外部の接続先に任せると、これまで使えていたローカル接続に影響する場合があります。元のConfigを残し、ローカルの接続先と一般的なドメイン名を一つずつ使って比較してください。設定を変更する目的は実際の要件に合った名前解決を行うことであり、設定にプロトコル名を増やすことではありません。
On Demand:発動条件と自動接続
On Demandは、設定済みの条件に応じて接続を開始する機能です。サーバーを自動的に修復する機能や、サブスクリプションを更新する機能ではありません。条件に合致すると接続が試みられますが、接続できるかどうかは現在のサーバー、Config、ネットワークによって変わります。手動で接続を切った後に再び動作する場合は、まず有効な条件が残っていないか確認してください。上部のスイッチやアプリの状態表示に問題があるとすぐに決めつけないようにします。
まず自動化する場面を決める
設定を始める前に、目的を具体的にします。たとえば、特定のネットワークでのみ接続したいのか、ネットワークを切り替えても接続状態を維持したいのかを決めてください。次に、現在のアプリで選べる条件の種類と一致方法を確認します。別の画面にある項目名をそのまま当てはめないでください。Wi-Fiネットワーク名で環境を区別する場合は、空白や見た目の似た文字を含め、名前を正確に確認します。同じ名前のネットワークが異なる場所にあることもあり、名前だけではネットワークの正当性を確認できません。
スイッチの初期状態や最初の条件は、現在アプリに表示されている内容を確認してください。初回接続をトラブル対処中の場合は、まずOn Demandを一時停止して、単一のサーバーが正常に動作することを手動で確認してから、自動接続の条件を追加することをおすすめします。そうしないと、接続エラーと条件による再試行が重なり、Logに似た記録が何度も残って、どの手動操作の結果か判断しにくくなります。自動接続を再開するときは、目的が明確な条件を一つずつ追加してください。
システムの許可とネットワーク切り替え
初回接続時、システムからVPN構成の追加許可を求められる場合があります。アプリ名を確認し、システムの案内に従ってください。許可済みであっても、すべての自動接続条件が有効とは限りません。また、条件が有効でも、システムの許可が完了しているとは限りません。アプリでは有効に見えるのにシステムが接続を確立できない場合は、許可の状態と接続エラーを分けて確認します。システム要件とデバイスの互換性はApp Storeのページに記載された内容を確認し、以前のデバイスでの経験から現在の状態を推測しないでください。
Wi-Fiとモバイル通信を切り替えると到達経路が変わり、既存の接続が切断されることもあります。On Demandをテストするときは、まずネットワークを固定して条件が発動するかを確認し、その後、ネットワークを一度だけ切り替えて前後の状態を記録してください。サーバーとConfigを同時に変更すると、接続が復旧しても自動接続の条件が正しいかどうか分かりません。Webブラウザーでログインが必要なネットワークでは、先にネットワークへの接続手続きを完了してからプロキシ接続を確認します。
| 現象 | まず確認すること | 次に行うこと |
|---|---|---|
| 切断後に再接続する | 自動接続の条件が有効になっていないか | 条件を一時停止して、手動で切断する操作を繰り返す |
| ネットワーク切り替え後に接続しない | 新しいネットワークが条件に一致するか | 新しいネットワークでサーバーに手動接続できるかテストする |
| 接続を繰り返し試みる | サーバーのエラーとネットワークへの接続状態 | 自動接続を一時停止し、手動で接続エラーを再現する |
自動接続と手動接続の違いを確認する
手動接続は正常で、自動接続だけが想定どおりに動作しない場合は、プロトコル設定ではなく発動条件を優先して確認してください。条件が保存されているか、現在のネットワークが条件を満たしているか、別の条件が異なる動作を引き起こしていないか、システム構成が有効かを確認します。手動接続も失敗する場合は、サーバーと名前解決の確認に戻ってください。2つの状況を分けることで、自動接続の問題を解決するために既存のデータをすべて作り直すことを避けられます。
アプリが前面に表示されなくなった後、切断したと思っていても、システムの接続が残っていることがあります。アプリ画面が前面にあるかどうかと、システムのネットワーク拡張が動作しているかどうかは別の状態です。システムの接続状態と、アプリを再度開いたときの表示をあわせて確認してください。バックグラウンドのアプリ一覧を接続スイッチと見なさないでください。自動接続を停止する場合は、まず有効なOn Demand条件を無効にしてから切断し、状態を確認します。条件がすぐに再発動するのを防げます。
継続して使う前に、少なくとも3種類の確認を行ってください。条件に合致したとき接続できること、条件に合致しないときの動作が想定どおりであること、サーバーに到達できない場合にエラーを判別できることです。自動接続は操作を減らすために使い、問題を見えにくくするために使わないでください。組織が管理するデバイスでは、システム設定に管理上の制限がある場合があります。デバイスに表示された内容を確認し、条件や許可の確認をせずに構成の削除と追加を繰り返さないでください。
PingとConnectivity Test:テスト結果の見方
PingとConnectivity Testは接続状態の確認に使いますが、テスト方法によって測定する対象は異なります。サーバーのアドレスに応答があっても、プロキシプロトコルの認証が成功したとは限りません。プロキシ経由でテスト先にアクセスできても、すべての通信先が使えるとは限りません。結果を読む前に、現在選択しているテスト方法、接続先、対象となるサーバーを確認してください。数値やエラー表示を解釈する際は、部分的な結果をネットワーク全体の結論に広げないようにします。
ネットワークの到達性とプロキシの利用可否を区別する
Ping関連の設定によって、サーバー一覧で使われるテスト方法が変わることがあります。選択できる項目と初期値は、現在アプリに表示されている内容を確認してください。ネットワーク層の応答を使うテストはアドレスへの経路の状態を示し、ポート接続を試すテストはそのポートに接続できるかを示します。プロキシ経由で接続先へアクセスするテストでは、プロトコル、認証、名前解決、接続先サービスも関係します。確認する層が増えるほど原因も増えるため、一つの失敗表示だけで、どの段階に問題があるかを決めつけないでください。
たとえば、サーバーのアドレスには到達できても、パスワードやTLSの名前が正しくない場合、単純な到達性テストと実際のアクセスで結果が異なることがあります。反対に、特定の探査応答を返さないネットワークでも、通常の通信は完了できる場合があります。こうした違いがあるときは、両方の結果を残し、実際の接続記録を確認してください。サーバー一覧をすべて成功表示にするために、サーバー設定を変更しないでください。設定は手元のサーバー情報と一致している必要があり、テスト結果は設定内容の代わりにはなりません。
安定した明確なテスト先を選ぶ
テスト先には、用途と状態を自分で確認できるアドレスを使用してください。URLを入力できる設定では、プロトコル、ドメイン名、パスがすべて正しいか確認します。リダイレクト、ログイン要求、一時的なアクセス制限などによってテスト結果が変わることがあります。状態がよく変わるWebページを唯一の基準にしないでください。テスト先を変更する場合は、接続先だけを変え、タイムアウトやサーバーを同時に変更しないようにします。結果が変わった理由を判断しやすくなります。
タイムアウトが短すぎると、接続に時間がかかる正常な経路まで失敗と判定することがあります。長すぎると待ち時間が増え、複数のテストで問題を見分けにくくなります。初期値は現在アプリに表示されている内容を確認し、まずは既存の値を維持してください。同じ条件で複数回テストし、毎回タイムアウトの上限近くまで待つ場合に、値の変更を検討します。タイムアウトを延長しても、認証情報、ポート、証明書の誤りは直りません。また、到達できない接続先に到達できるようにもなりません。まずエラーの種類を確認してください。
| 観察された結果 | 分かること | 引き続き確認すること |
|---|---|---|
| アドレスまたはポートに到達できる | 経路の一部が応答している | プロトコル、認証、実際の接続先 |
| Connectivity Testに成功 | 今回のテスト条件では接続先にアクセスできる | 実際の通信とルールによる経路 |
| テストがタイムアウト | 制限時間内にテストが完了しなかった | 名前解決、接続、認証、接続先の状態 |
比較できる条件でテストする
まず選択中のサーバーを単独でテストし、同じ接続先を使って手元の他のサーバーと比較します。テスト中はネットワーク、Global Routing、Configを固定し、サブスクリプションの更新を行わないでください。複数サーバーの一括テストでは、複数のリクエストが同時に発生するため、単一リクエストの場合とは負荷が異なることがあります。まず絞り込みに使い、気になる項目は一つずつ再テストします。一度の並び順だけを根拠に、設定を頻繁に変更しないでください。
初回接続の確認では、実際にアクセスするテストも行います。Homeでサーバーが選択されていることを確認し、接続スイッチをオンにして接続先へアクセスし、Logを確認してください。サーバー一覧のテストは特定の項目に対して行われる場合がありますが、実際の通信では別のサーバーが選択されている可能性があります。両者が一致していることを確認してください。詳しい手順は初回接続とConnectivity Testの確認方法をご覧ください。テストに成功してもページを開けない場合は、テスト先とルールを比較し、すぐにテスト設定をリセットしないでください。
結果を記録する際は、テスト方法、接続先、ネットワークの種類、選択中のサーバー、エラー表示を残せば十分です。サブスクリプション全体を公開する必要はありません。短時間に繰り返したテストで分かるのは、その時間帯の状態です。ネットワーク条件が変わった場合は、改めて確認してください。「このポートに接続できるか」のように具体的な問いにテストを使う方が、単に数値を小さくすることを目指すより、その後の対応に役立ちます。
LogとData:失敗した段階を記録から確認する
Logは接続がどのように行われたかを確認するために、Dataは通信量に関する情報を見るために使います。どちらも対象となる時間帯を明確にして解釈してください。合計値が増えていても、集計対象の範囲でデータが計上されたと分かるだけで、特定のページが正常に読み込まれた証拠にはなりません。接続の記録があっても、リクエスト全体が完了したとは限りません。トラブル対処では、まず対象と操作した時刻を特定し、記録から名前解決、ルールの選択、接続の確立、エラーの各段階を確認します。
記録の範囲を絞ってから問題を再現する
ログのスイッチ、詳細度、保存方法は、現在アプリに表示されている内容を確認してください。問題を再現する間だけ、特定に必要な範囲のログを記録し、終了後は通常の設定に戻すことをおすすめします。記録が詳細になるほど、バックグラウンドのアプリ、ページ内の関連リソース、重複した接続が混在しやすくなります。対象を絞らずに記録を増やすと、かえって判断しにくくなります。開始前に関係のないテストやサブスクリプション更新を一時停止し、現在の状態を記録してから、対象の操作を一度だけ実行してください。
画面から記録を消去できる場合は、必要な情報を保存したか確認してから、今回の観察範囲の記録を消去します。消去しない場合は、開始位置や操作時刻を記録してください。その後、対象との接続を新たに確立し、ブラウザーが古い接続を再利用して新しい記録が残らない状況を避けます。一度の再現で関係のないページを複数開かないでください。ページ本体のリクエストと他のリソースを区別しにくくなります。記録の末尾に近いエラーを、現在の対象に関係するものと決めつけないでください。
名前解決、接続、認証、サービス応答を区別する
名前解決の段階で結果が得られない場合は、DNSを確認します。アドレスを取得してから接続がタイムアウトする場合は、ネットワーク、ポート、選択中の経路を確認します。認証やハンドシェイクのエラーが出た場合は、サーバーの各項目が手元の情報と一致するかを確認してください。TLS関連のエラーでは、名前、証明書の条件、デバイスの日時も確認します。接続先サービスから拒否やサービス応答を受け取った場合は、ネットワーク上の前段階が完了していることがあります。次はその応答自体を確認してください。
ルールのトラブル対処では、「記録にドメイン名があるか」ではなく、どのルールに一致し、どのポリシーが選択され、最終的にどこへ接続しようとしたかを確認します。一つのページで複数のドメイン名が使われることがあり、メインのドメイン名が正常でも、他のリソースが異なるポリシーで処理される可能性があります。まず実際に失敗したリクエストを特定し、その一致結果を確認してください。Logに必要な項目がない場合は、不足情報を推測で補わず、一つのルールだけを変えて比較し、テストを繰り返して仮説を確認します。
| 失敗した段階 | 優先して確認すること | 避けたい誤判断 |
|---|---|---|
| 名前解決 | DNSの接続先と到達性 | すぐにサーバーのパスワードの問題と判断する |
| 接続の確立 | アドレス、ポート、ネットワーク、ポリシー | タイムアウトだけでルールの構文エラーと判断する |
| 認証またはハンドシェイク | プロトコルの項目、TLS名、日時 | 設定値の不一致をタイムアウトの延長で解決しようとする |
| サービス応答 | 接続先サービスと実際のリクエスト | すべてのエラーページを接続失敗と判断する |
通信量の記録とプライバシーへの配慮
Dataの集計範囲、累積の開始時点、表示単位は、現在の画面の説明に従って解釈してください。接続中に他のアプリも通信することがあり、ページのキャッシュによって今回の通信量が少なくなる場合もあります。そのため、合計値から特定のリクエスト全体のサイズを直接計算することはできません。比較する場合は、観察する時間を固定し、明確な操作を一度だけ実行して、前後の変化を記録します。統計がリセットされたり、デバイスを再接続したりした場合は、集計範囲が変わったことを結論に記載してください。
ログには、接続先のドメイン名やアドレス、サーバー名など、利用状況を特定できる情報が含まれる場合があります。共有する前に、サブスクリプションのアドレス、認証情報、個人を特定できる情報、関係のないアクセス記録を削除し、問題の特定に必要な最小限の範囲だけを残してください。一見すると普通のアドレスに見えるリンクにも、認証情報が含まれることがあります。エクスポートしたファイル全体を公開の場に貼り付けないでください。実際のドメイン名をexample.comに置き換える場合も、エラーの種類と項目の構造は維持してください。
トラブル対処が終わったら、変更した設定を元に戻すか、新しい基準として保存し、不要になった詳細ログをオフにします。問題の原因がまだ分からない場合は、「期待する動作、実際の動作、固定した条件、唯一の変更点、対応するエラー」の5項目を整理して、さらに範囲を絞ってください。再試行を繰り返さず、判断に必要な情報も残せます。「接続できない」という一文や、途中で切れたエラー画面だけでは、どの設定を変更すべきか判断できないことがほとんどです。
Widget、iCloud同期、既存のサブスクリプション管理
Widgetの表示と実際の接続状態
Widgetの表示と実際の接続状態
Widgetの種類、表示項目、初期動作は、現在のシステムとアプリに表示されている内容を確認してください。システムがウィジェットの更新を行うため、表示内容がアプリを開いた直後の状態と異なる場合があります。表示に食い違いがある場合は、まずShadowrocketを開き、接続スイッチ、選択中のサーバー、現在のConfigを確認してから、システムの接続状態を確認してください。古い表示が残っているからといって、接続操作を何度も行わないでください。元の状態を追跡しにくくなることがあります。
Widgetを追加または調整したら、アプリを開くためのショートカットなのか、状態表示なのか、実際に操作できるものなのかを確認してから使ってください。関連する設定が表示されない場合は、同名のConfig項目を探して代用するのではなく、デバイスのシステムが対応しているかとアプリ内の説明を確認します。システム要件はApp Storeのページに記載された内容を確認してください。Widgetはアプリを開く手間を減らすのに便利ですが、特定のドメイン名がプロキシ経由かどうかを判断する根拠にはなりません。
同期の範囲、競合、復元の順序
iCloud同期の初期状態と対象範囲は、現在アプリに表示されている内容を確認してください。有効にする前に、システムアカウントとアプリのiCloud利用許可を確認し、現在使えるConfigを一つ保存しておきます。同期は完全なバックアップと同じではありません。すべてのサーバー、履歴、システムの許可、接続状態が一括で移行されるとは限りません。アプリが実際に同期する項目を確認し、Configファイル、サーバー一覧、関連する設定がそれぞれ反映されているか確認してください。
複数のデバイスで同じ内容を同時に編集すると、変更の前後関係が分かりにくくなることがあります。まず一台で変更を完了し、もう一台で変更を受け取ったことを確認してから、次の編集を行ってください。古い内容が再び表示された場合は、続けて変更するのをやめ、両方のデバイスで残したい情報を個別に保存して、実際の差分を比較してからどちらを採用するか決めます。同期を強制しようとして片方のデータをすぐに消去しないでください。削除や上書きがさらに同期される可能性があります。
| 動作 | 解決する内容 | 同じになるとは限らない項目 |
|---|---|---|
| iCloud同期 | 対応範囲内のアプリデータをデバイス間で共有 | システムの許可と接続状態がすべて一致する |
| サブスクリプションの更新 | 手元のサブスクリプションの内容を再取得 | 別のデバイスで同じ項目が自動的に有効になる |
| Configの手動読み込み | Configファイルを追加または更新 | 読み込み後にそのConfigが有効になる |
サブスクリプションの更新とアプリデータの同期は別
Subscribeに保存されたサブスクリプションは、その更新方法に従って内容を再取得します。iCloudにサブスクリプションの項目が表示されても、現在のURLが有効であることや、取得した内容が更新済みであることを示すわけではありません。手動更新、アプリを開いたときの自動更新、個別更新の違いは、サブスクリプションの更新方法をご覧ください。トラブル対処中は、まず一つの項目だけを更新して内容の変化を確認します。一括操作で特定項目のエラーが見えにくくならないようにしてください。
更新後は完了の表示だけでなく、項目数と選択状態が想定どおりかを確認します。以前選択していたサーバーが配信元の内容で置き換わっている場合があり、名前が似ていても設定が同じとは限りません。一覧が空になったり、解析エラーが表示されたりした場合は、まず現在使える内容を残し、URLの完全性、配信元の状態、取得した内容を確認してください。手順はサブスクリプションの解析に失敗する・一覧が空の場合の確認方法をご覧ください。同じURLを何度も削除して追加し直さないでください。
新しいデバイスに復元する場合は、まずアプリを入手してシステムの許可を確認し、その後、同期データと現在の選択内容を確認してから、実際の接続をテストします。App Storeの購入済みアイテムの復元と、iCloudのデータ同期は別の手続きです。購入記録があっても、アプリ内の設定が復元済みとは限りません。購入手順については購入済みアイテムの復元方法をご覧ください。復元後に自動更新やOn Demandを設定すると、複数のバックグラウンド動作が重なって誤判断するのを避けやすくなります。
Proxyポートとサーバー設定:ローカルとリモートを区別する
Proxy関連のポートは、まず設定場所を区別してください。Add Serverのポートは、手元のリモートサーバーの設定項目であり、対応するサーバー情報と一致させる必要があります。Settingsにローカルプロキシの待ち受け設定がある場合、そのポートはデバイス上のローカル接続先です。用途が異なるため、数値が同じでも互いに置き換えることはできません。変更前に画面上の項目名、アドレス、利用者を記録し、「誰がこのポートに接続するのか」を確認してから変更箇所を判断してください。
ローカル待ち受けのアドレス、ポート、公開範囲
ローカルHTTPまたはSOCKS5の接続先が使えるか、有効か、初期ポートが何番かは、現在アプリに表示されている内容を確認してください。固定の番号を前提にしないでください。デバイス上のアプリだけで使う場合は、必要最小限の範囲に制限することをおすすめします。LANからの接続を許可すると、アクセスできる利用者の範囲が変わります。認証、ネットワークの信頼性、実際の用途をあわせて検討してください。Webページの不具合を調べるためだけに待ち受けを追加し、関係のない条件を増やさないでください。
ポートの競合とポート設定の誤りは別の問題です。待ち受けを開始できない場合は、別の機能がポートを使用していないか、その設定が実際に有効かを確認します。リモートサーバーへの接続に失敗する場合は、サーバーアドレス、リモートポート、ネットワーク経路を確認してください。リモートポートをローカル待ち受けのポートに変更しても、サーバー側の設定は直りません。システムのネットワーク環境が変わると、アクセス可能なローカルアドレスも変わることがあります。以前のネットワークで使えたアドレスだけを根拠に、現在の接続状態を判断しないでください。
プロトコルの項目は手元の情報と一致させる
Add Serverでは、まずプロトコルの種類を確認し、選択したプロトコルに必要な項目を確認します。Shadowsocksの暗号化方式とパスワード、VMessまたはVLESSのIDと転送設定、TrojanのパスワードとTLS関連の項目は、それぞれ意味が異なります。画面上の項目名が似ていても、相互に置き換えられるとは限りません。手元のサーバー情報に従って一つずつ入力し、接続を試すためにプロトコルを無作為に変更したり、別の項目の設定をコピーしたりしないでください。
サーバーアドレス、TLSで使う名前、特定の転送方式で使うHostは、別々の項目である場合があります。アドレスは最初に接続する先を決め、名前に関する項目は該当するハンドシェイクやリクエストの処理に使われます。既存のサーバー設定を確認してください。証明書エラーが出たときに、検証を無効にすることを通常の対処としてすすめないでください。まず名前が一致しているか、デバイスの日時が正しいか、設定の情報がすべてそろっているかを確認し、その後サーバー証明書の状態を確認します。項目の誤りをチェックの緩和で隠さないでください。
| 項目 | 意味 | 値の確認先 |
|---|---|---|
| ローカルProxyポート | デバイス上のプロキシ接続先 | 現在のアプリとローカルでの利用要件 |
| Add Serverのポート | リモートサーバーの接続先 | 手元のサーバー情報 |
| TLSの名前に関する項目 | ハンドシェイクと名前の照合に必要な情報 | 対象サーバーの実際の設定 |
| 転送経路とHost | 特定の転送方式で使われるリクエスト項目 | 該当する転送方式の既存設定 |
転送方式への対応状況から原因を確認する
TCPリクエストは正常でも別の種類のリクエストが失敗する場合は、プロトコル、サーバー、ネットワークがその転送方式に対応しているか確認します。Webページを開けるからといって、すべてのUDP通信やリアルタイム通信も使えるとは限りません。WireGuard、Hysteria2などのプロトコルにも、それぞれアドレス、認証、転送方式の要件があります。実際の項目を確認してください。ここでは確認方法を説明しており、接続に使える認証情報を提供したり、サーバーで特定の機能が有効だと推測したりするものではありません。
サブスクリプションから読み込むと手入力を減らせますが、解析後の項目が元の情報と一致しているかは確認が必要です。サブスクリプションから生成された項目を編集する場合は、次回更新でローカルの変更が上書きされないか確認してください。テストする場合は、元の項目を残してテスト用の複製と分かるようにしておきます。次回更新後にアプリが変更を保存しなかったと誤解するのを避けられます。手動追加の手順はAdd Serverのチュートリアル、既存サブスクリプションの読み込みはSubscribeのチュートリアルをご覧ください。
確認は、アドレスとポート、プロトコルと認証、TLSと転送の項目、実際の接続先へのアクセスの順に行います。各段階を確認するたびに、新しい接続でテストし、Logで失敗した段階が変わったかを見てください。エラーがタイムアウトから認証エラーに変わった場合、確認できた範囲が変わったことは分かりますが、問題が解決したとは限りません。設定が手元の情報と一致し、実際のリクエストが完了して初めて、その項目をルールのトラブル対処の基準として使えます。
Configのルールと段階的なトラブル対処
Configには、ルールや関連する設定がまとめられています。ファイルの読み込み、使用するファイルの選択、新しい接続にそのファイルを適用することは、それぞれ別に確認が必要です。トラブル対処を始める前にConfigで実際に有効な項目を確認し、Homeに戻ってGlobal RoutingがConfigになっていることを確認します。ProxyやDirectを使っている場合は、全体の接続方式が変わっているため、ルールで想定される処理だけでアクセス結果を説明できません。個別のルールを調べる前に、確認条件をそろえてください。
ルールは上から順に照合され、最初に一致したルールが適用される
ルールの順序も結果に影響します。範囲の広いルールを前に置くと、後ろにある具体的なルールに一致しない場合があります。DOMAINは指定したドメイン名、DOMAIN-SUFFIXはドメイン名のサフィックスとその範囲、DOMAIN-KEYWORDはドメイン名に含まれるキーワードで一致します。IP-CIDRとIP-CIDR6はアドレス範囲を表し、GEOIPはアドレスの地域情報に基づいて照合します。FINALは、それ以前のルールに一致しなかった場合の処理に使います。ルールの種類を選ぶ前に、ドメイン名とアドレスのどちらを照合するか明確にしてください。
| キーワード | 照合対象 | 確認すること |
|---|---|---|
| DOMAIN | 指定したドメイン名 | ドメイン名の表記と実際のリクエストが一致するか |
| DOMAIN-SUFFIX | ドメイン名のサフィックス範囲 | 範囲が広すぎないか、前にあるルールがないか |
| DOMAIN-KEYWORD | ドメイン名に含まれるキーワード | 他の接続先まで誤って含めていないか |
| IP-CIDR / IP-CIDR6 | 該当するアドレス範囲 | アドレスの種類、ネットワーク範囲、名前解決結果 |
| GEOIP | アドレスの地域分類 | 使用するデータと実際のアドレス |
| FINAL | それ以前のルールに一致しなかった接続 | ルールの最後にあるか、ポリシーが正しいか |
最小限のルールでポリシーを確認する
次はルールの構文例であり、すべての環境で使える完全なConfigではありません。example.comは例示用のドメイン名です。PROXY、DIRECT、REJECTはポリシーを表すキーワードであり、サーバープロトコルではありません。使用前に現在使えるConfigを複製し、複製したファイルで変更を試し、元のファイルを残してください。必要な内容を含むConfig全体を、この断片で上書きしないでください。また、例にGEOIPが含まれていても、必ずこの方式で通信を振り分ける必要があるとは限りません。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY
ルールを一行ずつ確認するときは、まず照合タイプ、次に照合する値、最後にポリシーを見ます。DIRECTは接続先に直接接続し、PROXYは該当するプロキシ経路に渡し、REJECTは一致した通信を拒否します。特定のドメイン名に対するポリシーをテストする場合は、範囲の広いルールに遮られないよう、対象を明確にしたテスト用ルールを前に置き、新しい接続で一致結果を確認します。テスト後は元の順序に戻し、一時的なルールが他の通信に影響し続けないようにしてください。
GEOIPやアドレス範囲のルールは接続先のアドレスに基づき、ドメイン名のルールはリクエスト内のドメイン名に依存します。リクエストの形式や名前解決の段階によって照合に使える情報が変わるため、同じWebサイトでもアクセスのたびに同じ記録になるとは限りません。アドレスに関するルールが一致した場合は、DNSの応答とあわせて解釈してください。キーワードによる誤一致がある場合は、DOMAINまたは適切なサフィックスに範囲を絞り、広範囲の例外を追加し続けないようにします。
設定変更を検証可能な結論にまとめる
トラブル対処は、問題の内容を明確にすることから始まります。失敗する接続先、現在のネットワーク、選択中のサーバー、Global Routing、有効なConfigを確認してください。次に、問題が名前解決、接続、認証、ルールのどの段階で起きているかを判断し、根拠が最も明確な項目を一つだけ変更します。再接続して新しいリクエストを行い、結果が安定して変わるか確認してください。変化がなければ元の値に戻し、設定が実際に適用されているか確認します。関係のない項目を次々に追加で変更しないでください。
問題が解決した後は、もともと正常だった接続先を一つと、ローカル接続の場面を一つ確認し、影響範囲が広がっていないことを確かめてください。最終的に残す設定と変更理由を自分用のConfigメモに記録し、テスト用の複製から機密情報を削除して、必要なサブスクリプション更新とOn Demandを再開します。次に問題が起きた場合は、すべてのSettingsを最初から試すのではなく、この基準と比較してください。アプリの更新とサブスクリプションの更新も、影響を分けて記録します。
よくある問題は、このページの項目を目安に確認できます。名前解決はDNS、自動接続はOn Demand、テストとアクセス結果の違いはPing、状態の記録はLog、データの不一致は同期、ハンドシェイクの失敗はサーバー設定、ポリシーの不一致はルールの順序を確認してください。購入や復元については価格と買い切り購入についておよび購入済みアイテムの復元をご覧ください。App Storeでの購入手続きに、ネットワーク設定を使わないでください。