この記事の概要

vmess://またはvless://で始まる文字列は、通常1つのノード設定です。一方、提供元から渡されるHTTPSのサブスクリプションURLは、設定一覧を取得するための入口です。一時的にノードを追加するならクリップボードから読み込み、継続的にノードの変更を反映するならサブスクリプショングループを使います。リンクの各項目を確認したうえで、デスクトップ版とAndroid版それぞれの操作方法、更新方法、トラブル対処を解説します。入力欄を間違えないよう、順に確認しましょう。

単体ノードの共有リンクとサブスクリプションURLの違い

単体ノードのリンクには、設定内容のスナップショットが保存されています。通常、サーバーアドレス、ポート、認証情報、通信設定などが含まれ、クライアントが読み込むとローカルのノードとして登録されます。後からサーバーアドレスや認証情報が変更されても、以前に読み込んだ設定が自動で更新されることはありません。再インポートするか、手動で変更してください。

サブスクリプションURLは、リモートの設定データを参照するアドレスです。クライアントがURLにアクセスして応答を取得・解析し、対応するグループを更新します。一般的な応答は共有リンクの一覧ですが、クライアントが対応する別の形式の場合もあります。サブスクリプションURLは通常HTTPSで始まりますが、HTTPSのURLがすべてサブスクリプションとは限りません。Webサイトのトップページ、ログインページ、購入ページはノード一覧ではありません。

サブスクリプションURL:ノード一覧を継続的に管理

おすすめ

URLを一度登録すれば、必要に応じてグループを更新できます。提供元がノード名、接続パラメーター、利用可能なノード数などを変更する場合があります。定期更新するかどうかはクライアントの設定によります。

向いているケース:提供元が対応するサブスクリプションURLを明示しており、ノードの変更を継続的に反映したい場合。

共有リンク:ノードを1回追加

クリップボードから直接解析するため、サブスクリプションサーバーへのアクセスは不要です。複数行のリンクをまとめて貼り付けることもできますが、一括インポートしても更新可能なサブスクリプションになるわけではありません。

向いているケース:自分で構築したノード、一時的なテスト、完全な設定リンクを1つだけ受け取った場合。

受け取った内容を確認してから、インポート方法を選ぶ

プロトコルのプレフィックスが見える場合は、クリップボードからインポートします。提供元がサブスクリプションURLとして案内したURLを受け取った場合は、サブスクリプショングループを作成します。クライアントに入力を受け付けさせるために、URLのクエリパラメーターを勝手に削除しないでください。

vmess://・vless://リンクに含まれる情報

従来のVMess共有形式では、vmess://の後にBase64でエンコードされたJSONが続くのが一般的です。Base64はエンコード方式であり、暗号化ではありません。デコードすると、通常はアドレス、ポート、UUID、通信方式、備考などを確認できます。実装によって共有形式が異なる場合があるため、このデコード方法がすべてのVMessリンクに共通する唯一の方法とは限りません。

以下は、従来形式をデコードした学習用の例です。vは共有形式のバージョンを表し、クライアントのバージョンではありません。netは通信方式、tlsは通信のセキュリティ設定を示します。例のドメインとUUIDは構造の説明用で、接続可能なサービスを示すものではありません。

{
  "v": "2",
  "ps": "サンプルノード",
  "add": "node.example.com",
  "port": "443",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "aid": "0",
  "scy": "auto",
  "net": "tcp",
  "type": "none",
  "host": "",
  "path": "",
  "tls": "tls",
  "sni": "node.example.com"
}

VLESSの共有リンクは通常URI形式です。認証情報は@の前、接続先のアドレスとポートは後に配置されます。クエリパラメーターには通信方式やセキュリティレイヤーなどのオプションが入り、末尾のフラグメントは備考として使われることが一般的です。以下も接続には使えない学習用の例です。

vless://[email protected]:443?encryption=none&security=tls&type=tcp&sni=node.example.com#demo-node
128ビット
UUIDの長さ。サブスクリプションのアクセストークンではありません
443
TLSサーバーのポート例。実際の設定はノード情報に従ってください

QRコードは通常、こうした文字列を別の形で格納するだけで、足りない接続パラメーターを補うものではありません。読み取った後も、単体ノードのリンクかサブスクリプションURLかを確認してください。接続できるかどうかは、QRコードの見た目ではなく、クライアントのパーサー、実際に動作するコア、サーバー設定によって決まります。

