V2RayNGでVLESS Realityを利用するには、サーバーから受け取った値を、VLESSの認証情報、TCP通信、RealityのTLS偽装情報に分けて入力します。UUIDだけを設定しても接続できず、serverName、公開鍵、Short ID、指紋などが1項目でも異なると、TLSハンドシェイクの段階で失敗することがあります。画面の表示名はV2RayNGのバージョンや日本語化の状態によって少し異なるため、項目の役割を確認しながら設定することが大切です。
この記事では、Android版V2RayNG 1.10.xを基準に、VLESS Realityの接続先を手動で追加する手順を説明します。サブスクリプションから自動的に登録されたノードを修正する場合にも、各項目の対応関係を知っておくと、空欄や誤った値を見つけやすくなります。
V2RayNGでVLESS Realityのノードを追加したい方を対象に、サーバーアドレス、ポート、UUID、Flow、SNI、公開鍵、Short ID、指紋の入力場所を順番に解説します。設定後の接続確認、ログの読み方、入力ミスが起きやすい箇所、既存ノードとの比較方法までまとめています。
VLESS Realityの設定値を役割ごとに整理する
VLESS Realityの設定は、大きく「接続先」「ユーザー認証」「通信方式」「Reality検証情報」の4グループに分けて考えると理解しやすくなります。接続先にはサーバーのドメイン名またはIPアドレスとポート番号を入力します。ユーザー認証にはUUIDを使い、通常のVLESSでは暗号化方式を none にします。実際の暗号化と偽装は、TCPとRealityの設定によって行われます。
| サーバーから受け取る値 | V2RayNGでの項目 | 入力例・注意点 |
|---|---|---|
| サーバーアドレス | Address / アドレス | edge.example.net または指定されたIP |
| 接続ポート | Port / ポート | 443など。サーバー指定値を使用 |
| UUID | ユーザーID / ID | ハイフンを含むUUIDをそのまま入力 |
| Flow | Flow | 指定がある場合は通常xtls-rprx-vision |
| Server Name | SNI / Server Name | 証明書検証に使うドメイン名 |
| Public Key | 公開鍵 | Reality用の公開鍵。UUIDとは別の値 |
| Short ID | Short ID | 16進数の短い識別子。空欄可否はサーバー指定に従う |
| Fingerprint | 指紋 | 指定がなければchromeが一般的 |
サーバー管理者から受け取った設定がURL形式の場合は、URLの各部分を分解して確認します。ただし、URLのパーセントエンコードやクエリ文字列を手作業で書き換えると、公開鍵やShort IDを壊すことがあります。可能であればV2RayNGの「クリップボードからインポート」や共有リンクの読み込みを使い、手動入力は不足した項目の修正に限定してください。
入力前にサーバー情報とV2RayNGの状態を確認する
設定を始める前に、サーバー側の値を一つのメモにまとめます。最低限、アドレス、ポート、UUID、Flow、ネットワーク方式、Security、SNI、公開鍵、Short ID、指紋を確認してください。Realityでは、接続先アドレスとSNIが同じとは限りません。アドレスがサーバーのIPで、SNIが偽装対象ドメインという構成もあるため、アドレス欄にSNIを代入しないようにします。
- アドレス:サーバーへ実際に接続するホスト名またはIPアドレスです。
- ポート:サーバーのVLESS入待受ポートです。443が多いものの、必ず配布された番号を使います。
- UUID:利用者を識別する値です。大文字小文字、ハイフン、先頭末尾の空白を確認します。
- SNI:TLSのServer Nameです。Realityの公開鍵やShort IDとは別の情報です。
- 公開鍵:サーバー側のReality公開鍵です。秘密鍵やUUIDを貼り付けてはいけません。
- Short ID:サーバーが受け付ける識別子です。配布値が空欄なら、勝手に生成しないでください。
V2RayNGにVLESS Realityを手動追加する
ここから実際にプロファイルを作成します。V2RayNGを開き、右下または画面上部にある追加ボタンから「手動設定」または「VLESS」を選択します。バージョンによってメニュー名が「手動設定」→「VLESS」になっている場合と、VLESS設定画面が直接開く場合があります。入力後に保存する前に、上から下まで一度読み直してください。
-
VLESSを選択
V2RayNGのメイン画面で追加ボタンをタップし、「手動設定」から「VLESS」を選びます。VMessやカスタム設定を選ぶと、Realityに必要な項目が表示されないことがあります。
-
接続先を入力
「アドレス」にサーバーのホスト名またはIPを入力し、「ポート」に指定値を入力します。ポート欄へ
https://やパスを入れず、数字だけを入力してください。 -
認証情報を設定
「ユーザーID」または「ID」にUUIDを貼り付けます。「暗号化方式」は通常
noneです。Alter IDが表示される場合は、VLESSでは通常使用しないため、サーバーの指示がない限り既定値のままにします。 -
TCPを選択
「ネットワーク」または「伝送方式」で
tcpを選択します。Flowが指定されている場合は「xtls-rprx-vision」を入力します。Reality over WebSocketなど別方式の場合は、サーバーの配布情報に合わせて変更します。 -
Realityを設定
SecurityまたはTLS関連の項目で
realityを選び、SNI、公開鍵、Short ID、指紋を入力します。指紋はサーバー指定がなければchromeが一般的ですが、管理者から別の値を受け取っている場合はそちらを優先します。 -
保存して接続
プロファイル名を分かりやすく付けて保存し、作成したノードを選択して接続します。AndroidのVPN接続確認が表示されたら内容を確認して許可し、最初はブラウザーで1つのページだけ開いて状態を確認します。
VLESS認証と通信
- プロトコル
- VLESS
- アドレス
- 配布されたホスト名またはIP
- ポート
- 例: 443
- ユーザーID
- 配布されたUUID
- 暗号化方式
- none
- Flow
- xtls-rprx-vision
UUIDとFlowはVLESSの認証・通信条件です。Realityの公開鍵をUUID欄へ入力しないでください。
Reality検証情報
- Security
- reality
- SNI
- サーバー指定のドメイン
- 公開鍵
- Reality public key
- Short ID
- 配布された16進数値
- 指紋
- chromeなど
- SpiderX
- 指定がある場合のみ入力
SNI、公開鍵、Short IDはそれぞれ別の検証情報です。1つの値を複数欄へコピーしないようにします。
保存後、プロファイルの詳細画面をもう一度開き、空欄になっている項目がないか確認します。特にV2RayNGでは、TLS設定を開いた後に「Reality公開鍵」「Short ID」「指紋」が折りたたまれた追加欄として表示されることがあります。見えている基本項目だけを入力して保存すると、SecurityだけがRealityになり、検証情報が未設定のままになる可能性があります。
接続後に確認するべきポイント
接続スイッチが有効になっただけで、設定が完全に正しいと判断することはできません。V2RayNGの接続状態を確認した後、ログ画面を開き、DNS解決、TCP接続、TLSハンドシェイク、VLESS認証のどの段階まで進んだかを見ます。ブラウザーで複数のページを一度に開くのではなく、まず軽いページを1つ開き、その後に別のドメインを試すと原因を追いやすくなります。
結論:接続成功表示よりログの段階を見る
Reality設定の確認では、VPNが有効になったかより、ログにTLSハンドシェイク完了後の通信が記録されているかを重視します。ハンドシェイク前に停止しているなら公開鍵、SNI、Short ID、時刻を優先して確認してください。
- 接続先へ到達しない:アドレス、ポート、端末のネットワーク状態を確認します。ドメインの名前解決が失敗している場合はDNSも調べます。
- TLSまたはRealityで失敗する:SNI、公開鍵、Short ID、指紋、端末時刻を確認します。数分以上の時刻ずれは証明書検証に影響することがあります。
- 認証に失敗する:UUIDの貼り付けミス、余分な空白、期限切れの利用者情報、サーバー側のUUID変更を確認します。
- 接続済みだが通信できない:ルーティング、DNS、AndroidのVPN許可、アプリごとの除外設定を確認します。ノードの接続成功と全アプリの通信成功は別の結果です。
公開鍵とUUIDは同じものですか?
違います。UUIDはVLESS利用者の認証情報、公開鍵はRealityのサーバー検証情報です。配布文書の「id」と「publicKey」をそれぞれ対応する欄へ入力してください。
SNIには接続先アドレスを入力しますか?
必ずしも同じではありません。SNIはサーバー管理者が指定したServer Nameを使います。アドレスがIPで、SNIがドメイン名という構成もあります。
Short IDが空欄でも接続できますか?
サーバーが空のShort IDを許可している場合は可能です。配布値があるのに空欄にしたり、適当な値を生成したりするとRealityの検証に失敗します。
指紋は必ずchromeにしますか?
指定がなければchromeがよく使われますが、サーバー側の案内に別の値がある場合はそちらを使います。指紋だけを変更しても、公開鍵やSNIの不一致は解決しません。
接続できないときの入力ミスを切り分ける
設定を最初から作り直す前に、正常なノードが同じ端末で動作するかを確認します。別のVLESSノードや、同じサーバー管理者が提供する動作確認済みノードが接続できるなら、V2RayNGや端末のVPN機能ではなく、今回入力した値に問題がある可能性が高くなります。一方、すべてのノードが接続できない場合は、ネットワーク、VPN許可、アプリのバックグラウンド制限を先に確認してください。
| 症状 | 優先して確認する項目 | 対処 |
|---|---|---|
| 直後にTLSエラー | SNI、公開鍵、Short ID、時刻 | 配布値と1文字ずつ比較する |
| タイムアウト | アドレス、ポート、ネットワーク | ホスト名解決とポート指定を確認する |
| 認証失敗 | UUID、Flow、サーバー側利用期限 | UUIDを再コピーし、余分な空白を削除する |
| 接続後に通信なし | VPN許可、DNS、ルーティング | V2RayNGを再起動し、1つのページで再検証する |
URLインポートで登録したノードが動作しない場合は、URL全体が間違っているとは限りません。リンク内のパラメーター名とV2RayNGの項目名がバージョンによって異なったり、リンク生成側が省略可能な値を省略したりすることがあります。インポート後に詳細画面を開き、SecurityがReality、ネットワークがTCP、Flowが指定値、公開鍵とShort IDが保存されているかを確認してください。
プロファイルを安全に管理する
VLESS Realityの設定値には、接続先だけでなく利用者を識別するUUIDが含まれます。プロファイルの共有やバックアップを行う場合は、UUID、サブスクリプションURL、サーバーアドレスを公開範囲に含めないよう注意してください。画面キャプチャを保存するときも、QRコードやリンク全体をそのまま第三者へ送らないことが重要です。
複数のノードを登録する場合は、「地域」「用途」「作成日」などをプロファイル名に含めると、障害発生時に比較しやすくなります。サーバー側で公開鍵やShort IDが更新されたときは、古いプロファイルを残したまま新しいプロファイルを別名で作成すると、変更前後の動作を確認できます。古いノードを削除する前に、現在接続中のプロファイルを間違えていないか確認してください。
基本設定が完成した後で、アプリごとの分流、DNS方式、バッテリー最適化の除外などを調整します。最初から複雑なルールを追加すると、Realityの認証エラーとルーティングエラーを区別しにくくなります。まずV2RayNGの標準設定で1つのノードを安定して接続し、その後に必要な機能を一つずつ追加するのが安全です。