接続画面と動作モード
接続スイッチは接続するかどうかを決め、Global Routingは通信の処理方法を決めます。役割の異なる設定なので、問題を調べる際は分けて確認してください。
Home
メイン画面と接続状態
Homeはサーバー項目の確認、接続先の選択、接続スイッチの操作を行うメイン画面です。サーバー項目が表示されていても、情報が保存されていることを示すだけで、サーバーが現在利用できるとは限りません。接続後は実際のリクエストでアクセス状況を確認してください。
Global Routing
通信全体の処理方法
Global RoutingにはConfig、Proxy、Directの3つのモードがあります。Configは現在の設定に基づいて通信を振り分け、Proxyは通信をプロキシ経由で処理し、Directは直接接続します。いずれのモードも、システムのネットワーク環境やアプリ関連の設定の影響を受けます。
On Demand
条件に応じた自動接続
On Demandは、設定した条件に応じてシステムにVPN接続を自動的に開始させる機能です。実際に接続するかどうかは選択した条件とシステムの状態によって異なります。ドメインごとにPROXYまたはDIRECTを選ぶ機能ではありません。手動で切断しても再接続する場合は、すぐに設定を削除せず、まずこの項目を確認してください。
Add Server
サーバー情報の追加
Add Serverはサーバー項目を追加する画面です。表示される入力項目はプロトコルによって異なります。手元にあるサーバー情報を使い、アドレス、ポート、認証、トランスポートの各設定を確認してください。共通項目だけを入力してプロトコル固有のパラメーターを省くと、保存できても接続できない場合があります。
Config
画面名とConfigモード
Configは設定ファイルを管理する画面を指す場合と、Global RoutingのConfigモードを指す場合があります。手順を読むときは、どちらの意味か画面の場所から判断してください。ファイルを画面上で保存することと、そのファイルを現在のルーティングに適用することは別です。ルールを変更した後は、使用中の設定を確認してください。
Connectivity Test
接続テストと結果の範囲
Connectivity Testは、指定したテスト方法で接続状況を確認します。テスト方法によって確認できる接続段階が異なる場合があります。テストに成功しても、すべてのWebサイトにアクセスできるとは限りません。表示された時間もダウンロード速度ではありません。結果に差がある場合は、DNS、ルールのマッチ状況、実際のリクエストをあわせて確認してください。
認証・トランスポート・暗号化の設定
プロトコル名で必要な入力項目は決まりますが、速度が決まるわけではありません。まずサーバー側とクライアント側の設定を一致させ、次にネットワークが使用するトランスポートに対応しているか確認してください。
Shadowsocks
アドレス・パスワード・暗号化方式
Shadowsocksはサーバーアドレス、ポート、暗号化方式、パスワードなどを使ってプロキシ接続を確立します。暗号化方式はサーバー側と一致させてください。共有リンクを読み込んだ後も、各項目が正しく設定されているか確認しましょう。パスワードが正しくても、暗号化方式が一致しなければ通信できないことがあります。
VMess
識別情報とトランスポートの組み合わせ
VMessはUUIDなどの識別情報を使い、異なるトランスポート方式やTLS設定と組み合わせる場合があります。UUIDだけでは設定は完了しません。アドレス、ポート、トランスポートのパス、サーバー名などを実際のサーバー設定に合わせて入力してください。デバイスの時刻がずれていると、認証に影響することもあります。
VLESS
認証とトランスポートのセキュリティを個別に確認
VLESS自体はデータを暗号化しないため、通常は対応するトランスポートセキュリティと組み合わせて使用します。UUIDを入力した後は、トランスポートの種類、セキュリティ設定、追加パラメーターも確認してください。名称が似ているからといって、別のプロトコルの項目をVLESSにそのまま流用しないでください。
Trojan
パスワード認証とTLS
Trojanは通常、TLSとパスワード認証を組み合わせて接続します。サーバー名と証明書の検証は、問題を調べるうえで重要です。アドレスに到達できてもハンドシェイクに失敗する場合は、まずパスワード、SNI、証明書の対応関係を確認してください。証明書検証の無効化を通常の解決策にしないでください。
Hysteria2
QUICベースのトランスポート
Hysteria2はQUICをベースとしており、接続状況はネットワークでUDPを利用できるかどうかに左右されます。認証、TLS、任意の追加設定はサーバー側と一致させてください。同じ項目でもネットワークによって接続状況が異なる場合は、パスワードを何度も変更する前にUDPの利用可否を確認してください。
WireGuard
鍵とトンネルのルーティング
WireGuardは鍵ペアを使って暗号化トンネルを構築します。ローカルアドレス、ピアの公開鍵、エンドポイント、許可するルーティング範囲を設定します。ハンドシェイクに成功しても、一部の経路が確立したことを示すだけです。実際のアクセスにはルーティングやDNSも影響します。秘密鍵は機密情報のため、公開するスクリーンショットに含めないでください。
HTTP / SOCKS5
汎用プロキシ接続方式
HTTPとSOCKS5は異なるプロキシプロトコルです。アドレス、ポート、アカウント認証の要否をそれぞれ確認してください。プロトコル名だけでは通信が暗号化されているとは限らず、UDPなどの通信への対応状況も異なります。手元のサーバーが実際に提供している種類を選択してください。
マッチ条件と処理ポリシー
ルールは通常、設定ファイルに記述された順に評価されます。キーワードはマッチ条件を、末尾のポリシーは処理方法を示します。広い条件のルールに上書きされないよう、より具体的なルールを先に配置してください。
DOMAIN
完全一致のドメイン指定
DOMAINは指定した完全一致のドメインにマッチします。たとえばapi.example.comを指定しても、ほかのサブドメインには自動的に適用されません。マッチ対象にはドメイン名を指定し、Webページの完全なURLやパス、クエリパラメーターは入力しないでください。特定のホストだけにポリシーを設定する場合に適しています。
DOMAIN-SUFFIX
ドメインとサブドメインの指定
DOMAIN-SUFFIXは指定したドメインとそのサブドメインにマッチします。たとえばexample.comとapi.example.comが対象です。任意の文字列を検索するルールではなく、ドメインの階層に基づいて照合します。特定のサブドメインを例外にする場合は、より具体的なDOMAINルールを先に記述してください。
DOMAIN-KEYWORD
ドメイン内の文字列で照合
DOMAIN-KEYWORDは、ドメイン名に指定した文字列が含まれるかどうかでマッチを判定します。後方一致のルールより広い範囲に適用されることがあります。短すぎるキーワードは無関係なドメインにもマッチするため、必要な場面を見極め、追加後は実際のリクエスト履歴を確認してください。
IP-CIDR / IP-CIDR6
アドレス範囲で照合
IP-CIDRはIPv4のアドレス範囲、IP-CIDR6はIPv6のアドレス範囲に使用します。スラッシュの後ろにあるプレフィックス長が範囲を示します。照合対象はドメイン名の文字列ではなく宛先IPアドレスです。宛先アドレスが解決済みかどうかや、ルールの関連パラメーターも照合結果に影響します。
GEOIP
IPデータベースの登録情報で照合
GEOIPはIP地理情報データベースの記録をもとに宛先アドレスの地域を判定します。Webページの言語やドメインの末尾を参照するものではありません。データベース上の登録地域とサーバーの実際の設置場所は異なる場合があります。CDNを利用するドメインは接続先のIPが変わることもあるため、判定結果を物理的な所在地の確証として扱わないでください。
FINAL
ルールにマッチしない通信の最終処理
FINALは、それまでのルールにマッチしなかったリクエストを処理するため、通常はルール一覧の末尾に置きます。ほかのルールをもう一度評価するのではなく、残ったリクエストの接続先を指定します。最終処理のポリシーを誤ると、個別に指定していないドメインの接続方法が想定と異なることがあります。
PROXY / DIRECT / REJECT
ルール末尾に指定する処理アクション
PROXYはプロキシポリシーで処理し、DIRECTは直接接続し、REJECTはリクエストを拒否します。これらはルールのアクションであり、プロトコル名ではありません。大文字表記のPROXY、DIRECTと、Global Routingの画面にあるProxy、Directモードも区別してください。
[Rule]
DOMAIN,api.example.com,PROXY
DOMAIN-SUFFIX,example.com,DIRECT
FINAL,PROXY
接続情報・ルール・購入履歴
サブスクリプションは接続情報を更新し、設定ファイルは処理ルールをまとめ、App Storeの購入履歴はアプリの購入状況を確認します。それぞれ管理する内容が異なり、相互に置き換えることはできません。
更新可能なサーバー情報の入手方法
サブスクリプションはリモートURLからサーバー情報を取得・更新します。利用中のサービス提供元から入手してください。単一サーバーの共有リンクとは異なり、ルーティングルールが含まれるとは限りません。アクセス情報を含むことがあるため、URLを公開したり、誰かに共有したりしないでください。
SERVER
サーバー項目
サーバー項目はプロトコル、アドレス、ポート、認証情報などをまとめた接続設定です。一般にノードと呼ばれることもあります。項目名は識別用のラベルにすぎず、サーバーの所在地や利用可能性を示すものではありません。問題を調べる際は、具体的な設定と接続結果を確認してください。
.conf
セクションごとに記述する設定ファイル
設定ファイルでは、テキストをセクションごとに分けて設定を記述します。[General]は全体の動作、[Rule]はルーティングの順序を定義し、[Host]はローカルでの名前解決に使用できます。ファイルを読み込んでも、利用可能なサーバー情報が追加されるわけではありません。編集前にコピーを保存し、現在使用中のファイルか確認してください。
URL Rewrite
リクエストURLの処理
URL Rewriteは、条件に基づいてリクエストURLを指定どおりに処理します。プロキシ接続か直接接続かを選択するルールとは異なる機能です。暗号化されたリクエストでは、TLSや関連設定によって確認できる内容が制限されます。1つの書き換え式ですべてのリクエストを処理できるとは限りません。
iCloud
アプリデータの同期
iCloud同期は、対応デバイス間でアプリがサポートするデータを同期します。同期の対象範囲はアプリ内のオプションで確認してください。同期、バックアップ、購入の復元はそれぞれ異なる処理です。デバイスを変更する前に、設定ファイルのコピー、同期状況、App Storeで使用する購入アカウントを個別に確認してください。
App Storeの購入履歴
購入済み項目には、購入時に使用したApple IDに紐づくアプリの記録が表示され、デバイスの変更や再インストール時にShadowrocketを確認できます。サービス提供元のサブスクリプションの更新状況は含まれません。デバイスの互換性、システム要件、ユニバーサル購入への対応は、App Storeのページに記載された情報をご確認ください。
名前解決・ハンドシェイク・テスト時間
ドメインの名前解決、接続の確立、データの転送はそれぞれ異なる段階です。まず失敗している段階を特定し、該当する設定を変更しましょう。複数の項目を同時に変更するのは避けてください。
DNS
ドメインからIPアドレスへの名前解決
DNSはドメイン名をIPアドレスに変換し、後続の接続に利用します。名前解決に失敗するとWebページを開けないことがありますが、接続テストが正常でも起こり得ます。反対に、IPアドレスを取得できてもサーバーに到達できるとは限りません。引き続きルーティング、ポート、ハンドシェイクを確認してください。
dns-server
設定ファイルで指定するDNSサーバー
dns-serverは[General]でDNSサーバーを指定する設定項目です。systemはシステムが提供するDNS設定を使用することを示します。変更する前に、現在の設定が実際に適用されているか確認し、DNSリクエストが通るネットワーク経路も考慮してください。DNSサーバーのアドレスを変更しても、すべてのアクセス問題が解決するとは限りません。
TLS / SNI
通信の保護とサーバー名
TLSは通信を保護し、SNIはハンドシェイク時に接続先のサーバー名をサーバーへ伝える仕組みです。両者は同じものではありません。接続先アドレスと証明書の検証に使う名前が異なる場合があるため、サーバーの指定に従って入力してください。証明書エラーが出た場合は、まずサーバー名とデバイスの時刻を確認しましょう。
テスト結果で確認できること
レイテンシは特定のテスト段階にかかった時間、タイムアウトは制限時間内にテストを完了できなかった状態です。タイムアウトだけでサーバーの故障が確定するわけではありません。テスト方法、DNS、ネットワーク経路も結果に影響します。レイテンシが低くてもスループットが高いとは限らないため、速度の問題は実際の通信状況もあわせて確認してください。