サブスクリプションURLを入手したものの、どこに貼り付ければよいか分からない方に向けた解説です。まずサブスクリプションURL、共有リンク、完全な設定ファイルの違いを確認し、デスクトップまたはAndroidで追加・更新してサーバーを選ぶ手順を紹介します。ダウンロード、解析、接続の各段階で起きる問題の切り分け方も説明します。グループをむやみに削除する必要はありません。
サブスクリプションURLと設定形式の違い
「V2Rayのサブスクリプション」とは、通常、クライアントがURLからサーバー一覧を取得する仕組みを指します。取得されるデータの形式がすべて共通というわけではありません。URLはリモートのデータを指定し、取得した本文の形式によってクライアントで解析できるかどうかが決まります。サービス提供元のログインページや購入ページと、サブスクリプションURLは別のものです。
| 受け取ったデータ | 見分け方 | 使用するインポート項目 | 更新方法 |
|---|---|---|---|
| サブスクリプションURL | 通常は https:// で始まり、アクセストークンを含む場合があります | サブスクリプショングループまたはサブスクリプション設定のURL欄 | クライアントからURLに再度アクセス |
| 個別の共有リンク | よくある接頭辞は vmess://、vless://、trojan:// です | クリップボードから共有リンクをインポート | サブスクリプションの更新には追従しません |
| 完全な設定ファイル | JSONでは inbounds、outbounds、routing などの項目がよく使われます | クライアントのカスタム設定用インポート項目 | ファイルまたは設定内容を使って更新 |
Base64形式のサブスクリプションは、複数の共有リンクをまとめたテキストを一括でエンコードしたものが一般的です。デコードすると、1行に1つずつリンクが並んでいることがよくあります。一方、VMessの共有リンク自体にもJSONをBase64エンコードしたデータが含まれる場合があります。この2つは別の階層の形式です。長い文字列だからといって、全体を1つのサーバーアドレスとして扱わないでください。
まず出力形式を確認し、適切なインポート項目を選ぶ
提供元が複数のクライアント向け形式を用意している場合は、v2rayNまたはv2rayNGに対応した共有リンク形式のサブスクリプションを選びます。取得結果がWebページ、別の設定構文、または完全なJSONの場合は、更新を何度も試すより、対応する形式を選び直すほうが確実です。
v2rayN:サブスクリプショングループの追加と更新
v2rayNでは、サブスクリプショングループにURLとグループ情報を保存し、解析後の項目をサーバー一覧に表示します。グループを保存しただけではサーバーは追加されません。以下では中国語UIで一般的なメニュー名を例にします。バージョンによってボタンの位置は異なる場合がありますが、「URLの保存」と「サブスクリプションの更新」は別々の操作です。
- サブスクリプションURLをそのままコピーします。提供元のサブスクリプション画面からURL全体をコピーし、疑問符以降のパラメーターも残してください。ブラウザーのアドレスバーに表示されたログインページのURLや、説明文はコピーしないでください。
- 「サブスクリプショングループ」→「サブスクリプショングループ設定」を開きます。新しい項目を追加し、「エイリアス」に「普段使い」など識別しやすい名前を入力します。「任意のアドレス(Url)」または該当するURL欄にサブスクリプションURLを貼り付けます。
- グループを保存します。初回のインポートでは、サーバーが除外されないようフィルターキーワードは設定しないでください。同じ名前のグループがすでにある場合は、URLを確認します。重複追加で解決しようとしないでください。
- 「サブスクリプショングループ」→「現在のサブスクリプションを更新(プロキシを使用しない)」を実行します。対象のグループを選択してから更新してください。複数の提供元をまとめて処理する場合は、「すべてのサブスクリプションを更新(プロキシを使用しない)」を使います。メニュー名はUIのバージョンによって多少異なる場合があります。
- サーバーを選択して使用中に設定します。一覧からインポートしたサーバーを選び、右クリックメニューの使用サーバーに関する操作で切り替えます。その後、ログにコアの起動エラーがないか確認してください。
サブスクリプションに既存のプロキシ経由でしかアクセスできない場合は、「プロキシを使用して更新」を選べますが、利用可能な接続がすでにあることが前提です。初回のインポートで使えるサーバーがない状態では、この項目を選んでもプロキシ経路は確立できません。現在のネットワークからサブスクリプションにアクセスできるか確認するか、単独でインポートできる有効な共有リンクを入手してください。
v2rayNG:サブスクリプション設定と更新
Android版v2rayNGはXrayコアを使用します。サブスクリプション管理はサイドメニューにあり、個別の共有リンクはメイン画面の追加メニューからインポートします。サブスクリプションURLを通常のサーバー設定のアドレス欄に貼り付けても、誤った接続設定が作られるだけで、サーバー一覧は取得できません。
- サイドメニューから「サブスクリプション設定」を開きます。右上のプラスボタンをタップし、「備考」と「アドレス」を入力します。備考は提供元の識別に使い、アドレスにはサブスクリプションのURLを入力します。
- 保存してメイン画面に戻ります。新しいサブスクリプションが設定一覧に残っていることを確認してください。URLの末尾が欠けていたり、トークンに改行が混入していたりする場合は、編集画面に戻って修正します。
- 右上のメニューから「サブスクリプションを更新」を選びます。画面下部の通知と一覧の変化を確認してください。グループごとの更新に対応している画面では、対象のグループを確認してから操作します。
- サーバーを1つ選び、接続ボタンをタップします。初回の接続時にはAndroidのVPN接続許可が表示されます。許可した後、システムの接続状態とアプリのログを確認してください。
- 個別のリンクは別の追加メニューからインポートします。
vless://などの共有リンクを受け取った場合は、新しいサブスクリプションURLを登録するのではなく、メイン画面のプラスボタンから「クリップボードからインポート」を選びます。
サブスクリプションの更新に成功しても、プロキシ接続が確立したとは限りません。一覧に項目が表示された時点で、URLへのアクセスと解析は少なくとも完了しています。接続ボタンをオンにすると、コアの起動とサーバーとのハンドシェイクに進みます。AndroidのVPN許可は端末の通信を引き受けるためのもので、サーバーが利用可能であることの証明にはなりません。
v2rayN(デスクトップ版)
- 設定メニュー
- サブスクリプショングループ → サブスクリプショングループ設定
- 名前の項目
- エイリアス
- URLの項目
- 任意のアドレス(Url)またはサブスクリプションURL
- 取得操作
- 現在のサブスクリプションを更新
保存後、サーバー一覧を作成するには手動で更新する必要があります。
v2rayNG(Android版)
- 設定メニュー
- サイドメニュー → サブスクリプション設定
- 名前の項目
- 備考
- URLの項目
- アドレス
- 取得操作
- メイン画面のメニュー → サブスクリプションを更新
インポート後、サーバーを選択して接続をオンにしてください。
インポート後の確認:一覧、コア、通信
設定からネットワークへと順に確認します。まずサーバー一覧を確認し、次にコアのログを見て、最後に実際の通信をテストしてください。サブスクリプションURLのポート、ローカルの待ち受けポート、サーバーへの接続ポートを混同しないようにしましょう。それぞれ設定の取得、端末内の通信受付、リモートサーバーへの接続に使われます。
- 一覧を確認:プロトコル、サーバーアドレス、リモートポートに値があるか確認します。備考は自由に設定できます。見栄えのよさで設定の有効性を判断しないでください。
- コアを確認:起動後、ログで設定の解析、待ち受けポート、ハンドシェイクのエラーを確認します。v2rayNのローカル待ち受けポートは「設定」→「パラメーター設定」で確認できます。ほかのプログラムがポートを使用している場合は、まず競合を解消してください。
- 通信を確認:デスクトップでは、システムプロキシまたはTUNが必要に応じて有効になっているか確認します。アプリごとにプロキシを手動設定する場合は、実際の待ち受けアドレスとポートを入力してください。Androidでは接続が開始していることを確認し、アプリ別設定で対象アプリが除外されていないか調べます。
- 動作を確認:実際に利用するサービスにアクセスして確認します。遅延テストに成功しても、すべての通信が同じ経路を通るとは限りません。
サーバーのポートは443とは限らず、ほかの値が設定されている場合もあります。実際のサブスクリプション内容を確認してください。すべての項目のポートを10808に変更しないでください。この値はローカル待ち受け側の例であり、リモートポートの代わりにはなりません。VMessやVLESSなどのプロトコル名だけでは通信方式は決まりません。TLSや通信パスなどの設定をサーバー側と一致させる必要があります。
サブスクリプションの更新に失敗した場合:エラーの段階ごとに対処
エラーの内容を発生した段階に対応させて確認します。「ダウンロード失敗」ならURLとネットワーク、「利用可能なサーバーがありません」なら取得データの形式とフィルター条件を調べます。「接続失敗」の場合は、コアとリモート側の設定を確認してください。ネットワークのタイムアウトを解決しようとして、正しいプロトコル設定を変更する事態を防げます。
| 症状 | まず確認する項目 | 対処方法 |
|---|---|---|
| HTTP 401または403 | URLのトークン、アクセス権、提供元の制限 | サブスクリプションURLを再取得してアカウント権限を確認します。拒否が続く場合は、提供元に制限について問い合わせてください。 |
| タイムアウトまたはドメイン名の解決に失敗 | 現在のネットワークからサブスクリプションのドメインにアクセスできるか | ドメイン名の入力ミスを確認し、直接接続と既存プロキシ経由の更新を切り分けます。 |
| 更新後にサーバーが表示されない | 取得した内容、グループの選択、フィルターキーワード | 不要なフィルター条件を解除し、対応する形式のサブスクリプションを選んでいるか確認します。 |
| ログインページやWebページの本文が表示される | アカウントページのURLを誤って使用していないか | 提供元のサブスクリプション画面からURLをコピーし直してください。WebページのHTMLをBase64データとして扱わないでください。 |
| 一覧は正常だがコアでエラーが発生する | プロトコルの対応状況、設定項目、選択中のコア | ログから該当する項目を特定し、クライアントとコアがその設定に対応しているか確認します。 |
| 接続中だがアプリから通信できない | システムプロキシ、TUN、アプリ別設定、ルーティングルール | アプリの通信が実際にプロキシへ送られているか確認してから、サーバーとのハンドシェイクと接続先へのアクセスを調べます。 |
対処のポイント:一覧を更新できたら、まずURLの変更をやめる
解析後のサーバー情報が揃っている場合は、使用中のサーバー、コアのログ、通信の入口に調査の重点を移します。サブスクリプションURLは設定を取得するためのもので、アプリのプロキシ接続そのものを担うわけではありません。URLを変えても、ローカルポートの競合や誤ったルーティングルールは解決しません。
サブスクリプションの更新とプライバシー
サブスクリプションURLのトークンを持つ人は、サーバー設定を取得できる場合があります。問題を報告するときは、ステータスコード、エラーが起きた段階、クライアントのメニューだけを伝え、URL全体は公開しないでください。スクリーンショットを共有する場合は、トークン、ユーザーID、公開したくないサーバー情報を隠します。
- サブスクリプションをオンラインのデコードツールに入力しないでください。Base64は暗号化ではないため、デコードしても設定の安全性は高まりません。内容を確認する必要がある場合は、信頼できるローカル環境で処理してください。
- ログを共有する前に機密情報を確認してください。パスのパラメーター、ユーザーID、パスワード、サブスクリプションURLが診断情報に含まれる場合があります。エラーの種類だけを共有し、設定全体を公開する必要はありません。
- 更新前に現在使える項目を記録してください。サブスクリプションのURLが変更されたり、項目が削除されたりすることがあります。先にグループと使用中のサーバーを控え、更新後に確認すれば、一時的に接続できなくなった場合も変更点を特定しやすくなります。
- URLが漏れた場合は提供元に再発行を依頼してください。クライアントからグループを削除しても、漏えいしたリモートのトークンは無効になりません。再発行後、新しいURLをクライアントに保存して更新してください。
完全な設定ファイルをインポートする場合は、ローカルの待ち受けアドレスとルーティングルールも確認してください。待ち受けアドレスを 0.0.0.0 にすると、同じネットワーク内のほかの端末からそのポートに接続できる可能性があります。設定が起動するというだけで、そのまま使わないでください。初心者はクライアントに対応したサブスクリプション形式を使い、ローカルのインバウンド設定はクライアントに任せたうえで、高度な項目を段階的に理解するのがおすすめです。