製品の説明
Shadowrocket は iOS / iPadOS 上のルールベース・プロキシクライアントです。
アプリはシステムの VPN インタフェースで送信を受け、ルールに従い各接続を直通(DIRECT)、プロキシ(PROXY)、拒否(REJECT)に判定します。ノード、購読、ルールは自分で取り込みます。アプリはサーバーを提供せず、アカウントシステムもありません。
下の図は振り分け結果です。中央のスイッチはアプリ内の接続操作に対応し、タップで切り替えます。オブジェクトと読み取りは マニュアル から各章へ入ります。
DIRECT · 直通
プロキシノードを経由しない
DIRECT に当たった要求はシステムの元経路で出ます。たとえば直通に書いたホストや、Apple のシステムサービスです。遅延と可用性はローカルネットに依存し、ノードのトラフィックは消費しません。
PROXY · プロキシ
設定済みノードへ転送
PROXY に当たった要求は、本アプリが今選んでいるサーバーへ送ります。プロトコル、暗号、トランスポートはそのノードの構成が決め、クライアントが単独で一組のグローバルプロトコルを指定するのではありません。
—→—
概要
動き方
Shadowrocket は iPhone と iPad で動き、システム要件は iOS 13.0 以降です。初めて接続を開くとき、システムは VPN 構成の追加を求めます。iOS が Network Extension に行う標準の認可であり、第三者ログインではありません。
接続を開くと、大半のアプリの送信 TCP / UDP がトンネルに入ります。クライアントは先に現在の構成ファイルのルールで照合します。DIRECT ならシステムの元経路へ戻し、PROXY なら現在のノードへ送り、REJECT なら止めます。どの条件にも当たらないときは、ルール末尾の FINAL がデフォルトポリシーを決めます。
ドメイン照合は通常、DNS の結果、HTTP ホスト名、または TLS の Server Name Indication に依ります。IP と GeoIP 照合は宛先に依ります。ルールはファイル内の順で上から実行され、先に当たった項目が効き、後ろは計算しません。
構成、ノード、ルールは端末に保存されます。iCloud を許すと、同じ Apple ID の端末間で同期できます。開発者サーバーはこれらの内容を預かりません。
App Store の価格は 2.99 ドル、一度の買い切りです。プロキシサーバーは自分で用意します。一部の地域ストアには並んでいません。
- レコード
- 一覧で選べる出口 1 本。アドレス、プロトコル、認証を含みます。
- コンテナ
- 購読: URL だけ保存し、子レコードは更新で書き込みます。
- ルール
- 「条件 → ポリシー」の順序付きリスト。条件はドメイン、IP 範囲、GeoIP、プロセスなど。ポリシーは DIRECT、PROXY、REJECT です。
- Config
- 今効いているルールセットと関連オプション。構成は複数持て、接続時に使うのは選ばれている 1 つだけです。
ドキュメント
画面で読む。
ホームは製品が何であるかだけを述べます。画面上のオブジェクトは章ごとに分けて書きます。各章の入口はトップバー、読む順はマニュアルです。
ルール照合
ドメインを上から順に照合
DOMAIN-SUFFIXapple.comDIRECTDOMAIN-SUFFIXicloud.comDIRECTDOMAIN-SUFFIXyahoo.co.jpDIRECTDOMAIN-SUFFIXgoogle.co.jpDIRECTDOMAIN-KEYWORDrakutenDIRECTDOMAIN-SUFFIXnetflix.comPROXYDOMAIN-SUFFIXgithub.comPROXYDOMAIN-SUFFIXyoutube.comPROXYDOMAIN-SUFFIXwikipedia.orgPROXYGEOIPCNDIRECTFINAL—PROXY
GEOIP は端末上の IP データベースに依存し、このページでは模擬できません。FINAL はどの条件にも当たらないときのデフォルトポリシーです。
照合結果
PROXY
DOMAIN-SUFFIX, github.com
ポリシー: プロキシノード経由で転送します。
ルール
よく使う条件タイプ
完全な構文はアプリ内ドキュメントとルールファイルに従います。下は実構成で最もよく出る種類です。ポリシー列は DIRECT、PROXY のほか REJECT も書けます。
- DOMAIN
- ホスト名が完全一致したときに当たります。例:
DOMAIN,example.com,PROXYは example.com だけに当たり、www.example.com には当たりません。 - DOMAIN-SUFFIX
- ホスト名がそのサフィックスと等しいか、「.サフィックス」で終わるときに当たります。例: apple.com は apple.com と www.apple.com に当たります。
- DOMAIN-KEYWORD
- ホスト名がその文字列を含めば当たります。範囲はサフィックスより広く、誤爆も多いです。サフィックスでまとめられない一群のドメイン向けです。
- IP-CIDR
- 宛先 IPv4 網段で照合します。例:
IP-CIDR,172.16.0.0/12,DIRECT。IPv6 は IP-CIDR6 を使います。 - GEOIP
- 宛先 IP の地理ライブラリ上の分類で照合します。第 2 欄は ISO 国コードで、たとえば
GEOIP,CN,DIRECTやGEOIP,JP,DIRECTです。精度は端末上のデータベース版に依ります。 - FINAL
- ファイルでは末尾に置くべきです。前の条件がすべて外れたときに、ここのポリシーを使います。FINAL が欠けているとき、未照合トラフィックの挙動は現在の構成に従い、暗黙のデフォルトに頼らないでください。
ルールは手書きも、他人が保守するリストの購読取り込みもできます。第三者ルールを取り込む前に、ライセンスと更新方法を読み、FINAL と GEOIP の二行が自分の想定に合うかを確認してください。たとえばある国コードを DIRECT、残りを PROXY にするのはよくある組み合わせであり、唯一の正しい組み合わせではありません。
設定の「開いたときに更新」「バックグラウンド更新」は、購読型のノードまたはルールにだけ効きます。バックグラウンド更新には、システムの「設定 → 一般 → App のバックグラウンド更新」で Shadowrocket を許す必要があります。更新が失敗すると、一覧は直前に成功した結果のまま残り、自動では空になりません。
プロトコル
対応プロトコル
どのプロトコルを使うかはノード提供者が決めます。クライアントは同じアプリ内に複数プロトコルのノードを保存でき、接続時に使うのは今選んでいる 1 本だけです。トランスポート(WebSocket、gRPC、QUIC など)はノード構成の一部であり、サーバー側と一致させる必要があります。
-
Shadowsocks
軽いプロキシプロトコルです。主なパラメータはアドレス、ポート、暗号、パスワードです。既存ノードが多く、切り分けではこれらの欄がサーバー側と一致するかを先に見てください。
-
Trojan
TLS 上でプロキシを運びます。クライアントが見るのは TLS ハンドシェイク一度です。証明書と SNI はサーバー側の要求どおりに埋めないと、ハンドシェイクは失敗します。
-
VLESS
V2Ray 系の軽いプロトコルです。認証情報を重い暗号の殻に入れず、転送オーバーヘッドは通常 VMess より低いです。UUID とフロー制御のオプションはサーバー側と同じである必要があります。
-
VMess
V2Ray の暗号転送プロトコルで、TCP、WebSocket、gRPC などと組み合わせられます。alterId などの歴史的な欄は、新しいノードでは多くが 0 です。古い構成を新しいサーバーへそのまま当てないでください。
-
HTTP / SOCKS5
標準のプロキシインタフェースです。LAN ゲートウェイ、開発デバッグ、この種のプロトコルだけを出す入口でよく使います。複雑な偽装は通常担わず、認証方法はサーバー側に従います。
-
その他
バージョンが進むと WireGuard、Snell なども出ることがあります。使えるかは現在の App Store 版と、ノードが対応パラメータを出すかに依ります。追加前に「+」一覧でタイプがあるかを確認してください。
機能
含む
- ✓ルールに基づく振り分け(直通 / プロキシ / 拒否)
- ✓購読 URL、二次元コード、手での逐条追加
- ✓複数プロトコルのノード並存。接続時は現在の項目を使う
- ✓遅延テスト、トラフィック統計(Data)
- ✓URL リライト。任意の HTTPS 復号(プロファイルのインストールが必要)
- ✓構成は端末に保存。任意で iCloud を自分の端末へ同期
範囲
含まない
- ×プロキシノードの提供・販売はしない
- ×アプリ内アカウントなし。構成は開発者サーバーへ上がらない
- ×アプリ内サブスクなし。ノードサービスの料金は別途
- ×ノードの選定、構築、保守は担当しない
- ×システム級ファイアウォールではなく、他の App のバイナリも変えられない
- ×Android / Windows / macOS の公式クライアントはない
制限
システムと使い方の境界
Shadowrocket は iOS の VPN 枠の上に立つため、その枠の制限を継承します。一部のシステムプロセス、一部の App は「VPN 接続中」を検知するか、独自の経路を使います。クライアントはすべてのソフトをトンネルに入れさせることはできません。
低電力モード、システムのバックグラウンド回収、「App のバックグラウンド更新」を切る、VPN のオンデマンド関連を切ると、トンネルは切れ得ます。機内モード、Wi-Fi / セルラー切替、ポータル認証(Captive Portal)も短い中断を起こし、再接続または自動復帰を待ちます。
HTTPS 復号(MITM)はユーザが信頼するプロファイルを入れ、HTTPS の中身を見る・書き換えるために使います。その端末の証明書セキュリティモデルを下げます。必要なときだけ開き、使い終わったらプロファイルを外してください。普通の振り分け、ウェブ閲覧、API 利用はこの項に依存しません。
IPv6、偽ドメイン(fake-ip)、実 IP の振り分け結果は一致しないことがあります。IPv4 の CIDR だけ設定し、宛先が IPv6 だと、ルールは FINAL に落ちることがあります。二種類のアドレスを同時に扱うなら、ルールに IP-CIDR6 を足すか、設定で不要な IP 版を切ってください。
アプリは通信事業者や対象サイトのアクセス方針を破れず、失効したノードを使えるようにもできません。接続品質はローカルネット、ノード回線、対向サービスが共同で決めます。本ページはノードを提供せず、第三者購読サービスも評価しません。
仕様
製品仕様
- 別名
- 小火箭
- プラットフォーム
- iOS 13.0 以降 · iPadOS
- 価格
- USD 2.99 · App Store 一度の買い切り · IAP なし
- 配信
- App Store · 一部地域は未掲載(中国本土を含む)
- インタフェース
- iOS Network Extension(システム VPN)
- Config
- 端末に保存。任意で iCloud を自分の端末間で同期
- 開発者
- Shadow Launch Technology Limited
アプリの入手は ストア を見てください。ファミリー共有が使えるかは、そのときの App Store 製品ページの表記に従います。