この記事では、Shadowrocketを初めて使うiPhone・iPadユーザー向けに、「既存の設定を準備する、読み込む、ルーティングを選ぶ、接続する、確認する、トラブルを切り分ける」の順で10の疑問に答えます。基本設定を自分で完了し、問題が設定・DNS・ローカルネットワーク・リモート回線のどこにあるか判断できるようになります。
1. 始め方:既存ノードの追加と購読の読み込み
質問1:初めてShadowrocketを開く前に、何を準備すればよいですか?
ShadowrocketはAppleプラットフォーム向けの有料クライアントで、入手先はApp Storeのみです。購入前に、開発者名がShadow Launch Technology Limitedであることと、アプリIDが932747118であることを確認できます。主な利用端末はiPhoneとiPadです。Mac、Apple TV、Apple Visionとの互換性およびシステム要件は、App Storeの掲載内容に従ってください。
クライアントとネットワーク回線は別のものです。Shadowrocketを買い切りで購入しても、サーバーアドレス、ポート、パスワード、購読URLが自動的に用意されるわけではありません。設定を始める前に、利用中のサービス提供元から取得した接続パラメータまたは購読URLを準備してください。
アプリを確認
App StoreからShadowrocketの製品ページを開き、開発者がShadow Launch Technology Limitedであることと、URLにid932747118が含まれていることを確認します。
パラメータを準備
既存の設定で使われているプロトコルが、Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardのどれかを確認し、サービス提供元が指定した項目をすべて記録します。
読み込み方法を選択
単一のサーバーはHome右上の「+」から手動入力できます。サービス提供元がまとめて管理する複数のサーバーはSubscribeを使用できます。
初回接続を完了
保存後にHomeへ戻り、項目を1つ選択して上部の接続スイッチをオンにします。システムの案内が表示されたら、VPN構成の追加を許可してください。
質問2:既存のノードを1つ手動で追加するには?
Homeを開き、右上の「+」をタップします。まずTypeで、既存のパラメータと完全に一致するプロトコルを選択してください。続いてAddress、Port、Password、またはプロトコルに対応する認証項目を入力します。ポートは1~65535の整数である必要がありますが、具体的な値は既存のサービス設定で決まるため、プロトコル名から推測してはいけません。
VMess、VLESS、Trojanなどの設定には、TLS、SNI、Transport、Path、WebSocket Hostが含まれる場合があります。WireGuardでは通常、Private Key、Public Key、Address、DNS、Peer Endpointを設定します。サーバーアドレスとポートだけでは不十分で、1項目でも一致しないとタイムアウトやハンドシェイク失敗になることがあります。
- Type:元の設定と同じプロトコルを指定します。たとえば、ShadowsocksとTrojanは入れ替えられません。
- Address:ドメイン名またはIPアドレスを入力し、余分な空白を付けないでください。
- Port:サービス設定で指定されたポートを入力します。Webページのポートを接続ポートとして入力しないでください。
- Remarks:地域、用途、回線名などを入力できます。端末上で識別するためだけの項目で、接続には影響しません。
- TLSとSNI:既存の設定に従って有効化・入力してください。名前が間違っていると、通常はハンドシェイクに失敗します。
2. 購読の読み込み・更新と失敗原因の確認
質問3:既存の購読URLを追加するには?
Homeで右上の「+」をタップし、TypeをSubscribeに設定します。URLに自分の完全な購読URLを貼り付け、識別しやすいRemarkを入力してください。形式の例はhttps://example.com/sub?token=xxxxです。example.comとxxxxは説明用の仮の値です。
保存後にHomeへ戻ると、通常は購読グループの内容取得が始まります。リストからその購読を更新することもできます。更新に成功すると、グループ内にサービス提供元から返されたサーバー項目が表示されます。項目を選択しただけでは接続されないため、Homeの接続スイッチもオンにしてください。
Type: Subscribe
URL: https://example.com/sub?token=xxxx
Remark: 既存の購読
更新の順序: 保存 → Homeに戻る → 購読を更新 → 項目を選択
質問4:購読の更新がタイムアウトする、または項目が表示されない場合は?
まずURLが完全か確認します。特に、疑問符以降のtokenパラメータがコピー時に欠落していないか確認してください。ブラウザでURLを開けても、Shadowrocketが認識できる購読形式が返るとは限りません。ログイン画面、空白の本文、エラーコードが返る場合は、サービス提供元から案内された元のURLを確認します。
現在のネットワークから購読URLへ直接アクセスできない場合は、まず動作する設定で接続してから更新を試します。SettingsにあるSubscribe更新関連の項目で、現在のProxy経由で取得するかどうかを指定できます。ただし、この設定は既存の接続自体が利用できる場合にのみ役立ちます。
購読の更新が毎回タイムアウトする場合
Wi-Fiとモバイルデータ通信を一度切り替え、URLが完全か確認します。利用できる接続がある場合は、接続を有効にしてから更新を再試行し、SettingsにあるSubscribeの更新経路設定も確認してください。
更新は成功したのにサーバーが表示されない場合
返された内容が空のグループではないことと、サービス提供元が購読URLを変更していないことを確認します。削除する前に元のRemarkを残し、同名の複数グループを混同しないようにしてください。
更新後も古い項目が残っている場合
まず操作している購読グループが正しいか確認します。購読の更新は通常、リモート側の内容と同期する仕組みであり、手動追加した独立した項目が別の購読によって自動管理されることはありません。
貼り付け後に形式エラーが表示される場合
URLの先頭と末尾にある空白や改行を削除し、完全なHTTPS URLであることを確認します。サービス提供元のホームページ、注文ページ、説明文を購読URLとして入力しないでください。
毎回手動で更新する必要がありますか?
SettingsでSubscribe関連の更新項目を確認できます。ただし、実際に更新できるかどうかは、購読URLへの到達性とリモート側から返される内容に左右されます。
3. Global Routingの選び方と、接続スイッチがグレーになる場合
質問5:Global RoutingのConfig、Proxy、Direct、Sceneにはどのような違いがありますか?
Global Routingは、通信をどのように処理するかを決めます。Configは現在の設定ファイルにあるルールを順番に照合し、Proxyは現在のプロキシ方針を通信全体に適用し、Directは直接接続し、Sceneは設定済みのネットワークシーンに応じて方針を切り替えます。日常的にルール設定を使う場合は、通常Configから始めます。
Configの結果は、ルールの順序と最後のルールに左右されます。よく使われるキーワードにはDOMAIN-SUFFIX、GEOIP、IP-CIDR、FINALがあります。Shadowrocketは上から順に照合し、一致した行に指定された方針を実行します。前のルールに一致しなかった通信はFINALで処理されます。
Config
おすすめ現在のConfigにあるルールに従ってProxy、Direct、Rejectなどの方針を決めるため、ドメインやIP範囲ごとに異なる経路を使えます。
適した用途: 日常的に既存のルール設定を使う場合
Proxy
ルール判定を省略し、通信を現在選択しているプロキシ項目へ一律に渡します。問題がルール照合にあるかを確認する際に便利です。
適した用途: プロキシの接続性を一時的に確認する場合
Direct
通信を現在のプロキシ項目を経由せず、直接接続します。誤ってこれを選ぶと、接続スイッチがオンでも期待した経路の変化が見られないことがあります。
適した用途: ローカルの直接接続結果と比較する場合
Scene
あらかじめ設定したWi-Fiやモバイルデータ通信などのシーンに応じて方針を適用します。使用前にシーンの条件設定を完了してください。
適した用途: 固定されたネットワーク環境で自動切り替えする場合
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY
上記のルールは構文の説明用です。1行目はドメインサフィックスで照合し、2行目は指定したプライベートアドレス範囲をDirectに設定し、3行目はGEOIPデータで照合し、最後の行はそれまで一致しなかった接続を処理します。実際の方針名は、現在のConfigに存在する方針と一致している必要があります。
質問6:Homeの接続スイッチがグレーになる、またはオンにできない場合は?
まず、Homeのリストで有効なサーバー項目を1つ選択しているか確認します。購読グループ名だけで選択できる項目がない場合、手動設定に必須項目がない場合、または選択中の項目が購読更新で削除された場合は、先に設定を修正してから接続を試してください。
初めて接続をオンにすると、システムからVPN構成の追加を求められます。システムの確認を完了してからShadowrocketに戻ってください。以前の接続状態が正常に終了していない場合は、いったんスイッチをオフにして数秒待ち、もう一度オンにします。それでも反応しない場合は、ローカルネットワークを順番に切り替えてからアプリを再度開いてください。
選択項目を確認
Homeに戻り、サーバー項目の前に明確な選択状態があることを確認します。空の購読グループだけを選択していないか注意してください。
項目を確認
項目を開き、Address、Port、認証項目、TLS、SNI、Transportなどのプロトコルパラメータが完全か確認します。
システムの確認を完了
初回接続時にシステムに表示されるVPN構成の確認を完了し、その後Homeに戻ってスイッチを操作します。
接続をリセット
現在の接続をオフにして数秒待ってから再度オンにします。その後、Wi-Fiとモバイルデータ通信の両方でテストし、特定のネットワークによる制限を切り分けます。
Logを確認
関連する診断またはLogページを開き、DNS failure、timeout、TLS handshakeなど、どの段階でエラーが発生しているかを確認します。
4. 接続済みと表示された後、通信が想定どおり処理されているか確認する
質問7:接続スイッチがオンになった後、どうすれば有効性を確認できますか?
スイッチの色だけで判断しないでください。まずHomeのConnectivity Testで基本的な接続性を確認し、次にまだキャッシュされていないWebページを開いて結果を確認します。Global RoutingがConfigの場合は、テスト対象のドメインが実際にどのルールへ一致したかも確認してください。
続いてDataまたはLogを確認します。Dataでは、接続中にアップロードとダウンロードの通信量が発生しているか確認できます。Logには、ドメイン解決、ルール照合、宛先アドレス、接続エラーが表示されます。ページを開けてもLogがDirectを示している場合は、プロトコルパラメータを変更し続けるのではなく、ルールを確認してください。
- 第1層:Homeで正しい項目を選択しているか、接続スイッチがオンのままか。
- 第2層:Connectivity Testで接続を確立できるか、遅延が継続的にタイムアウトしていないか。
- 第3層:Global Routingが想定した方式か、Configに正しいルールが読み込まれているか。
- 第4層:Logで対象ドメインがProxy、Direct、Rejectのどれに一致したか。
- 第5層:Dataに実際のアクセスと一致するアップロード・ダウンロードの変化があるか。
質問8:遅延値は表示されるのにWebページが開けない場合、どこを確認すればよいですか?
遅延テストで確認できるのは、ある探測手順が応答を受け取ったことだけです。DNS解決、TLSハンドシェイク、対象Webページへのリクエストがすべて成功したことを証明するものではありません。リスト上の遅延は正常でもLogにDNS failureが出ることがあります。また、TCP接続後にTLSやTransportのパラメータ不一致で切断される場合もあります。
切り分けでは、まずDirectでローカルネットワークの状態を比較し、次にProxyで一時的にConfigルールを迂回します。DirectではアクセスできるのにProxyで失敗する場合は、現在のサーバーとプロトコル項目を重点的に確認します。ProxyではアクセスできるのにConfigで失敗する場合は、ルールの順序、方針名、FINALを確認します。両方とも失敗する場合は、ローカルネットワークとDNSを確認してください。
| 実際の症状 | 優先して確認する項目 | 次の手順 |
|---|---|---|
| 遅延が継続的にtimeoutになる | Address、Port、ローカルネットワーク | Wi-Fiとモバイルデータ通信を切り替え、サービス設定と比較する |
| 遅延は正常だがDNS failureが表示される | SettingsのDNS設定 | 既知の正常な設定に戻し、テスト対象ドメインを再度解決する |
| Proxyは使えるがConfigは使えない | ルールの順序と方針名 | Logで実際に一致したルールを確認する |
| ハンドシェイク直後に切断される | TLS、SNI、Transport、認証項目 | 元の設定と1項目ずつ照合し、プロトコルのパラメータを混用しない |
5. On Demandの使い方と、設定ミスの切り分け方
質問9:On Demandとは何ですか?なぜ有効にすると自動接続するのですか?
On Demandは、ネットワーク条件に応じて接続を開始する機能です。入口はSettings → On Demandです。有効にする前に、手動接続が安定して使えることを確認し、その後Wi-Fiやモバイルデータ通信の条件を追加してください。そうしないと、自動接続によって元の設定ミスが繰り返し現れるだけです。
設定後は3つの状態をそれぞれテストします。指定したWi-Fiに接続する、Wi-Fiから離れてモバイルデータ通信へ切り替える、画面ロック後に再度スリープ解除する、の3つです。条件に応じてHomeのスイッチとシステムの接続状態が変化するか確認します。動作が想定と逆の場合は、条件が「一致時に接続」なのか「一致時に切断」なのかを確認してください。
まず手動で確認
Homeでサーバーを選択し、Configまたは必要なGlobal Routing方式を使います。WebページへのアクセスとLogが正常であることを確認してください。
設定を開く
Settings → On Demandの順に開き、既存の古い条件がないか確認します。複数の条件が逆の結果を生まないようにしてください。
条件を追加
実際の用途に合わせてWi-Fiまたはモバイルデータ通信の条件を設定し、一致時に接続するのか切断するのかを明確に指定します。
ネットワークを切り替える
指定したWi-Fiとモバイルデータ通信を切り替え、システムのネットワーク切り替えが完了してから接続状態を確認します。
スリープ解除を確認
画面をロックしてから再度スリープ解除し、On Demandが古い条件によって接続と切断を繰り返していないか確認します。
質問10:設定が多い場合、問題のある層をすばやく見つけるには?
「最小限の動作設定」で切り分けます。まず、パラメータが明確なサーバーを1つだけ残し、Global Routingを一時的にProxyに設定し、On Demandをオフにします。Sceneや複雑なルールが同時に影響しないようにしてください。基本接続を確認した後、Config、DNSの調整、自動接続条件を1つずつ戻します。
Logは時系列で読みます。解析エラーは対象接続を確立する前に発生します。timeoutではネットワーク到達性、アドレス、ポートを同時に確認します。TLS handshakeエラーではTLS、SNI、認証情報を確認します。ルールの一致ミスではConfigに戻り、DOMAIN-SUFFIX、GEOIP、IP-CIDR、FINALの並びを確認してください。
先にプロトコルを変えるべきですか、それともLogを確認すべきですか?
先にLogを確認します。プロトコルは既存のサービス設定によって決まるため、問題の切り分け目的で勝手に変更しないでください。timeout、DNS failure、TLS handshakeなどの症状から該当項目を特定するほうが効果的です。
Configを読み込んだ後、すべてDirectになる場合
Global Routingで本当にConfigが選択されているか確認し、ルールの前半に範囲が広すぎるDirectルールがないか、FINALの指す方針が何かを確認します。
Wi-Fiでは使えるのに、モバイルデータ通信ではタイムアウトする場合
同じサーバーと同じGlobal Routing方式を維持して比較し、On Demandがモバイルデータ通信に別の動作を設定していないか確認します。
購読を更新した後、元の設定が使えなくなった場合
更新後に有効な項目を選び直し、方針グループが参照する名前がまだ存在するか確認します。サービス提供元から返されたプロトコル項目が完全かどうかも確認してください。
以上の10項目を確認したら、日常の状態を次のように固定できます。Homeで有効な項目を選び、検証済みのConfigをGlobal Routingで使用し、必要に応じて購読を更新し、On Demandは手動接続が安定してから有効にします。問題が起きたら、現在のネットワーク、選択中の項目、ルーティング方式、Logのキーワードを記録してから、1項目ずつ調整してください。