v2rayN:クリップボードから単体ノードをインポート

v2rayNは、デスクトップで設定を管理するツールです。ノードのインポートとプロキシの有効化は別の操作です。以下では一般的な中国語メニュー名を示しています。バージョンによってメニューやノード一覧の右クリックメニューに項目があるため、更新後は同じ機能名を探してください。

  1. リンク全体をコピーします。vmess://またはvless://から末尾までコピーし、チャットアプリが付け加えた引用符、句点、説明文を含めないようにします。複数のリンクを読み込む場合は、1行に1つずつ記載します。
  2. リンクを解析します。v2rayNで「サーバー」→「クリップボードからURLを一括インポート」を開きます。バージョンによってはCtrl+Vも使えます。ショートカットが反応しない場合はメニューを使い、サーバーアドレス欄に直接貼り付けないでください。
  3. ノードの内容を確認します。ノード一覧で備考、アドレス、ポート、プロトコルを確認します。ノードの編集画面を開き、通信方式やTLS、REALITYのパラメーターが保持されているかも確認してください。
  4. ノードを選択して接続します。対象のノードを有効なサーバーに設定し、必要に応じてシステムプロキシまたはTUNを有効にします。インポートに成功しただけでは、ブラウザーの通信がプロキシ経由になるとは限りません。
  5. 実際にWebサイトへアクセスします。クライアントのログを確認しながら接続をテストします。遅延テストで分かるのは特定の方法による測定結果だけです。Webページ、DNS、ルーティングを含む全体の動作確認の代わりにはなりません。

v2rayN:サブスクリプショングループを作成してノードを更新

サブスクリプションからインポートするには、まず取得元を登録し、その後に内容を取得します。空のグループを作成しただけで更新していない場合、ノード一覧が空でも正常です。始める前に、提供元のURLが現在のクライアントに対応しているか確認してください。別の設定形式専用のURLではないことも確かめましょう。

  1. 「サブスクリプショングループ」→「サブスクリプショングループ設定」を開き、グループを追加して「普段使い」など識別しやすい名前を付けます。
  2. 完全なHTTPSサブスクリプションURLをURL欄に入力して保存します。URLに含まれるトークン、パス、クエリパラメーターをすべて保持してください。ドメインだけをコピーしてはいけません。
  3. 「サブスクリプショングループ」メニューに戻り、「現在のサブスクリプションを更新」を選択します。すべてのグループを更新する場合は、「すべてのサブスクリプションを更新」を選びます。
  4. 最初はプロキシを経由せずに更新してみてください。利用可能なプロキシがすでにあり、サブスクリプションURLに直接アクセスできない場合に限って、プロキシ経由での更新を試します。まだ使えないノードに更新処理が依存する事態を避けられます。
  5. 更新メッセージとノード一覧を確認します。新しいノードが正しいグループに登録されたことを確認してから、有効なノードを選択し、接続をテストします。

サブスクリプションを更新すると、グループ内のノードが追加、置換、削除されることがあります。動作はバージョンや設定によって異なります。手動で加えた変更を長く保持したい場合は、事前にエクスポートするか、独立した手動グループに保存してください。サブスクリプションのノード名やパラメーターをローカルで変更しても、更新後に必ず維持されるとは限りません。

v2rayNG:クリップボードからのインポートとサブスクリプション設定

v2rayNGは、Xrayコアを使用するAndroidクライアントです。単体ノードのインポートとサブスクリプションの更新は、こちらでも別々の手順です。v2flyNGを使う場合は、v2flyコアと使用中のバージョンがノードのパラメーターに対応しているか、別途確認してください。どちらのクライアントもサブスクリプションURLを読み込めるからといって、すべてのノードが動作するとは限りません。

Androidでは受け取った内容に応じて読み込み方法を選ぶ

単体ノードの共有リンクを受け取った場合
  • リンク全体をコピーして、v2rayNGのメイン画面に戻ります。
  • 右上の「+」→「クリップボードからインポート」をタップします。
  • 一覧にノードが表示されたことを確認し、選択して接続を開始します。
  • 初回接続時は、システムのVPN接続リクエストを確認して許可します。
