まずリンクの形式を確認して、適切な追加方法を選びましょう。HTTPSのサブスクリプションURLはサブスクリプショングループに登録し、vmess://やvless://のノード共有リンクはクリップボードから読み込みます。この記事では、デスクトップ版とAndroid版それぞれの保存・更新・ノード選択・接続手順に加え、Base64形式の見分け方、更新エラーへの対処、複数端末で使う際の確認点を解説します。初めて設定する方や、「追加したのに一覧が空」の場合に役立ちます。
サブスクリプションURLとノード共有リンクの違い
サブスクリプションURLは、ノード一覧を取得するためのネットワーク上のアドレスで、通常は https:// で始まります。クライアントにURLを保存した後、そのアドレスへアクセスして応答内容を解析すると、サーバー一覧が作成されます。Web管理画面のログインURLやプランページはサブスクリプションURLとは異なります。コピーする際は、提供元が「サブスクリプションリンク」として案内しているURL、または利用中のクライアントに対応した登録先を使ってください。
一方、vmess://とvless://は通常、単一ノードの情報を表します。接続パラメーターが含まれているため、Webページとしてアクセスするものではありません。ノードURIをサブスクリプションURL欄に貼ると、未対応のURLスキームとして扱われる場合があります。HTTPSのサブスクリプションURLを通常のノードとして読み込むと、サーバーを認識できないことがあります。
HTTPSサブスクリプションURL
おすすめサブスクリプショングループに保存してから更新します。ノードの追加・削除やアドレスの変更などは、次回の更新時に再取得できます。実際に対応しているかどうかは、サブスクリプションサービスによって異なります。
おすすめの用途:長期間利用する場合や、ノードの変更を定期的に取得したい場合。
VMess / VLESS共有リンク
URI全体をコピーし、クリップボードまたはQRコードから読み込みます。読み込まれるのはその時点の接続パラメーターで、リンク元のノードが後から変更されても自動で同期されません。
おすすめの用途:単一ノードのテスト、一時的な移行、管理者から個別に接続情報を受け取った場合。
v2rayN:サブスクリプショングループを追加してノードを更新
v2rayNはデスクトップクライアントです。ここではmacOSでの手順を説明しますが、WindowsやLinux版の操作時にも参考になります。バージョンによってボタンの位置や表記が少し異なる場合がありますが、基本の流れは「グループ作成 → URL入力 → 保存 → 更新」です。以下では中国語UIでよく使われるメニュー名を記載しています。「プロキシを経由しない」が「直接接続」と表示される場合は、同じ意味の項目を選んでください。
-
グループを開く
メイン画面で「サブスクリプショングループ」→「サブスクリプショングループ設定」を開き、「追加」または「+」をクリックします。サーバーのVMess/VLESSパラメーターを手動編集する画面ではありません。
-
URLを入力
「別名」に「普段使い」など識別しやすい名前を入力し、「任意のURL(Url)」またはサブスクリプションURL欄にHTTPSリンク全体を貼り付けます。前後に引用符・空白・改行が含まれていないことを確認して保存します。
-
更新を実行
メイン画面に戻り、「サブスクリプショングループ」→「すべてのサブスクリプションを更新(プロキシを経由しない)」を選びます。利用可能なノードがまだない場合は、まずこの方法を試してください。接続元へのアクセスに既存のプロキシが必要で、利用可能なプロキシがすでにある場合は、プロキシ経由で更新します。
-
一覧を確認
作成したグループに切り替え、サーバー項目が表示されることを確認します。プロトコル、アドレス、ポートが正しいか確認し、サーバーを右クリックして「アクティブサーバーに設定」を選択します。画面によってはダブルクリックでも選択できます。
-
プロキシを有効化
コアが起動していることを確認し、「システムプロキシ」から「システムプロキシを自動設定」を選びます。ブラウザーで接続をテストし、ログにエラーがないか確認してください。読み込みに成功しても、システムの通信がプロキシに送られているとは限りません。
受け取ったものがサブスクリプションURLではなく、1つ以上のノードURIの場合は、テキスト全体をコピーして「サーバー」→「クリップボードから一括URLインポート」を選びます。この方法ではサブスクリプショングループの追加は不要です。一括で読み込むテキストは通常、1行につき1つのURIを記載します。コピー時に説明文、コードフェンス、チャットの省略記号を含めないでください。
v2rayNG:サブスクリプショングループの設定と更新
v2rayNGはXrayコアを使用するAndroidクライアントです。デスクトップ版v2rayNとは操作場所が異なりますが、サブスクリプションを保存してから更新する流れは同じです。Android版の「クリップボードからインポート」とサブスクリプション管理を混同しないでください。前者は主にノード共有情報を扱い、後者は繰り返し取得できるURLを保存します。
- サブスクリプション管理を開きます。左上のサイドメニューを開き、「サブスクリプショングループ設定」を選択して、右上の「+」をタップします。メモを入力し、「任意のURL(URL)」にサブスクリプションURLを貼り付け、右上の確定ボタンをタップして保存します。
- 更新画面に戻ります。設定のメイン画面に戻り、右上のメニューから「サブスクリプションを更新」を選択します。更新が完了してから設定一覧を確認してください。サブスクリプション管理画面で保存しただけでは、取得が完了したことにはなりません。
- ノードを選んで接続します。使用する設定を選び、右下の接続ボタンをタップします。初回接続時はAndroidからVPN接続の許可が表示されます。許可すると、クライアントが通信を処理するためのローカルトンネルを確立できます。
- 接続結果を確認します。クライアントの状態とログを確認し、実際にアクセスできるかテストします。システムのVPNアイコンはトンネル確立を示しますが、リモートノードへの接続やDNS、認証、通信パラメーターの正常性を保証するものではありません。
単一ノードを読み込む場合は、メイン画面右上の「+」→「クリップボードからインポート」を選びます。QRコードの場合は「+」→「QRコードをスキャン」を選択します。QRコードはテキストを格納する方法であり、新しいプロキシプロトコルではありません。読み込み後、ノードURIとサブスクリプションURLのどちらかを確認し、後者はサブスクリプション管理から登録してください。
- 更新時にネットワークエラーが出る:端末からサブスクリプション元にアクセスできるか確認し、必要なら利用可能な接続経由で再試行します。
- 更新後にノードが表示されない:現在のグループの絞り込みを確認し、別のグループが選択されたままになっていないか確認します。
- ノードは使えるが特定のアプリがプロキシを経由しない:アプリ別プロキシが有効か、対象アプリが除外されていないか確認します。
Base64・vmess://・vless://の形式の違い
Base64はバイナリをテキストに変換するエンコード方式であり、暗号化方式でもプロキシプロトコルでもありません。一般的な従来型サブスクリプションでは、複数行のノードURIをまとめてから、テキスト全体をBase64でエンコードすることがあります。クライアントは外側のエンコードをデコードし、各行のURIを認識します。プレーンテキストのURIを返すサブスクリプションや、クライアントの種類に応じて内容を変えるものもあるため、すべてのサブスクリプションが同じ形式とは限りません。
一般的なVMess共有リンクは、vmess://の後にBase64エンコードされたJSONが続き、サーバーアドレス、ポート、ユーザーID、通信設定などが含まれます。VLESS共有リンクは通常URI形式で、ユーザーID、ホスト、ポートをURIの本体に記述し、TLSや通信方式などのパラメーターをクエリ部分に指定します。VLESS URIを「プレフィックス以降はすべてBase64」と一律に扱うことはできません。
HTTPSサブスクリプションURL
→ サブスクリプションの内容を取得
→ 外側のエンコード(Base64など)を判定
→ 1行以上のvmess://・vless:// URIを取得
→ クライアントのサーバー項目として解析
vmess://共有リンク
→ 一般的な形式はBase64(JSON)
→ アドレス、ポート、認証情報、通信パラメーターを読み取る
vless://共有リンク
→ URIの本体、クエリパラメーター、メモを解析
→ アドレス、ポート、認証情報、通信パラメーターを読み取る
- 末尾のイコール記号が必ずしもエラーとは限りません。標準Base64では
=でパディングする場合がありますが、省略する実装もあります。イコール記号の有無だけでサブスクリプションの有効性を判断しないでください。 - URLエンコードはBase64とは異なります。URI内の
%20などはパーセントエンコードです。一括置換や二重デコードを行うと、メモやクエリパラメーターが壊れることがあります。 - 完全な設定ファイルはURIの一覧ではありません。JSON設定などの構造化ファイルは、サブスクリプション機能から読み込めるとは限りません。ファイル拡張子だけを変更せず、提供元が案内する対応形式を使用してください。
応答がHTMLページから始まる場合、ログインページ、アクセス確認ページ、エラーページであり、解析可能なノードサブスクリプションではないことがよくあります。HTTPリクエストの成功とサブスクリプションの解析成功は別の段階です。ステータスが200でも、本文にノード情報がまったく含まれていない場合があります。
サブスクリプションの更新に失敗したら:ネットワーク・内容・ノードを確認
まず更新ログを確認し、グループを作り直す必要があるか判断してください。同じ誤ったURLを何度も削除・追加しても、アクセス権限や形式の不一致は解決しません。利用可能なノードは残し、エラーがサブスクリプションの取得時に起きたのか、読み込み後の接続段階で起きたのかを切り分けます。
| 症状 | まず確認する点 | 次の対処 |
|---|---|---|
| リクエストがタイムアウトする、ドメインを解決できない | クライアントがサブスクリプションの本文を取得できていません。ネットワークアクセス段階の問題です。 | ネットワークとDNSを確認し、直接更新した場合と、既存のプロキシ経由で更新した場合の結果を比較します。 |
| 401または403が返る | トークンの期限切れや権限の制限、アクセス保護などが考えられます。 | 提供元のプラットフォームからサブスクリプションURLをコピーし直し、アカウントの状態を確認します。ステータスコードだけで原因を断定しないでください。 |
| 解析に失敗する、ノードが0件と認識される | Webページが返されている、形式に互換性がない、または内容が空の可能性があります。 | v2rayN/v2rayNGに対応したサブスクリプション形式を選び、グループの絞り込みと更新ログを確認します。 |
| ノードは表示されるが認証に失敗する | サブスクリプションの取得は完了しています。問題はノードのパラメーターまたはサーバー側にあります。 | サブスクリプションを更新してノードを選び直し、アカウントの有効期限、認証情報、端末の時刻を確認します。 |
| 起動しているのにブラウザーが接続できない | システムプロキシ、アプリ別ルール、DNS、ノードの接続性などが原因として考えられます。 | ローカルの通信設定と接続ログをそれぞれ確認し、問題を再び「サブスクリプションが読み込まれていない」と決めつけないでください。 |
MacとAndroidでサブスクリプションを共有:同期内容と制限
同じサブスクリプションを複数端末で利用できるかどうかは、まず提供元が定める端末数、同時接続数、アクセス制限によります。複数のクライアントに同じURLを保存できても、アカウントが同時接続を許可しているとは限りません。利用規約を確認してから各端末に登録してください。Macで生成した実行設定一式をAndroidにそのまま移す必要はありません。
共有する方法:両方の端末に同じサブスクリプションを保存して、それぞれ更新
デスクトップ版 v2rayN
- サブスクリプショングループに提供元のURLを保存する。
- 更新後、使用するサーバーを選択する。
- システムプロキシとルーティングルールを個別に設定する。
- 自動更新を設定する場合は、更新間隔と実行条件を確認する。
Android版 v2rayNG
- サブスクリプショングループ設定に同じURLを保存する。
- メイン画面に戻り、サブスクリプションを更新する。
- ノードとアプリ別プロキシの対象範囲を個別に選ぶ。
- 提供元でトークンを再発行したら、この端末のURLも変更する。
共有されるのはサブスクリプション元であり、端末上のすべての設定ではありません。一覧が一致するかどうかは、更新時刻、クライアントの互換性、提供元から返される内容にも左右されます。
サブスクリプションで同期されるのは通常、ノードの接続パラメーターです。端末上のルーティング、DNS、システムプロキシの状態、アプリ別リスト、選択中のノードまで同期されるとは限りません。QRコードで共有できるのも、通常は特定ノードの静的な情報です。提供元の更新を継続して反映したい場合はサブスクリプションURLを保存し、一時的な設定を1つだけ移行する場合はノードURIまたはQRコードを使ってください。
- 読み込み後に一度更新してください。グループにノードが表示されることを確認してから、接続やルーティングを設定します。
- 提供元の変更後は、両方の端末でそれぞれ更新してください。片方の端末で更新しても、もう片方のキャッシュは自動更新されません。
- URLを再発行したら、端末ごとに置き換えてください。もう一方の端末に古いURLが残っていると、次回の更新でエラーが続くことがあります。
- グループ名はわかりやすく設定してください。提供元や用途でグループを区別し、一時的なノードを長期利用するサブスクリプションと混同しないようにします。