Shadowrocket用語集
画面表示、プロトコル、ルール構文から用語を検索できます。英語表記はアプリ内の表記を維持し、日本語で用途や注意点を解説します。操作手順は使い方ガイドを、接続に問題がある場合はトラブルシューティングガイドをご覧ください。
INTERFACE & SWITCHES
画面表示とスイッチ
まず設定の場所を確認しましょう。似た英語表記でも、画面名、動作モード、ルールの処理結果をそれぞれ指す場合があります。
- Home
- サーバー項目やサブスクリプショングループの確認、接続先の選択、接続スイッチの操作を行う画面です。読み込み後、項目がここに表示されていることと、選択中の項目を確認してください。読み込みに成功しただけでは、パラメーターが保存されたことしか分からず、サーバーに接続できるとは限りません。接続スイッチをオンにした後、実際のリクエストで通信が想定どおりか確認します。
- Global Routing
- 通信全体の処理モードを設定し、Config、Proxy、Directから選択します。ルールが反映されない場合、すぐにルールを書き換えるのではなく、まずここを確認してください。モードが異なると、同じConfigでもリクエストの経路が変わることがあります。接続スイッチとは別の設定です。モードを選んだだけでは接続は確立しません。
- Config / Proxy / Direct
- 3つのモードは、Configに従う処理、全体をプロキシ経由にする処理、全体を直接接続にする処理に対応します。画面上の表記はConfig、Proxy、Directです。ルールで振り分ける場合はConfigを選びます。一時的にProxyやDirectへ切り替えると経路を比較できますが、テスト後は元の設定に戻してください。画面の先頭が大文字の表記と、ルール内のすべて大文字のアクションキーワードを混同しないようにしましょう。
- On Demand
- Configの条件に応じてVPN接続を開始する設定で、接続をいつ確立または再開するかを制御します。接続を開始する条件を扱うもので、特定のドメインに適用するルールを判定するものではありません。手動で接続をオフにしても再接続される場合は、接続スイッチを繰り返し操作するのではなく、On Demandの条件を確認してください。
- Add Server
- 登録済みサーバー情報を使って接続項目を追加する画面です。まずサーバー側と同じプロトコルを選び、対応する項目を入力します。アドレス、ポート、認証情報はそれぞれ別のパラメーターです。表示名だけで入力内容が正しいか判断することはできません。転送方式、TLS、その他のオプション項目も、ユーザーが持つサーバー情報に照らして確認してください。組み合わせを手当たり次第に試して設定するのは避けましょう。
- Connectivity Test
- 現在のネットワークと選択したテスト方法で、接続項目の疎通を確認します。結果が示すのは、そのテストで確認できた経路だけです。すべてのWebサイトや転送方式が正常だと証明するものではありません。テストに成功しても実際のリクエストが失敗する場合は、Global Routing、DNS、対象ルールも確認してください。タイムアウトしても、認証情報が必ず誤っているとは限りません。
PROTOCOLS
プロトコル
プロトコルはクライアントとサーバー間の通信方法を定めます。同じプロトコル名でもパラメーターが同じとは限りません。追加時には、ユーザーが持っている情報と項目ごとに照合してください。
- Shadowsocks
- クライアントとサーバー間でプロキシ通信を行うプロトコルです。接続にはサーバーのアドレス、ポート、暗号化方式、パスワードを一致させる必要があります。暗号化方式はプロトコルのパラメーターです。名前が似ているからといって置き換えないでください。既存の情報に追加の転送設定が含まれる場合は、それらも合わせて確認します。表示名を変更しても、パラメーターの不一致は解消されません。
- VMess
- 認証機能を備えたプロキシプロトコルです。接続情報には、ユーザー識別情報、転送方式、セキュリティ設定などが含まれます。サーバーアドレスに到達できることは、通信経路の一部が確立したことを示すにすぎません。認証や転送パラメーターが一致しなければ接続に失敗する場合があります。端末の時刻が大きくずれていると認証に影響することもあるため、他の項目を調べる前にシステム時刻を正しく設定してください。
- VLESS
- 軽量なプロキシプロトコルです。通信の保護方式は実際に設定されたセキュリティ層によって異なり、プロトコル名だけでは判断できません。ユーザー識別情報、転送方式、関連するセキュリティパラメーターをサーバー側と一致させる必要があります。読み込んだ項目で接続できない場合は、別のプロトコルに変更するのではなく、元のサーバー情報に戻って各項目を確認してください。
- Trojan
- 一般にTLSと組み合わせて使うプロキシプロトコルです。認証情報と証明書関連の設定は、いずれも接続の成否に影響します。サーバーアドレス、TLSで使う名前、証明書が対象とするドメイン名は、それぞれ異なる役割を持つ場合があります。別々に確認してください。証明書エラーが発生したら、名前、端末の時刻、サーバー証明書を確認します。検証を無効にする方法を通常の解決策にしないでください。
- Hysteria2
- QUICをベースにしたプロキシプロトコルで、基盤となる通信にUDPを使用します。そのため、ネットワークが該当するUDP通信を許可しているかが重要です。実際の使用感は、回線の輻輳、パケットロス、サーバーのリソース、設定にも左右されます。プロトコル名だけで速度は判断できません。通常のWebページは開けるのにこの項目がタイムアウトし続ける場合は、UDPで到達できるかも確認してください。
- WireGuard
- 鍵を使って暗号化トンネルを確立するVPNプロトコルです。設定には通常、ローカルアドレス、ピアの公開鍵、エンドポイント、許可するアドレス範囲が含まれます。トンネルが確立しても、すべての宛先へのルートが自動的に正しく設定されるわけではありません。ルート範囲とDNSも確認してください。秘密鍵は機密情報です。トラブル調査用の資料を共有する際は、秘密鍵や認証に使える情報を必ず隠してください。
RULE KEYWORDS
ルールキーワード
ルールは通常、上から順に照合され、最初に一致したルールで処理が決まります。キーワードは照合条件を示し、行末のアクションは一致後の処理を示します。
- DOMAIN
- 完全なドメイン名で照合します。単一のホスト名だけを指定する場合に適しています。たとえば、
DOMAIN,example.com,DIRECTはexample.comを対象とし、すべてのサブドメインには自動的に適用されません。別のAPIドメインや静的リソース用ドメインがある場合は、それぞれ個別に検討してください。メインページへのルールが一致したからといって、ページ内のすべてのリクエストが同じ経路になるとは限りません。
- DOMAIN-SUFFIX
- ドメインのサフィックスで照合し、指定したドメインとそのサブドメインを対象にします。たとえば、
DOMAIN-SUFFIX,example.com,PROXYはexample.comとそのサブドメインに適用できますが、example.comという文字列を含む任意のホスト名に一致するわけではありません。対象範囲の広いサフィックスルールを追加する前に、上位により具体的な例外ルールがないか確認してください。
- DOMAIN-KEYWORD
- ドメイン名に指定した文字列が含まれる場合に一致します。完全一致やサフィックスでの照合より、対象範囲が広くなることがあります。互いに関係のない複数のドメインに一致する可能性があるため、短い文字列をそのまま厳密な条件として使うのは避けましょう。意図しない振り分けが起きた場合は、広すぎるキーワードルールがないか、より具体的なルールより前に記述されていないかを確認してください。
- GEOIP
- IP地理情報データベース上の割り当て情報を基に宛先アドレスを照合します。結果はデータベースの内容や、名前解決で得られたIPアドレスによって異なります。端末のリアルタイムの位置情報ではなく、サーバーの物理的な所在地を正確に示すものでもありません。分散型サービスでは、ネットワークに応じて名前解決結果が変わることがあります。ドメイン名の印象だけでGEOIPルールが一致するかを判断しないでください。
- IP-CIDR / IP-CIDR6
- IPv4またはIPv6のアドレス範囲で照合します。スラッシュの後ろにあるプレフィックス長で対象範囲が決まります。たとえば、
IP-CIDR,192.168.0.0/16,DIRECTはIPv4のプライベートアドレス範囲を示し、単一のアドレスだけを対象とするものではありません。アドレス範囲のルールを作成する際はIPv6経路も考慮し、IPv4だけを確認してすべてのリクエストが対象だと思い込まないようにしましょう。
- FINAL
- それ以前のルールに一致しなかった場合に適用するフォールバックルールです。通常、ルール一覧の末尾に置きます。
FINAL,DIRECTは残りのリクエストを直接接続し、FINAL,PROXYはプロキシ経由にします。変更すると、個別ルールで対象になっていない多くのリクエストに影響します。既存のルールを理解してから、フォールバックのアクションを変更してください。
- PROXY / DIRECT / REJECT
- よく使われるルールのアクションキーワードで、プロキシ経由、直接接続、リクエスト拒否をそれぞれ示します。ルール末尾のPROXYは特定のサーバー名ではありません。実際の接続先は現在の選択とConfigによって異なります。DIRECTも、クライアントによる処理がすべて終了することを意味しません。そのリクエストの接続経路を示すもので、DNSなどの動作はConfigとあわせて確認する必要があります。
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,DIRECT
例のリクエストが先行する別のルールに一致した場合、後続の同種ルールがそのリクエストのアクションを決めることはありません。詳しい確認手順はルール振り分けと接続のトラブルシューティングをご覧ください。
SUBSCRIPTION & CONFIGURATION
サブスクリプションとConfig
サブスクリプションは接続項目を管理し、Configは通信の処理方法を管理します。読み込み、更新、選択、接続はそれぞれ別の操作です。結果を個別に確認してください。
- Subscribe
- サーバー項目をまとめて読み込み・更新するサブスクリプションです。リンクはユーザーが利用しているサービスの提供元から取得します。アカウント識別用の機密情報が含まれる場合があるため、認証情報として管理し、URL全体をスクリーンショットや公開のトラブル調査記録に載せないでください。読み込みに成功したことから分かるのは、クライアントが内容を取得して認識したことまでです。その後、接続項目を選択し、テストして実際に接続できるか確認します。
- サーバー項目
- クライアントに保存される接続パラメーター一式です。通常、サーバーアドレス、ポート、プロトコル、認証情報のほか、転送方式やTLSの設定が含まれることもあります。表示名は項目を見分けるためのラベルにすぎず、サーバーの所在地、速度、利用可否を示すものではありません。サブスクリプションから作成された項目を変更する前に記録を残してください。後のサブスクリプション更新で、該当するパラメーターが置き換わる場合があります。
- Config
- 画面名としては、ルールやネットワーク関連設定を管理するConfigファイルを指します。Global Routingの選択肢としては、現在のConfigに従ってリクエストを処理するモードを示します。Configファイルとサーバーサブスクリプションは用途が異なり、一方を更新してももう一方が更新されるわけではありません。ファイルを読み込んだだけでは適用されません。トラブル調査では、現在どのファイルが実際に使われているかを確認してください。
- サブスクリプションの更新
- サブスクリプションURLに再度リクエストし、返された内容に基づいて該当する項目を更新する操作です。App StoreからShadowrocketをアップデートする操作とは別です。更新に失敗する原因は、URLへのアクセス、サーバーの応答、内容の認識などの段階で異なります。既存のグループをすぐに削除せず、段階ごとに原因を調べてください。更新後は選択中の項目を再確認し、元の項目が削除されていないか、パラメーターが変わっていないかに注意します。
DNS & NETWORK
DNSとネットワーク
ドメイン名の名前解決、サーバーへの接続、宛先へのアクセスを分けて確認しましょう。いずれか1つに成功しても、ほかの段階が正常とは限りません。
- DNS
- ドメイン名をIPアドレスなどのレコードに変換するシステムで、多くのネットワークリクエストは接続前に名前解決を行います。名前解決に失敗すると、リクエストは宛先への接続段階に進んでいない可能性があります。名前解決に成功しても、ポートに到達できない、認証に失敗する、宛先サービスに問題があるといったケースは残ります。「名前解決の結果がない」状態と「結果はあるが接続できない」状態を区別してください。確認すべき設定が異なります。
- システムDNS / カスタムDNS
- システムDNSは通常、現在のネットワークが提供する名前解決設定を使います。カスタムDNSはユーザーが明示的に設定したリゾルバーです。実際に使われる名前解決経路は、Configファイル、ドメインルール、ネットワーク環境にも左右されるため、入力したアドレスだけでは判断できません。リゾルバーを変更した後は同じ宛先で再テストし、キャッシュに以前の結果が残っていないかも考慮してください。
- DNS over HTTPS
- DNSクエリをHTTPSで送信する方式で、DoHと略されます。変更されるのは名前解決リクエストの転送方式であり、プロキシプロトコルではありません。名前解決先のエンドポイントにも到達できる必要があり、エンドポイントのドメイン名解決と接続経路も正しく設定されている必要があります。DNS over HTTPSに変更しても、サーバー認証、ルール選択、接続先Webサイトの問題は自動的には解決しません。
- 遅延 / タイムアウト
- 遅延は特定のテストで応答を待つ時間を示します。意味はテスト方法によって異なります。タイムアウトは、制限時間内に期待した応答が得られなかった状態です。遅延が小さくても、継続的な通信速度が速いとは限らず、すべての宛先にアクセスできることも保証されません。結果を比較する際はテスト方法、ネットワーク、宛先を揃えてください。条件が異なる数値は、通常そのまま比較できません。
- TCP / UDP
- よく使われる2種類のトランスポート層プロトコルです。TCPは順序が保証された信頼性の高いバイトストリームを提供し、UDPはデータグラムを送信します。信頼性を確保する仕組みは上位プロトコルで実装できます。TCPのテストに成功しても、同じネットワークでUDP通信が使えるとは限りません。特にQUICなどのトランスポートを使う場合は区別が必要です。トラブル調査では、使用中のプロトコルがどの通信方式に依存するかを確認してから、テスト対象を決めてください。