サブスクリプションURLを受け取った場合
  • サイドメニューを開き、「サブスクリプショングループ設定」を選択します。
  • 「+」をタップし、備考と完全なサブスクリプションURLを入力して保存します。
  • メイン画面に戻り、右上のメニューから「サブスクリプションを更新」を実行します。
  • 更新結果を確認し、グループ内の利用可能なノードを選択します。

メニュー名はバージョンによって変わる場合があります。「クリップボードからインポート」と「サブスクリプショングループ設定」の機能を見分け、単体ノードのリンクをサブスクリプションURLとして保存しないでください。

デスクトップ版とAndroid版で同じサブスクリプションを利用できますが、それぞれの端末にローカルのノード一覧を保存し、別々に更新します。デスクトップで更新しても、スマートフォンの一覧がすぐに更新されるわけではありません。ルーティング規則、アプリごとの設定、システムプロキシ、TUNの設定も、サブスクリプションを共用するだけでは同期されません。提供元が端末数や同時接続数を制限している場合は、その利用条件にも従ってください。

インポート失敗・空のサブスクリプション・更新タイムアウトの対処

まず、問題が起きている段階を切り分けます。解析に失敗する場合はリンクの文字列、取得に失敗する場合はサブスクリプションへのリクエスト、インポート後に接続できない場合はノードのパラメーターとコアのログを確認します。クライアントの設定を何度もすべて削除しても原因の手掛かりを失うだけで、サーバー側の認証情報が無効になった問題は解決しません。

リンクをコピーしたのに、インポート可能な内容がないと表示される場合

内容をローカルのテキストエディターに貼り付け、プロトコルのプレフィックスが欠けていないか、チャットアプリによる改行や全角句読点の挿入がないか確認します。エンコード済みの内容を手作業で改行しないでください。文字列が正しくても認識されない場合は、クライアントを更新して再試行するか、提供元に対応形式でのエクスポートを依頼してください。

サブスクリプションの更新は完了したのに、一覧が空の場合

まず、別のグループに絞り込まれていないか確認し、更新ログで解析結果を調べます。リクエストが成功しても、応答にノードが含まれているとは限りません。ログインページ、期限切れの通知、非対応形式が返されると、ノードを登録できない場合があります。サブスクリプションの状態とクライアントの設定方法を提供元に確認してください。

更新がタイムアウトする、または401・403が表示される場合

タイムアウトした場合は、まず端末のネットワークとシステム時刻を確認し、現在のネットワーク環境に合わせて直接接続または利用可能なプロキシ経由で更新します。401・403はサーバーがリクエストを拒否したことを示します。完全なトークン、アカウントの状態、アクセス制限を確認してください。詳しい理由は提供元の案内を参照し、短時間に何度もリクエストを送らないようにしましょう。

ノードをインポートしたのにWebページを開けない場合

まずノードが選択され、接続が開始されていることを確認します。次に、システムプロキシまたはAndroidのVPNが有効かを確認してください。ログに認証、ハンドシェイク、DNSのエラーがないか調べ、ポート、UUID、サーバー名、通信パラメーターを順に照合します。インポート成功は設定を解析できたことを示すだけで、サーバーが利用可能であることを保証しません。

サブスクリプションで404が返る場合は、パスが無効になったか、提供元が入口を変更した可能性があります。証明書エラーが表示された場合は、まずシステム時刻、ドメイン、ネットワーク環境を確認してください。証明書検証を無効にする方法を万能な解決策として使わないでください。接続や速度測定のトラブルについては、接続トラブルの対処方法もご覧ください。

共有リンクもサブスクリプションURLも認証情報として扱う

単体ノードのリンクには認証に使われるUUIDやパスワードが含まれることがあり、サブスクリプションURLにはアクセストークンが含まれることがよくあります。これらを閲覧できる人が、ノード設定やアカウント関連情報を取得する可能性があります。リンクをQRコードにしたり、短縮URLにしたり、Base64でエンコードしたりしても、秘密にすべき情報であることは変わりません。

覚えておきたいのは2点です。単体ノードのリンクは「この設定を追加する」ためのもの、サブスクリプションURLは「今後、設定の変更をどこから取得するか」を指定するものです。まず読み込み先を正しく選び、その後ノードのパラメーターと実際の接続を確認しましょう。プロトコルを手当たり次第に切り替えるより効果的です。用語についてはサブスクリプションの用語解説をご覧ください。プロキシの設定手順は、使い方ガイドで確認できます。