製品の説明

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 つだけです。

ドキュメント

画面で読む。

ホームは製品が何であるかだけを述べます。画面上のオブジェクトは章ごとに分けて書きます。各章の入口はトップバー、読む順はマニュアルです。

  1. 01マニュアル · 読む順とオブジェクトの役割
  2. 02トンネル · スイッチと Config / Proxy / Direct
  3. 03オブジェクト · レコードとコンテナ
  4. 04ルール · リスト、順番、FINAL
  5. 05Data · 四つの信号
  6. 06システム · iOS VPN の境界
  7. 07Config · 複数ファイルと iCloud
  8. 08リライト · 振り分けとは別物
  9. 09DNS · 二つの DNS と IPv6
  10. 10ストア · App Store
  11. 11ブログ · 画面上の現象を開いて書く

ルール照合

ドメインを上から順に照合

ドメインを入れると、最初に当たるルールが決まります。見本のルールセットであり、端末上の実構成とは無関係です。/ で入力欄にフォーカスします。

  1. DOMAIN-SUFFIXapple.comDIRECT
  2. DOMAIN-SUFFIXicloud.comDIRECT
  3. DOMAIN-SUFFIXyahoo.co.jpDIRECT
  4. DOMAIN-SUFFIXgoogle.co.jpDIRECT
  5. DOMAIN-KEYWORDrakutenDIRECT
  6. DOMAIN-SUFFIXnetflix.comPROXY
  7. DOMAIN-SUFFIXgithub.comPROXY
  8. DOMAIN-SUFFIXyoutube.comPROXY
  9. DOMAIN-SUFFIXwikipedia.orgPROXY
  10. GEOIPCNDIRECT
  11. FINALPROXY

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,DIRECTGEOIP,JP,DIRECT です。精度は端末上のデータベース版に依ります。
FINAL
ファイルでは末尾に置くべきです。前の条件がすべて外れたときに、ここのポリシーを使います。FINAL が欠けているとき、未照合トラフィックの挙動は現在の構成に従い、暗黙のデフォルトに頼らないでください。

ルールは手書きも、他人が保守するリストの購読取り込みもできます。第三者ルールを取り込む前に、ライセンスと更新方法を読み、FINAL と GEOIP の二行が自分の想定に合うかを確認してください。たとえばある国コードを DIRECT、残りを PROXY にするのはよくある組み合わせであり、唯一の正しい組み合わせではありません。

設定の「開いたときに更新」「バックグラウンド更新」は、購読型のノードまたはルールにだけ効きます。バックグラウンド更新には、システムの「設定 → 一般 → App のバックグラウンド更新」で Shadowrocket を許す必要があります。更新が失敗すると、一覧は直前に成功した結果のまま残り、自動では空になりません。

プロトコル

対応プロトコル

どのプロトコルを使うかはノード提供者が決めます。クライアントは同じアプリ内に複数プロトコルのノードを保存でき、接続時に使うのは今選んでいる 1 本だけです。トランスポート(WebSocket、gRPC、QUIC など)はノード構成の一部であり、サーバー側と一致させる必要があります。

機能

含む

  • ルールに基づく振り分け(直通 / プロキシ / 拒否)
  • 購読 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 版を切ってください。

アプリは通信事業者や対象サイトのアクセス方針を破れず、失効したノードを使えるようにもできません。接続品質はローカルネット、ノード回線、対向サービスが共同で決めます。本ページはノードを提供せず、第三者購読サービスも評価しません。

仕様

製品仕様

SHADOWROCKET PROXY UTILITY
別名
小火箭
プラットフォーム
iOS 13.0 以降 · iPadOS
価格
USD 2.99 · App Store 一度の買い切り · IAP なし
配信
App Store · 一部地域は未掲載(中国本土を含む)
インタフェース
iOS Network Extension(システム VPN)
Config
端末に保存。任意で iCloud を自分の端末間で同期
開発者
Shadow Launch Technology Limited
$2.99 買い切り App Store

アプリの入手は ストア を見てください。ファミリー共有が使えるかは、そのときの App Store 製品ページの表記に従います。