この記事は、利用中のサービス提供元からサブスクリプション情報やサーバー設定を受け取っている方向けです。サーバーサブスクリプションとリモート設定ファイルの違いを確認し、Subscribe、Add Server、QRコード、クリップボードの4つの方法でインポートします。最後に更新結果、Global Routing、Connectivity Testを確認します。どの方法でも更新可能なサブスクリプショングループが作成されるとは限りません。また、インポートが成功しても接続が完了したとは限りません。
サーバーサブスクリプションとConfig設定を区別する
ShadowrocketのHomeは主にサーバーの選択、サーバーサブスクリプションの管理、接続に使います。Configではルール設定ファイルを管理し、Settingsではアプリの設定を調整します。サーバーサブスクリプションには接続先の情報が含まれ、ルール設定は通信の振り分け方法を決めます。HTTPSアドレスというだけで、両者を同じ種類のデータと判断しないでください。
ConfigのSubscribeはリモート設定ファイル用です。サービス提供元からサーバーサブスクリプションのURLを受け取っている場合は、Home右上の「+」からAdd Serverを開き、TypeをSubscribeに設定します。サーバーサブスクリプションをルール設定として読み込むと、解析に失敗したり、読み込み後に目的のサーバー一覧が表示されなかったりすることがあります。
サーバーサブスクリプション
- 追加先
- Home → + → Type → Subscribe
- 内容
- 複数のサーバー接続情報
- URLの例
https://example.com/sub?token=xxxx- 確認場所
- Homeのサブスクリプショングループとその項目
URLは形式の例です。インポートには、利用中の有効なURLを使ってください。
リモートルール設定
- 追加先
- Config → Subscribe
- 内容
- [General]や[Rule]などのセクションを含む設定テキスト
- URLの例
https://example.com/profile.conf- 確認場所
- Configで保存し、使用する設定ファイル
設定によってDNS、ルール、ポリシー参照が変わる場合があります。適用前に内容を確認してください。
形式を判断するときは、まず提供元によるリンクの用途説明を確認し、次にリンク先の応答内容を確かめてください。ファイルの拡張子だけで判断しないでください。HTTPSアドレスでも、ログイン画面、エラーメッセージ、期限切れの通知が返されることがあり、サーバーサブスクリプションとして解析できません。サブスクリプション内のtokenは通常、アクセス認証情報として機能します。問題を調べる際は、URL全体、パスワード、UUIDを伏せてください。
方法1:Subscribeで更新可能なサブスクリプションを登録する
サーバー情報を継続的に同期する場合は、TypeをSubscribeにしたサブスクリプションを登録します。この登録にはサブスクリプションURLが保存され、更新時にサーバー一覧を再取得します。サーバー情報を1件ずつ保存する方法との違いは、データの取得元に繰り返しアクセスできる状態が保たれるかどうかです。
-
URLをコピーする
利用中のサービス情報からサブスクリプションURLを全体コピーします。
https://、パス、クエリパラメーターも省略せずに含めてください。説明文や改行、末尾の句読点は一緒にコピーしないでください。 -
Typeを選ぶ
Home → 右上の「+」→ Add Server → Type → Subscribeの順に開き、個別サーバーのプロトコルが選択されたままになっていないことを確認します。
-
URLを入力する
URL欄にサブスクリプションURLを貼り付け、備考欄には見分けやすい名前を入力します。tokenがすべて含まれていることを確認してから保存してください。
-
一覧を更新する
Homeに戻り、下にスワイプしてサブスクリプションを更新します。処理が終わったら該当グループを展開し、空のグループだけでなくサーバー項目が追加されていることを確認してください。
-
項目を確認する
サーバー項目の編集情報を開き、Type、サーバーアドレス、Portが手元の情報と一致するか確認します。その後、Homeで該当サーバーを選択してください。まず接続を確認してから、自動更新の設定を調整します。
リモートルール設定のURLを受け取った場合は、Config → Subscribeから設定を追加・取得し、Configで内容を確認してから使用します。リモート設定の更新とサーバーサブスクリプションの更新は別の操作です。一方を更新しても、もう一方が同期されたことにはなりません。
方法2:Add Serverに設定を手入力する
サーバーアドレス、ポート、認証情報はあるものの、インポートできるリンクがない場合は、Home →「+」→ Add Serverを開きます。最初にTypeを選び、プロトコルに応じた項目を入力してください。Typeを変更すると、必要な認証情報、トランスポート、TLSの設定も変わります。手動で追加した項目は単独の接続先となり、自動更新可能なサブスクリプションにはなりません。
| Type | 主な設定項目 | よくある入力漏れ |
|---|---|---|
| Shadowsocks | サーバーアドレス、Port、暗号化方式、Password | 暗号化方式がサーバー側と一致しない、またはサーバーで必要なプラグイン設定が抜けている。 |
| VMess / VLESS | サーバーアドレス、Port、UUID、トランスポート設定 | UUIDだけを入力し、実際に使用されているTLS、SNI、WebSocket Pathなどの設定を見落としている。 |
| Trojan | サーバーアドレス、Port、Password、TLS関連設定 | 接続先アドレスと、証明書の検証に使うサーバー名を混同している。 |
| Hysteria2 | サーバーアドレス、Port、認証情報、TLS設定 | サーバー側で有効な難読化設定が抜けている、または現在のネットワークでUDPが制限されている。 |
| WireGuard | 秘密鍵、ピアの公開鍵、Endpoint、インターフェースアドレス | 鍵を通常のパスワードとして扱っている、またはピアやインターフェースの設定が抜けている。 |
たとえば、元の情報にPortが443と明記されている場合に限り、443を入力します。TLSを有効にしたからといって、ポートを独自にこの値へ変更しないでください。接続先IP、SNI、HTTP Hostはそれぞれ異なる役割を持つ場合があるため、元の設定どおりに入力します。TLS検証エラーが出た場合は、端末の時刻、サーバー名、証明書情報を優先して確認してください。検証を無効にすることを通常の解決策にしないでください。
- 保存前にTypeを確認してください。同じサーバーアドレスとポートでも、認証方式が同じとは限りません。
- 保存後はHomeに戻り、該当項目を選択します。一覧に表示されているだけでは、接続先として選択済みとは限りません。
- 設定を変更した後は再接続してからテストしてください。変更前の接続状態を、変更後の結果と取り違えないようにします。
方法3・4:QRコードをスキャンする、クリップボードから読み込む
QRコードとクリップボードはデータを受け渡す方法であり、新しい接続プロトコルではありません。QRコードには単一サーバーのURIやサブスクリプションURLを含められます。クリップボードの内容も同様です。サブスクリプショングループが作成されるかどうかは、インポート方法ではなく、解析された内容によって決まります。
QRコードをスキャンする
- 手元にあるQRコードを別の画面または紙に表示し、Homeのスキャン機能を開きます。初回はカメラへのアクセスを許可してください。
- QRコードの端が欠けないようにし、鮮明に表示します。スキャン後は解析結果を確認してください。単一サーバーの場合はTypeとPort、サブスクリプションURLの場合はURLを照合します。
- 内容を確認して保存したら、Homeに戻り、サーバー項目またはサブスクリプショングループが追加されたことを確認します。QRコードが通常のWebページへのリンクだけを含む場合は、そのURLを無理にサブスクリプションとして登録せず、実際の接続情報を入手してください。
同じ端末に表示されたQRコードを読み取る場合は、対応するテキストリンクを使うと、認証情報を含む画像の撮影や転送を繰り返さずに済みます。QRコードにはパスワード、UUID、サブスクリプションtokenが含まれる場合もあるため、接続認証情報として適切に管理してください。
クリップボードから読み込む
- 完全なリンクテキストだけをコピーします。たとえば、
ss://、vmess://、vless://、trojan://で始まる単一サーバーの共有リンクです。チャットの文章全体はコピーしないでください。 - Shadowrocketに戻り、クリップボードの内容を検出する案内に従ってインポートします。ペーストの許可を求められた場合は、今回の操作に限って許可してください。
- 検出の案内が表示されない場合は、クリップボードに元のテキストが残っているか確認します。通常のHTTPSサブスクリプションURLは、Home →「+」→ Type → Subscribeを開き、URL欄に貼り付けてください。自動検出を使う必要はありません。
- 保存後に項目数と名前を確認します。コピーとインポートを繰り返すと、同じサーバーが重複登録される場合があります。必要な項目を見分け、不要な重複を整理してください。
サーバーサブスクリプションURLの形式例:
https://example.com/sub?token=xxxx
リモート設定URLの形式例:
https://example.com/profile.conf
単一サーバーの共有リンクによく使われるプレフィックス:
ss://
vmess://
vless://
trojan://
上記のドメイン名とtokenは形式の例であり、接続には使えません。共有リンク内のエンコード済みデータを手作業で分解・変更しないでください。特に+、/、=、%などの文字がチャットアプリで置き換えられたり途中で切れたりすると、元の設定を復元できない場合があります。
インポート後にGlobal Routingと接続結果を確認する
インポートで解決するのは、接続情報をアプリに取り込むところまでです。次にHomeでサーバーを選び、Global Routingを確認して接続スイッチをオンにします。システムからVPN構成の追加を求められたら許可してください。その後、Connectivity Testを実行し、実際にアクセスする必要がある宛先もテストします。1回のテストが成功しても、確認できるのはそのテスト要求の結果だけです。
Config
設定モード現在使用している設定のルールに従って振り分けます。Configでルールの順序とポリシー参照を確認してから、対象の通信が直接接続かプロキシ経由かを判断してください。
適した用途:ルール設定を確認したうえでの日常的な利用。
Proxy
通常の通信をプロキシ経由にします。ルールの影響を一時的に切り分けるときに使えます。ただし、システム通信、バイパス設定、ネットワーク環境も考慮してください。端末のすべてのパケットが同じ経路を通るとは限りません。
適した用途:サーバーの基本的な接続可否の確認、ルールの問題の一時的な切り分け。
Direct
直接接続を使います。サーバーをインポートして選択済みでも、このモードでWebページが開けたことを、プロキシサーバーが利用可能な証拠にはできません。
適した用途:ローカルネットワークからの直接接続の確認。
Scene
設定済みのシーン条件に応じてルーティングを適用します。現在該当しているシーンとその設定を確認してください。意味が固定された別の全体プロキシモードとして扱わないでください。
適した用途:シーン条件を設定・検証済みのネットワーク切り替え。
Configモードでは、以下のルール例で先に一致したルールが適用される仕組みを確認できます。これは完全な設定ではありません。PROXYが参照するポリシーは実際の設定内で利用可能である必要があります。数行のルールを貼り付けただけで、すべての設定が完了したとは考えないでください。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIXはドメインとそのサブドメインに一致します。IP-CIDRはIPアドレス範囲に一致します。GEOIPはIPの地域データベースに基づいて一致します。FINALは、それまでのルールに一致しなかった通信を処理します。ルールは上から順に評価されるため、具体的なルールを広範なルールより上に置いてください。初回の接続確認では、Settings → On Demandで自動接続条件が有効になっているか確認します。手動で切断した後、条件によって再接続されるのを防げます。
インポート失敗や更新時の問題を解決する
まず、次の3つの状況を区別してください。項目が作成されない場合は、取得または解析の段階の問題です。項目は作成されるものの接続できない場合は、サーバー設定または通信経路の問題です。接続後に一部の宛先だけに問題がある場合は、ルールとDNSを確認します。段階ごとに切り分けることで、すべてを「サブスクリプションの期限切れ」と決めつけずに済みます。
リンクを貼り付けたのに何も表示されないのはなぜ?
まず、サーバーサブスクリプションを誤ってConfig → Subscribeに追加していないか確認します。サーバーサブスクリプションはHome →「+」→ Type → Subscribeから追加してください。次に、URLからtokenが抜けていないか、空白が混入していないか、ログイン画面や期限切れの通知が返されていないか確認します。HTTPステータスが表示される場合、401や403では認証とアクセス条件を、404ではパスを確認してください。
サブスクリプションの更新がタイムアウトする場合、先に接続が必要?
まず、現在のネットワークからサブスクリプションURLにアクセスできるか確認します。利用可能なサーバーがある場合は接続してから再試行してください。既存のプロキシ経由でサブスクリプションを取得する必要がある場合は、Settings → SubscribeでUpdate via Proxyを確認します。接続手段がない状態でこの項目を有効にしても、初回の取得問題が自動的に解決するわけではありません。自分のURLとネットワークを先に確認してください。
QRコードを読み取れたのに接続できないのはなぜ?
読み取りに成功したことが示すのは、QRコードの内容を解析できたということだけです。インポートした項目を開き、Type、Port、認証情報、TLS設定を一つずつ確認してください。Homeに戻って該当項目を選び、Connectivity Testを実行します。すべての項目で失敗する場合は、引き続きローカルネットワークを確認してください。1つだけ失敗する場合は、そのサーバーの設定と稼働状況を優先して確認します。
更新後に手動で変更した名前や設定が変わったのはなぜ?
サブスクリプションを更新すると、リモートから返されたデータが再適用されるため、グループ内の手動変更が上書きされる場合があります。サブスクリプショングループに戻ってデータの取得元を確認してください。個別に管理する必要がある項目は、Add Serverから設定一式を別途保存し、自分で管理してください。その項目の更新にサブスクリプション同期を使わないようにします。
テストは成功したのに、特定のWebページが開かないのはなぜ?
まず、Global Routingで現在Config、Proxy、Direct、Sceneのどれが選択されているか確認し、次に対象通信に実際に適用されるルールとDNSの結果を確認してください。ConfigではDOMAIN-SUFFIX、IP-CIDR、GEOIP、FINALの順序を重点的に確認します。1つの宛先のためにサブスクリプション全体を何度も削除して再インポートしないでください。