はい、承知いたしました。Android版v2rayNGの詳しい使い方と設定ガイドについて、約5000語の詳細な記事を記述します。
Android版v2rayNG:使い方と設定ガイド – 詳細解説
インターネットは現代社会の基盤ですが、特定の地域では情報へのアクセスが制限されたり、オンラインでのプライバシーが侵害されたりする懸念が存在します。このような状況において、検閲を回避し、より安全で自由なインターネット接続を実現するための技術が重要となります。その中でも、v2ray(およびその派生であるXray)は、多様なプロトコルと高度な設定オプションを備え、高い柔軟性と耐検閲性を持つことから注目されています。
Android版クライアントであるv2rayNGは、この強力なV2Ray/Xrayコアを手軽にAndroidデバイスで利用するための人気のアプリです。しかし、その多機能さゆえに、設定項目が多く、初めて使うユーザーにとっては複雑に感じられることも少なくありません。
この記事では、Android版v2rayNGのインストールから基本的な接続方法、そして高度な設定オプションに至るまで、網羅的かつ詳細に解説します。約5000語に及ぶこのガイドを通じて、v2rayNGを最大限に活用し、あなたのインターネット体験をより安全で自由なものにするための知識を身につけていきましょう。
1. はじめに:v2rayNGとは何か、なぜ選ばれるのか
1.1 v2rayNGとは
v2rayNGは、オープンソースのプロジェクトV(V2Ray)およびそのフォークであるXrayのAndroid向けクライアントアプリケーションです。V2Ray/Xrayは、主にネットワークトラフィックのプロキシおよびルーティングを目的として設計されており、単なるVPNやShadowsocksクライアントとは一線を画す多機能性を持っています。
v2rayNGは、このV2Ray/Xrayコアをグラフィカルユーザーインターフェース(GUI)を介して操作することを可能にし、Androidデバイス上でV2Ray/Xrayサーバーへの接続を容易にします。ユーザーはv2rayNGを通じて、V2Ray/Xrayがサポートする様々なプロトコル(VMess, VLESS, Shadowsocks, Trojan, Socks, HTTPなど)を利用して、インターネットに接続することができます。
1.2 なぜv2rayNGが選ばれるのか
v2rayNGが多くのユーザーに選ばれる理由はいくつかあります。
- 多様なプロトコル対応: VMess, VLESS, Shadowsocks, Trojanといった主要なプロキシプロトコルに加え、SocksやHTTPプロキシとしても機能します。これにより、様々なサーバータイプに対応できます。
- 高度なトランスポート設定: TCP、mKCP、WebSocket、HTTP/2、QUIC、gRPCなど、多様なトランスポートプロトコルをサポートし、それぞれに細かい設定が可能です。これにより、特定のネットワーク環境(例: 制限されたネットワーク)においても接続を確立したり、通信を最適化したりすることが可能です。TLS/SSLとの組み合わせにより、通信内容を秘匿し、検閲を回避する能力を高めます。
- 強力なルーティング機能: アプリやドメイン、IPアドレスなどに基づいて、トラフィックを特定のサーバー経由にする(Proxy)、直接インターネットに接続する(Direct)、あるいはブロックする(Block)といった柔軟なルーティング設定が可能です。これにより、必要なトラフィックだけをVPN経由にしたり、特定のトラフィックをブロックしたりすることができます。
- 高性能なV2Ray/Xrayコア: ベースとなっているV2Ray/Xrayコアは、高いパフォーマンスと安定性を誇ります。特にVLESSプロトコルとXTLS/Realityトランスポートは、高い耐検閲性と低遅延を実現するとされています。
- オープンソース: アプリケーション自体とベースとなるコアがオープンソースであるため、透明性が高く、セキュリティ上の懸念が少ないと考えられています。
- 活発な開発: コアプロジェクトもv2rayNGアプリ自体も活発に開発されており、新しい技術の導入やバグ修正が継続的に行われています。
これらの特徴により、v2rayNGは単に「VPNのように使う」だけでなく、より複雑で特定のニーズに対応できる柔軟なツールとして利用されています。
2. v2rayNGのインストール
v2rayNGをAndroidデバイスにインストールする方法は主に二つあります。Google Playストアからのインストールと、GitHubからのAPKファイルのダウンロード・インストールです。
2.1 Google Playストアからのインストール
最も一般的で簡単な方法です。
- AndroidデバイスでGoogle Playストアアプリを開きます。
- 検索バーに「v2rayNG」と入力して検索します。
- 検索結果から「v2rayNG」を見つけ、タップします。開発者が「v2rayNG」であることを確認してください。
- 「インストール」ボタンをタップします。
- アプリが必要とする権限を確認し、問題なければ許可してインストールを続行します。
- インストールが完了したら、「開く」ボタンをタップしてアプリを起動できます。
Google Playストア経由でのインストールは、アプリの自動更新が利用できるため、常に最新の状態を保ちやすく推奨される方法です。
2.2 GitHubからのAPKダウンロード・インストール
特定の理由(例: Google Playストアが利用できない地域、最新のベータ版を使いたい、過去のバージョンに戻したいなど)により、GitHubリポジトリからAPKファイルを直接ダウンロードしてインストールすることも可能です。
- Androidデバイスのウェブブラウザ(Chromeなど)を開きます。
- v2rayNGのGitHubリポジトリのリリース (https://github.com/2dust/v2rayNG/releases) ページにアクセスします。
- インストールしたいバージョン(通常は最新版)を見つけ、そのリリースの「Assets」を展開します。
v2rayNG_x.y.z.apk
のようなファイル名(x.y.zはバージョン番号)を探してタップし、ダウンロードを開始します。- ダウンロードが完了すると、通常、通知シェードにダウンロード完了の通知が表示されます。その通知をタップするか、ファイルマネージャーアプリを使ってダウンロードしたAPKファイルを探します。
- APKファイルをタップしてインストールを開始します。
- 注意: Google Playストア以外からのアプリインストールを初めて行う場合、デバイスの設定で「提供元不明のアプリのインストールを許可」を有効にする必要があります。これはセキュリティ上のリスクを伴うため、信頼できる提供元(この場合はv2rayNGの公式GitHubリポジトリ)からのみ行うようにしてください。通常、APKファイルを開こうとした際に、この設定変更を促すダイアログが表示されますので、それに従って設定を変更できます。
- インストールが必要とする権限を確認し、インストールを完了します。
- インストールが完了したら、アプリドロワーからv2rayNGを探して起動できます。
GitHubからのインストールの場合、アプリの自動更新は利用できません。新しいバージョンを使いたい場合は、再度GitHubからAPKをダウンロードしてインストールする必要があります。
2.3 必要な権限
v2rayNGは、その機能を実現するためにいくつかの権限を要求します。
- VPN接続の確立: v2rayNGがVPNサービスとして機能し、デバイス全体のネットワークトラフィックをフックするために必要です。初めて接続を開始する際に、システムからVPN接続の許可を求められます。
- カメラ: QRコードからサーバー情報をインポートする際に必要です。
- ストレージ読み取り/書き込み: 設定ファイルやログの保存、あるいはサブスクリプション情報のキャッシュなどに使用される可能性があります。
- バッテリー最適化を無視: バックグラウンドでの接続を安定させるために推奨される設定です。システムのバッテリー最適化によってアプリのバックグラウンド通信が制限されるのを防ぎます。
これらの権限は、v2rayNGの機能を利用するために正当なものです。ただし、権限を要求する不審なアプリには注意が必要です。公式な提供元からインストールしたv2rayNGであれば、これらの権限要求は正常な振る舞いです。
3. 基本設定と接続方法
v2rayNGをインストールしたら、次はサーバー情報を設定し、接続を開始します。サーバー情報は、VPNプロバイダやサーバー管理者から提供されるのが一般的です。
3.1 サーバー情報の取得方法
サーバー情報は、主に以下の形式で提供されます。
- 手動入力用のパラメータ: アドレス、ポート、UUID、パスワード、暗号化方法、プロトコルタイプ、トランスポート設定などが個別に提供される形式です。
- QRコード: アプリで読み取ることで、サーバー情報全体を一度に取り込める形式です。
- リンク(URL):
vmess://...
,vless://...
,ss://...
,trojan://...
のような形式で、クリックまたはコピー&ペーストすることでアプリに取り込めます。 - サブスクリプションURL: 複数のサーバー情報を含むリストが提供されるURLです。定期的にこのURLから情報を更新することで、サーバーリストを最新の状態に保てます。
3.2 サーバーの追加
v2rayNGのメイン画面は、設定済みのサーバーリストが表示される場所です。ここに新しいサーバー情報を追加します。画面右下の「+」ボタンをタップすると、サーバー追加の選択肢が表示されます。
3.2.1 手動で追加(Manually input config)
提供されたパラメータを見ながら、各項目を直接入力する方法です。最も理解が深まりますが、入力ミスに注意が必要です。手動追加を選択すると、プロトコルを選択する画面になります。ここでは主要なプロトコルについて、設定項目とその意味を説明します。
プロトコル選択:
-
VMess: 古くからある主要プロトコル。
- Alias (任意): サーバーリストで表示される名前。任意で設定します。
- Address: サーバーのIPアドレスまたはドメイン名。
- Port: サーバーがリッスンしているポート番号。
- User ID (UUID): サーバーとクライアント間で一致させる必要がある識別子。通常、32桁の16進数(例:
a1b2c3d4-e5f6-7890-1234-567890abcdef
)です。 - Additional ID (AlterId): 古いVMessプロトコルで使われた設定。サーバーとのネゴシエーションに使われます。最近のサーバーでは0の場合が多いですが、サーバー側の設定と一致させる必要があります。通常は0を指定します。
- Encryption: 暗号化方法。
auto
が一般的で、クライアントとサーバーがネゴシエーションします。特定の暗号化(aes-128-gcm
,chacha20-poly1305
など)を指定する場合もあります。互換性の問題がない限りauto
で構いません。 - Transfer Protocol (Transport): トランスポートプロトコル。TCP, mKCP, WebSocket, HTTP/2, QUIC, gRPCなどから選択します。各オプションを選択すると、そのトランスポート固有の詳細設定項目が表示されます。これは非常に重要な設定項目で、後ほど詳しく解説します。
- Pseudo Header: HTTP/2などで使用される偽装ヘッダータイプ。ほとんどの場合
none
またはhttp
です。 - Path: WebSocketやHTTP/2などで使用されるパス(例:
/ws
,/h2
)。サーバー側の設定と一致させる必要があります。 - TLS: TLS/SSL暗号化を使用するかどうか。有効にする場合、関連する設定項目(SNI, Allow insecureなど)が表示されます。検閲回避やセキュリティのために非常に重要です。
- SNI (Server Name Indication): TLSハンドシェイク時にサーバーに通知するホスト名。サーバーのドメイン名や、偽装したいドメイン名(Webサイトに偽装する場合など)を指定します。検閲回避に利用されます。空欄にするとAddressと同じ値が使われることが多いですが、明示的に指定するのが確実です。
- Allow insecure: TLS証明書の検証をスキップするかどうか。通常は無効にして証明書を検証すべきですが、自己署名証明書や特定の状況では有効にする必要があります。セキュリティリスクを伴います。
- AlPN (Application-Layer Protocol Negotiation): TLS上で使用するアプリケーションプロトコルを指定します。HTTP/1.1, h2などを指定します。サーバー側の設定と一致させます。
-
VLESS: VMessの進化版、軽量化されています。
- Alias, Address, Port: VMessと同様。
- User ID (UUID): VMessと同様。
- Flow: VLESS固有の設定。データ転送のフロー制御方法。
xtls-rprx-vision
,xtls-rprx-origin
などが選択可能です。XTLSを使用する場合にパフォーマンスや耐検閲性に関わる重要な設定です。サーバー側の設定と厳密に一致させる必要があります。 - Encryption: VLESSプロトコル自体の暗号化は通常
none
です。これは、TLS/XTLSで通信全体を暗号化することを前提としているためです。 - Transfer Protocol (Transport), TLS, SNI, Allow insecure, AlPN: VMessと同様の設定項目がありますが、VLESSは通常TLSまたはXTLSと組み合わせて使用されます。特にReality設定は、TLSをさらに高度に偽装する機能です。
- Reality (VLESS固有): TLSハンドシェイクを傍受から隠蔽し、既存のWebサイトとのTLSハンドシェイクに偽装する強力な耐検閲機能。有効にすると以下の設定項目が現れます。
- Enabled: Realityを有効にするか。
- Public Key: サーバー側の秘密鍵に対応する公開鍵。非常に長い文字列です。サーバー管理者から提供されます。
- Short ID (SID): サーバー側で設定された短い識別子。省略可能な場合があります。
- SpiderX (任意): クライアントが接続した際に、指定したWebサイトのコンテンツを返すようにサーバーを設定する場合に使用。偽装目的。Webサイトのパスを指定します。通常は空欄で構いません。
- Server Name: 偽装するWebサイトのドメイン名(Fallback Domain)。TLSハンドシェイクをこのドメインへの正規の接続に見せかけます。実際のサーバーアドレスとは異なるドメインを指定できますが、指定したドメイン名のWebサイトがそのアドレスでアクセス可能である必要があります(またはFallback設定)。
-
Shadowsocks (SS): シンプルで広く使われているプロトコル。
- Alias, Address, Port: VMessと同様。
- Encryption: 暗号化方法。
aes-256-gcm
,chacha20-poly1305
,2022-blake3-aes-gcm
など、様々なアルゴリズムがあります。サーバー側の設定と一致させます。 - Password: サーバー接続に必要なパスワード。
- Plugin: Shadowsocksプロトコルを難読化(obfuscation)するためのプラグイン設定。
v2ray-plugin
などが一般的です。v2ray-plugin
を選択すると、以下の設定が表示されます。- Plugin Options: プラグインの追加設定(例:
mode=websocket;host=example.com;path=/ws;tls
)。WebSocket over TLSなど、様々なトランスポート設定をここに記述します。サーバー管理者から提供される文字列をそのまま入力することが多いです。 - TLS: v2ray-pluginがTLSを使用するかどうか。Plugin Optionsで指定する場合と連動します。
- Allow insecure: v2ray-pluginのTLS証明書検証をスキップするか。
- SNI: v2ray-pluginのTLSで使用するSNI。
- Plugin Options: プラグインの追加設定(例:
-
Trojan: TLSに依存してプロトコル自体を隠蔽。
- Alias, Address, Port: VMessと同様。Portは443が使われることが多いです。
- Password: サーバー接続に必要なパスワード。複数指定できる場合があります。
- TLS: Trojanプロトコルは常にTLSを使用します。有効にする必要があります。
- Allow insecure: TLS証明書の検証をスキップするか。
- SNI: TLSで使用するSNI。サーバーのドメイン名などを指定します。
- AlPN: TLSで使用するAlPN。
- Enable WebSocket: TrojanプロトコルをWebSocket上でトンネルするか。有効にするとWebSocket設定項目が表示されます。
- Path: WebSocketパス。
- Headers: 追加のWebSocketヘッダー(任意)。
-
Socks: 標準的なSocksプロキシ。
- Alias, Address, Port: VMessと同様。
- User name, Password: 認証が必要な場合に使用。
-
HTTP: 標準的なHTTPプロキシ。
- Alias, Address, Port: VMessと同様。
- User name, Password: 認証が必要な場合に使用。
各プロトコルの設定項目を正確に入力し、「✓」ボタンをタップして保存します。
3.2.2 QRコードから追加(Scan QR Code)
最も簡単で正確な方法です。
- メイン画面で「+」ボタンをタップし、「Scan QR Code」を選択します。
- v2rayNGがカメラの使用許可を求める場合、許可します。
- カメラビューが表示されるので、画面上に表示されているサーバー情報のQRコードを写します。
- QRコードが認識されると、自動的にサーバー情報が入力された状態の追加画面が表示されます。内容を確認し、「✓」ボタンをタップして保存します。
3.2.3 クリップボードから追加(Import config from clipboard)
サーバー情報がURL形式(vmess://...
, vless://...
など)で提供された場合に使用します。
- 提供されたURLをコピーします。
- v2rayNGアプリを開きます。クリップボードに有効なv2ray/Xray設定情報が含まれている場合、アプリ起動時またはメイン画面に戻った際に自動的に認識し、インポートするか尋ねるダイアログが表示されることがあります。
- もし自動認識されない場合、メイン画面で「+」ボタンをタップし、「Import config from clipboard」を選択します。
- クリップボードの内容が解析され、サーバー情報が入力された状態の追加画面が表示されます。内容を確認し、「✓」ボタンをタップして保存します。
3.2.4 サブスクリプションを追加(Subscribe setting)
複数のサーバー情報を提供するサブスクリプションURLを利用する方法です。サーバーリストの管理が容易になります。
- メイン画面左上のメニューアイコン(三本線)をタップし、「Subscription group setting」を選択します。
- 画面右下の「+」ボタンをタップします。
- Remark: サブスクリプションの名前(例: “My V2Ray Servers”)。任意で設定します。
- Optional Url: 提供されたサブスクリプションURLを貼り付けます。
- 「✓」ボタンをタップして保存します。
- サブスクリプションリストに新しい項目が追加されます。メイン画面に戻ります。
- メイン画面を下にスワイプするか、右上のメニューアイコン(縦三点)をタップして「Update subscription」を選択すると、サブスクリプションURLからサーバーリストが読み込まれ、メイン画面に表示されます。
サブスクリプション設定画面で、各サブスクリプション項目の歯車アイコンをタップすると、以下の設定が可能です。
- Auto update: アプリ起動時や定期的に自動的に更新するかどうか。
- Auto update interval (mins): 自動更新の間隔(分単位)。
- Enable Vpn by group: このグループのサーバーに接続中に、特定のアプリだけをVPN経由にする設定(後述のルーティング設定と連携)。
3.3 接続の開始と停止
サーバーリストにサーバーが追加されたら、接続を開始できます。
- メイン画面のサーバーリストから、接続したいサーバーをタップして選択します。選択されたサーバーは背景色が変化するなどして強調表示されます。
- 画面右下のV字アイコン(または丸いボタン)をタップします。
- 初めて接続する場合、Androidシステムから「VPN接続のリクエスト」が表示されます。「OK」をタップしてv2rayNGにVPN接続の許可を与えます。
- V字アイコンが緑色に変化し、接続状態が表示されれば接続成功です。通知シェードにもv2rayNGがVPN接続中であることが表示されます。
- 接続を停止するには、再度V字アイコンをタップします。アイコンが灰色に戻れば接続停止です。
3.4 接続テスト
サーバーリスト上の各サーバー項目をタップすると、詳細表示の下に「Test TCPing」と「Test RealDelay」というボタンがあります。
- Test TCPing: 選択したサーバーへのTCP Pingを実行し、遅延時間(ミリ秒)を表示します。サーバーの応答性や距離の目安になります。リスト表示に戻った際に、Ping値がサーバー項目の右側に表示されるようになります。
- Test RealDelay: 選択したサーバーを経由して特定のURL(デフォルトはGoogle)にアクセスし、実際の往復時間(RTT)を測定します。より実際の接続に近い遅延を測定できます。
これらのテスト結果は、複数のサーバーの中から最適なサーバーを選択する際の参考になります。Ping値が低いほど、一般的に応答速度が速い傾向があります。
4. 詳細設定
v2rayNGは、基本的な接続だけでなく、より詳細な設定を行うことで、特定のニーズに合わせたカスタマイズが可能です。メイン画面左上のメニューアイコン(三本線)をタップすると、設定メニューが表示されます。
4.1 Setting(アプリ全体の設定)
アプリ全体の動作に関する設定項目です。
- Log level: ログの詳細度(Debug, Info, Warning, Error, None)。問題発生時のデバッグに役立ちますが、詳細にするほどファイルサイズが大きくなります。
- Disable Share wait: 不明
- Show test results (ping): サーバーリストにPingテスト結果を表示するか。
- Keep alive: アプリをバックグラウンドで実行し続けるための設定。バッテリー最適化の無視設定と関連します。
- Disable Battery Optimization: Androidシステムのバッテリー最適化によるv2rayNGの終了を防ぎます。安定した接続のために非常に重要です。タップすると、バッテリー最適化設定画面に遷移し、v2rayNGをリストから選択して「最適化しない」などを選びます。
- Start upon boot: デバイス起動時に自動的にv2rayNGを起動し、前回のサーバーに接続するかどうか。
- Vpn share socks/http port: v2rayNGがローカルのSocks/HTTPプロキシとして動作する際のポート番号。他のアプリやデバイスからこのローカルプロキシを経由してインターネットにアクセスしたい場合に設定します。
- Per-App Proxy: アプリごとにVPN接続を有効/無効にする設定。タップすると、インストールされているアプリ一覧が表示され、各アプリに対して「Proxy」、「Direct」、「Block」を選択できます。
Proxy
: そのアプリの通信をv2rayNG経由でプロキシします。Direct
: そのアプリの通信はv2rayNGを経由せず、直接インターネットに接続します。Block
: そのアプリの通信をブロックします。- この設定は、特定のアプリだけをVPN経由にしたい場合(例: 海外の動画アプリだけVPN、国内の銀行アプリはDirect)や、逆に特定のアプリ(例: ゲーム)はVPN経由にしたくない場合に非常に便利です。設定項目に
Allow apps
(許可リスト方式)とDisallow apps
(除外リスト方式)の切り替えがあります。
- Proxy IPv4/IPv6: IPv4またはIPv6のトラフィックをプロキシするかどうか。
- Route: トラフィックのルーティング設定。非常に重要な項目で、後述の「Routing」で詳しく解説します。
- Fake DNS: Fake DNS機能を有効にするか。一部のルーティング設定や耐検閲技術で使用されます。有効にすると、存在しないIPアドレスを応答することでDNSリクエストをフックし、アプリレベルでのルーティングをより正確に行えるようになります。
- Domain Strategy: ドメイン名を解決する際の戦略。
AsIs
(そのまま),UseIp
(IPアドレスを使用),UseIPv4
,UseIPv6
など。ルーティング設定におけるドメインベースのルールの挙動に影響します。通常はAsIs
で問題ありません。 - Mtu: Maximum Transmission Unit。ネットワークの最大伝送単位サイズ。通常はデフォルトで問題ありませんが、特定のネットワーク環境で接続が不安定な場合に調整することがあります。
- Local DNS port: v2rayNGがローカルDNSサーバーとして動作する際のポート番号。
- Remote DNS: v2rayNGが使用するリモートDNSサーバーのアドレス。デフォルトは空欄で、システムDNSを使用します。プライバシー保護やDNSブロッキング回避のために、信頼できるDNSサーバー(例: 8.8.8.8, 1.1.1.1, GoogleのDNS over TLS/HTTPSなど)を指定できます。
- Remote DNS Method: リモートDNSにクエリする際のメソッド。
System
,Handpicked
(指定したRemote DNS),UseProxy
(プロキシ経由でリモートDNSにクエリ)から選択できます。UseProxy
を選択すると、DNSクエリ自体もVPN経由になるため、DNSリークを防ぐのに有効です。 - DNS Cache: DNSキャッシュを有効にするか。
- Theme: アプリのテーマ(Light, Dark, System default)。
- Language: アプリの表示言語。
4.2 Routing(高度なルーティング設定)
v2rayNGの最も強力な機能の一つが、きめ細かいルーティング設定です。これにより、どのようなトラフィックをどのサーバーに送るか、あるいは直接接続するかを制御できます。「Setting」メニューから「Route」をタップすると設定画面が開きます。
v2rayNGのルーティングは、V2Ray/Xrayのルーティング設定に基づいています。基本的には、トラフィックのプロパティ(宛先ドメイン、宛先IP、送信元アプリなど)に基づいて、あらかじめ定義された「Rules」(ルール)と照合し、一致したルールに対応する「Outbound」(出力)にトラフィックを振り分けます。
- Outbounds: トラフィックの出力先。v2rayNGでは主に以下の3つが定義されています。
proxy
: v2rayNGで設定した選択中のサーバーを経由します。direct
: v2rayNGを経由せず、デバイスのデフォルトネットワークで直接インターネットに接続します。block
: トラフィックを破棄します。
- Rules: トラフィックをOutboundに振り分けるための条件。複数の条件を組み合わせて複雑なルールを作成できます。リスト形式で表示され、上から順に評価されます。最初に一致したルールが適用されます。
ルーティング設定画面:
画面上部で、デフォルトの挙動を指定できます。
- Global routing:
Proxy all
: 全てのトラフィックを選択中のサーバー経由にする(デフォルトのVPNクライアントのような挙動)。Bypass Lan & Mainland China
: LAN内の通信と中国本土への通信はDirect、それ以外はProxy(中国のユーザー向けの一般的な設定)。Bypass Lan
: LAN内の通信はDirect、それ以外はProxy。Bypass Lan & GeoIP:cn
: LAN内の通信とGeoIPで中国と判定されたIPへの通信はDirect、それ以外はProxy。Bypass Lan & GeoSite:cn
: LAN内の通信とGeoSiteで中国に関連付けられたドメインへの通信はDirect、それ以外はProxy。Bypass Lan & GeoSite:private
: LAN内の通信とプライベートIPアドレスへの通信はDirect、それ以外はProxy。Custom rules
: 下記の「Rules」で定義したカスタムルールを適用します。最も柔軟な設定方法です。
ほとんどの場合、「Global routing」で基本的な挙動(例: Proxy all
または Bypass Lan & GeoIP:cn
)を選択し、必要に応じて「Custom rules」を追加するのが効率的です。
Custom Rules:
「Global routing」で Custom rules
を選択した場合、ここで定義したルールが適用されます。リスト形式で表示され、ルールを追加・編集・削除・並べ替えできます。
「+」ボタンをタップして新しいルールを追加します。ルール設定画面では以下の項目を設定できます。
- Type: ルールのタイプ。「Rules」を選択します。
- Protocols: マッチさせるプロトコル(tcp, udpなど)。通常は指定しません。
- Port: マッチさせる宛先ポート番号(例: 80, 443, 22)。
- Network: マッチさせるネットワークタイプ(tcp, udp, tcp, udp)。
- Source IP: マッチさせる送信元IPアドレスまたはCIDR(例:
192.168.1.0/24
)。 - Source Port: マッチさせる送信元ポート番号。
- User: マッチさせるユーザーID(ほぼ使用しません)。
- Inbound Tag: マッチさせるInbound設定のタグ(ローカルプロキシ利用時などに使用)。
- Outbound Tag: このルールにマッチした場合にトラフィックを振り分けるOutboundを指定します。ここで
proxy
,direct
,block
のいずれかを選択します。 - Domain: マッチさせる宛先ドメイン名。ワイルドカードや正規表現も使用可能です。
domain:example.com
: example.comというドメインに完全に一致。domain:sub.example.com
: sub.example.comに完全に一致。domain:.example.com
: example.comとその全てのサブドメイン(www.example.com, sub.example.comなど)にマッチ。regexp:.*example.com$
: 正規表現でexample.comで終わるドメインにマッチ。geosite:cn
: 事前に定義された中国関連のドメインリストにマッチ。
- IP: マッチさせる宛先IPアドレスまたはCIDR。
1.2.3.4
: 特定のIPアドレスに一致。1.2.3.0/24
: サブネットに一致。geoip:cn
: 事前に定義されたGeoIP(地域情報)データベースで中国と判定されたIPアドレスにマッチ。geoip:private
: プライベートIPアドレス(LAN内アドレス)にマッチ。
- Process (Android only): マッチさせるアプリケーションのパッケージ名(例:
com.android.chrome
)。特定のアプリの通信だけを制御したい場合に非常に便利です。パッケージ名は、Androidの設定画面や別途アプリ情報ビューアーアプリなどで確認できます。
カスタムルールの応用例:
-
特定のアプリだけVPN経由にする:
- ルーティング設定を
Custom rules
に変更。 Per-App Proxy
設定で、全てのアプリをDirect
またはBlock
に設定しておく(これはGUIのPer-App Proxy
設定ですが、ルーティングルールと組み合わせることでより柔軟になります)。ここでは、ルーティングルールでアプリを指定するため、Per-App Proxy
はデフォルト(全てProxy)のままでも構いませんが、ルールの方が優先されます。- 新しいルールを追加します。
Process
にVPN経由にしたいアプリのパッケージ名を入力します。Outbound Tag
をproxy
に設定します。- このルールをリストの上の方に移動させます。
- リストの最後に、
Outbound Tag
をdirect
またはblock
に設定したルールを追加します(条件は設定不要。全てのトラフィックにマッチします)。これにより、上のルールにマッチしなかったトラフィックは全てDirect/Blockになります。
- ルーティング設定を
-
国内サイトはDirect、海外サイトはProxy:
- ルーティング設定を
Custom rules
に変更。 - 新しいルールを追加します。
Domain
にgeosite:cn
と入力し、Outbound Tag
をdirect
に設定します。- 新しいルールを追加します。
IP
にgeoip:cn
と入力し、Outbound Tag
をdirect
に設定します。- 新しいルールを追加します。
IP
にgeoip:private
と入力し、Outbound Tag
をdirect
に設定します(LAN内通信をDirectにするため)。- これらのDirectルールをリストの上の方に移動させます。
- リストの最後に、
Outbound Tag
をproxy
に設定したルールを追加します(条件は設定不要)。これにより、上のDirectルールにマッチしなかったトラフィックは全てProxyになります。
- ルーティング設定を
カスタムルールは、上から順に評価されるため、ルールの順番が非常に重要です。より具体的な(対象を絞った)ルールを上に配置し、より一般的な(対象が広い)ルールを下の方に配置するのが基本です。
5. トランスポート設定の詳細
V2Ray/Xrayの強力さの核心の一つは、多様で柔軟なトランスポートプロトコルをサポートしている点です。これにより、単に通信を暗号化するだけでなく、通信の見た目を偽装したり、特定のネットワーク環境での性能を最適化したりすることが可能になります。サーバーを追加または編集する際、「Transfer Protocol (Transport)」で設定できます。
各プロトコル(VMess, VLESS, Shadowsocks Plugin, Trojan WSなど)で利用可能なトランスポートは異なりますが、基本的な考え方や設定項目は共通しています。
5.1 主要なトランスポート
- TCP: 最も基本的なトランスポート。信頼性の高いバイトストリームを提供しますが、検閲システムにとっては識別しやすい形式です。
- TLS: TCPと組み合わせて使用することがほとんどです。通信内容を暗号化し、TLSを使用していることを示唆します。これにより、SSL/TLSを使用する正規のWebサイトへのアクセスに見せかけることができます。TLS設定項目(SNI, Allow insecure, AlPN)が重要になります。
- mKCP: UDPをベースにした、損失耐性があり高速化されたトランスポートプロトコル。低遅延やパケットロスが多いネットワーク環境(例: モバイルネットワーク、混雑した回線)に適しています。TCPより設定項目が多く複雑です。
- mtu, tti: パケットサイズと送信間隔。
- uplinkCapacity, downlinkCapacity: 帯域幅の仮想的な設定。
- writeBuffer, readBuffer: バッファサイズ。
- header/pseudo header: ヘッダータイプ(none, srtp, utp, wechat-video, wechat-voice, dtls, wireguard)。通信の見た目を偽装する目的で使用されます。
- seed: 難読化のためのシード文字列。
- WebSocket (WS): Webブラウザで双方向通信に使用されるプロトコル。ポート80(HTTP)や443(HTTPS)上で動作させることができ、Webトラフィックに紛れ込ませやすいという特徴があります。CDN(Content Delivery Network)と組み合わせることで、トラフィックをCDN経由に見せかけ、検閲を回避する手法がよく用いられます。
- Path: WebSocket接続のパス(例:
/my-ws-path
)。サーバー側の設定と一致させる必要があります。 - Headers: HTTPヘッダーを追加できます(例:
Host: example.com
)。CDNを使用する場合などに重要です。 - TLS: WS over TLS (WSS)。HTTPSトラフィックに紛れ込ませるために使用します。WebSocketと組み合わせることで、ポート443上のHTTPS通信に見せかけることができ、非常に効果的な耐検閲手段となります。TLS設定項目が重要になります。
- Path: WebSocket接続のパス(例:
- HTTP/2 (H2): HTTPプロトコルの新しいバージョン。ポート80や443上で動作し、HTTPトラフィックに紛れ込ませやすいです。WebSocketと同様にCDNとの組み合わせも可能です。
- Path: HTTP/2接続のパス(例:
/my-h2-path
)。複数指定できます。 - Headers: HTTP/2ヘッダー。
- TLS: H2 over TLS。HTTPSトラフィックに紛れ込ませるために使用します。TLS設定項目が重要になります。
- Path: HTTP/2接続のパス(例:
- QUIC: UDPベースの新しいトランスポートプロトコル。Googleが開発し、HTTP/3の基盤としても使われています。TCPよりも高速で、パケットロスに強いとされています。検閲システムによってはまだ対応が進んでいないため、有効な場合があります。
- security: 暗号化方式(chacha20-poly1305, aes-128-gcm, none)。
- key: 暗号化キー。
- header/pseudo header: ヘッダータイプ(none, quic)。
- gRPC: Googleが開発した高性能RPCフレームワーク。HTTP/2上で動作します。通信の見た目をgRPC通信に偽装できます。
- ServiceName: gRPCサービス名。サーバー側の設定と一致させる必要があります。
- TLS: gRPC over TLS。HTTPSトラフィックに紛れ込ませるために使用します。TLS設定項目が重要になります。
5.2 TLS/SSL設定の重要性
多くのプロトコルとトランスポートにおいて、TLS/SSL(Transport Layer Security)は通信の暗号化と信頼性の確保のために非常に重要です。特に検閲が厳しい環境では、TLSを使用しない通信は容易にブロックされる可能性があります。
TLSを有効にすると、通常以下の設定項目が表示されます。
- Enable TLS: TLS暗号化を使用するかどうか。検閲回避のためには基本的に有効にします。
- Allow insecure: TLS証明書の検証をスキップするかどうか。セキュリティ上のリスクが非常に高いため、特別な理由がない限り無効にすべきです。 自己署名証明書を使用するサーバーに接続する場合などに一時的に有効にすることがありますが、本番運用では正規の証明書を使用すべきです。
- SNI (Server Name Indication): TLSハンドシェイク時にクライアントが接続しようとしているホスト名(ドメイン名)をサーバーに通知する仕組み。検閲システムはこのSNIを見て、接続先がブロック対象のドメインかどうかを判断することがあります。
- 検閲回避におけるSNIの利用:
- サーバーのドメイン名を正確に指定: TLS証明書と一致させることで、正規のTLS接続として確立できます。
- 人気のある別のドメイン名に偽装: ブロックリストに載っていない、人気のあるWebサイトのドメイン名(例:
www.apple.com
,www.microsoft.com
)を指定することで、TLS接続のハンドシェイク部分を正規の通信に見せかける試みです。サーバー側でこの偽装に対応している必要があります(Fallback設定など)。これにより、SNIを監視しているシステムを欺ける可能性があります。 - 空欄: SNIを送信しない設定。一部のシステムではSNIがない接続を不審と見なす場合があります。
- SNIは検閲回避において非常に重要な設定項目です。サーバー管理者から具体的なSNI値を指定されている場合は、それに従ってください。
- 検閲回避におけるSNIの利用:
- AlPN (Application-Layer Protocol Negotiation): TLS上でどのアプリケーションプロトコル(HTTP/1.1, h2, etc.)を使用するかをクライアントとサーバーがネゴシエーションする仕組み。WebSocket over TLSの場合は通常
http/1.1
やh2
、HTTP/2 over TLSの場合はh2
を指定します。サーバー側の設定と一致させます。
6. プロトコルの詳細
v2rayNGがサポートする主要なプロトコルについて、より掘り下げて解説します。各プロトコルにはそれぞれ異なる特徴と最適なユースケースがあります。
6.1 VMess
V2Rayプロジェクト初期から存在する主要なプロトコルです。UUIDとAlterIdを用いて認証を行います。様々な暗号化方式とトランスポートを組み合わせることができます。
- 特徴: 柔軟性が高い。歴史が長く広く使われている。
- AlterId: 過去のプロトコル設計の名残で、サーバーとのネゴシエーションに使われます。最近のV2Ray/Xrayではセキュリティ上の理由からAlterIdを0に設定することが推奨されています。サーバー側がAlterId > 0 を要求している場合のみ、指定された値を入力します。
- 暗号化:
auto
,none
,aes-128-gcm
,chacha20-poly1305
など。auto
はクライアントとサーバー間で利用可能な最適な方法を選択しますが、特定の暗号化方式が強制される場合もあります。パフォーマンスやセキュリティの観点から、AES-128-GCMやChaCha20-Poly1305などの新しいAEAD暗号が推奨されます。 - トランスポート連携: TCP, mKCP, WebSocket, HTTP/2, QUIC, gRPCなど、ほとんどのトランスポートと組み合わせ可能です。特にWebSocket over TLSやHTTP/2 over TLSとの組み合わせは、Webトラフィックに偽装できるため耐検閲性が高いとされています。
6.2 VLESS
VMessの進化版として設計されました。VMessよりも軽量で、プロトコル自体に暗号化層を持ちません。これは、通信全体をTLS/XTLSで暗号化することを前提としているためです。AlterIdは不要になりました。
- 特徴: 軽量、高性能。XTLSとの連携による高いパフォーマンスと耐検閲性。
- Encryption: 通常
none
を指定します。通信の暗号化はTLS/XTLSに依存します。 - Flow: VLESS固有の高度な機能で、主にXTLSと連携します。
xtls-rprx-origin
: オリジナルのXTLSフロー。プロキシするデータとTLSハンドシェイクのデータを分離せず、全てをTLSトンネルで送信します。xtls-rprx-vision
: Visionと組み合わせたXTLSフロー。TLSハンドシェイク後にプロキシするデータを直接送信できるようになり、オーバーヘッドが削減されパフォーマンスが向上します。Visionは、TLSハンドシェイクをより正規のWebサイトとの通信に近づけるための技術要素です。
- Reality: VLESSの非常に強力な耐検閲機能。TLSハンドシェイクそのものを傍受から隠蔽し、既存の正規WebサイトとのTLSハンドシェイクに完全に偽装します。これにより、TLSトラフィックのMetadata(TLSバージョン、Cipher Suite、Extensionsなど)によるプロトコル識別を防ぎます。
- 有効にするには、サーバー側の公開鍵 (Public Key) が必須です。
- Server Name (Fallback Domain) を指定することで、偽装するWebサイトを選択できます。
- Realityは現時点(2023年末)で最も強力な耐検閲技術の一つと考えられています。
- トランスポート連携: TCP with TLS/XTLS, WebSocket over TLS (WSS), HTTP/2 over TLS (H2), gRPC over TLSなど、TLS/XTLSとの組み合わせが前提となります。
6.3 Shadowsocks (SS)
シンプルでデプロイが容易なため、非常に広く普及しているプロトコルです。Socks5プロトコルを独自に拡張し、暗号化を行っています。
- 特徴: シンプル、軽量、広く普及。多くのプラットフォームで利用可能。
- Encryption:
aes-256-gcm
,chacha20-poly1305
,2022-blake3-aes-gcm
など、多様な暗号化アルゴリズムをサポートします。AEADアルゴリズム(gcm, poly1305系)が推奨されます。 - Password: 認証はパスワードのみで行われます。
- Plugin: Shadowsocksプロトコル自体は比較的に識別されやすいという弱点があります。これを補うために、
v2ray-plugin
などのプラグインを組み合わせることで、WebSocket over TLS, HTTP/2 over TLS, QUIC over TLSなどのトランスポート上にShadowsocksトラフィックを乗せることができます。これにより、耐検閲性が大幅に向上します。v2rayNGでは、「Plugin」設定項目でv2ray-plugin
を選択し、「Plugin Options」に詳細な設定(例:mode=websocket;tls;host=example.com;path=/ws
)を記述します。
6.4 Trojan
TLS/SSLプロトコルに依存して自身を隠蔽するプロトコルです。パスワード認証のみを使用し、TLS接続のように振る舞います。主にポート443を使用します。
- 特徴: TLS接続に偽装するため、比較的識別されにくい。設定が比較的シンプル。
- Password: 認証はパスワードのみ。
- TLS: Trojanプロトコルは常にTLSを使用します。設定項目はTLS関連(SNI, Allow insecureなど)が中心です。
- WebSocket: TrojanプロトコルをWebSocket上でトンネルすることも可能です。これにより、WebSocket over TLSトラフィックとしてさらに偽装度を高めることができます。
7. 実践的なヒントとトラブルシューティング
v2rayNGを快適に、そして安定して利用するために役立つヒントと、よくある問題への対処法です。
7.1 最適なサーバーの選び方
複数のサーバーが利用可能な場合、以下の点を考慮して最適なサーバーを選びましょう。
- Ping値/遅延: Test TCPingやTest RealDelayの結果を参考に、遅延が少ないサーバーを選びます。一般的に、地理的に近いサーバーほど遅延は少なくなります。
- 安定性: 接続が頻繁に切断されないか、速度が安定しているかを確認します。これは実際にしばらく使ってみないと分からない場合が多いです。
- 帯域幅/速度: サーバーのスペックや回線容量によって、利用できる通信速度は異なります。動画視聴や大容量ファイルのダウンロードなどを行う場合は、帯域幅が広いサーバーが必要です。
- プロトコル/トランスポート: ネットワーク環境によっては、特定のプロトコルやトランスポート(例: WebSocket over TLS, VLESS+Reality)の方が繋がりやすい、あるいは速度が出やすい場合があります。いくつか試して最適な組み合わせを見つけましょう。
7.2 接続できない場合のチェックリスト
v2rayNGでサーバーに接続できない、または接続はできるがインターネットにアクセスできない場合、以下の点を順に確認してください。
- サーバー情報が正しいか:
- アドレス、ポート、UUID/パスワード、暗号化方式、AlterId (VMess)、Flow (VLESS)、Public Key (Reality) など、全ての設定項目がサーバー管理者から提供された情報と完全に一致しているか再確認します。特に手動入力の場合は入力ミスがないかよく確認してください。
- QRコードやサブスクリプションURLからのインポートが推奨されます。
- ネットワーク接続自体に問題がないか:
- Wi-Fiまたはモバイルデータ通信が正常に機能しているか確認します。ブラウザなどで通常のインターネットアクセスが可能か試してください。
- サーバーが稼働しているか:
- Test TCPingでPingが通るか試します。Pingが通らない場合は、サーバーが停止している、サーバーアドレスが間違っている、あるいはネットワーク経路上の問題が考えられます。サーバー管理者に確認してください。
- ファイアウォールやセキュリティソフトの影響:
- デバイスにインストールされているファイアウォールアプリやセキュリティソフトが、v2rayNGのVPN接続や特定のポートをブロックしていないか確認します。一時的に無効にして試すことも有効ですが、セキュリティリスクを理解した上で行ってください。
- v2rayNGアプリの権限:
- v2rayNGがVPN接続を作成するための権限を持っているか確認します。初めて接続する際にシステムから許可を求められるはずです。設定 > アプリ > v2rayNG > 権限 などで確認できます。
- バッテリー最適化設定:
- Setting > Disable Battery Optimization を確認し、v2rayNGがバッテリー最適化の対象外になっているか確認します。対象になっている場合、バックグラウンドでアプリが終了され、接続が切断されることがあります。
- トランスポート設定:
- ネットワーク環境によっては、特定のトランスポート(例: TCP)がブロックされている場合があります。WebSocket over TLS (WSS) や HTTP/2 over TLS (H2) など、Webトラフィックに偽装できるトランスポートを試してみてください。
- TLS/SSL設定:
- Enable TLSが有効になっているか確認します。また、SNIが正しく設定されているか、サーバー側が要求するSNIと一致しているか確認します。Realityを使用している場合はPublic Keyが正しいか確認します。
- ルーティング設定:
- Custom rulesを使用している場合、ルール設定に間違いがないか確認します。特に、接続したい宛先(ドメインやIP)が意図したOutbound(
proxy
)に振り分けられているか確認します。シンプルなProxy all
設定で接続できるか試してみるのも良いでしょう。
- Custom rulesを使用している場合、ルール設定に間違いがないか確認します。特に、接続したい宛先(ドメインやIP)が意図したOutbound(
- DNS設定:
- Remote DNS設定が原因で名前解決に失敗している可能性があります。Remote DNSを空欄にしてシステムDNSを使用してみるか、信頼できるパブリックDNSサーバー(8.8.8.8など)をRemote DNSに設定し、Remote DNS MethodをHandpickedまたはUseProxyに設定して試します。Fake DNSを有効/無効を切り替えてみるのも有効な場合があります。
- v2rayNGの再起動/再インストール:
- アプリを一度完全に終了し、再起動してみます。問題が解決しない場合は、アプリをアンインストールし、再インストールしてみることも最終手段として有効です。
- サーバー側の問題:
- 上記全てを確認しても接続できない場合、サーバー側に問題が発生している可能性が高いです。サーバー管理者に問い合わせてください。
7.3 速度が遅い場合の対処法
接続はできるが、速度が非常に遅い場合は以下の点を試してみてください。
- 別のサーバーを試す: サーバーのスペック、帯域幅、負荷などが原因で速度が遅くなっている可能性があります。別のサーバー(特にTest PingやTest RealDelayの結果が良いサーバー)に切り替えてみます。
- 別のプロトコル/トランスポートを試す:
- VMess/VLESS with WebSocket over TLSやHTTP/2 over TLSは、ポート443を利用するため、回線事業者によっては他のポートよりも高速な場合があります。
- ネットワーク環境によっては、UDPベースのmKCPやQUICがTCPよりも高速になることがあります。
- VLESS with XTLS/Realityは、パフォーマンス向上にも貢献するとされています。
- トランスポート設定を調整する (mKCPなど): mKCPを使用している場合、mtu, tti, capacityなどの設定値を調整することで、特定の回線で速度が改善する可能性があります。ただし、適切な値は環境によって異なり、調整は専門知識を要する場合もあります。
- ルーティング設定を見直す: 不要なトラフィックまでProxy経由になっていないか確認します。例えば、国内サイトへのアクセスはDirectにする、バックグラウンドでの通信が多いアプリをDirectまたはBlockにする、といった設定でProxyサーバーの負荷を軽減し、必要な通信の速度を向上できる場合があります。
- デバイスのスペック: デバイスのCPU性能が低い場合、特にTLS暗号化や複雑なルーティング処理でボトルネックになることがあります。高性能なデバイスほど、これらの処理を高速に行えます。
- ネットワーク環境: デバイス側のネットワーク環境(Wi-Fiの品質、モバイルデータ通信の信号強度など)自体が原因で速度が遅くなっている可能性もあります。別のネットワークに接続して試してみてください。
- サーバー管理者に相談: サーバー側で速度制限が行われているか、サーバーの負荷が高いかなどをサーバー管理者に問い合わせてみてください。
7.4 バッテリー消費について
v2rayNGはVPNとしてバックグラウンドで動作するため、ある程度のバッテリーを消費します。バッテリー消費を抑えつつ安定性を維持するために以下の点を考慮してください。
- Disable Battery Optimization: これは安定した接続のために非常に重要ですが、バッテリー消費量は増えます。安定した接続が最優先の場合は有効にしますが、バッテリー持ちを重視する場合はこの設定を無効にするか、バックグラウンドでの動作を制限するシステム設定(例えば、アプリのバックグラウンド制限など)を検討する必要があります(ただし、接続が不安定になる可能性があります)。
- 常時接続の必要性: 常にVPN接続が必要ない場合は、使用しないときは接続を切断することでバッテリーを節約できます。
- ルーティング設定: Per-App ProxyやCustom rulesで、Proxy経由にするアプリやトラフィックを最小限に絞ることで、v2rayNGの処理負荷と通信量を減らし、バッテリー消費を抑えられる可能性があります。
- Keep alive: この設定はバックグラウンドでのアプリ終了を防ぎますが、バッテリー消費に影響します。Disable Battery Optimizationと合わせて、必要に応じて調整してください。
8. セキュリティとプライバシーに関する考慮事項
v2rayNGを利用することは、オンラインでのセキュリティとプライバシーを向上させる強力な手段となり得ますが、いくつかの重要な考慮事項があります。
- VPN/プロキシは完全な匿名化ツールではない: v2rayNG(およびベースとなるV2Ray/Xray)は、トラフィックを暗号化し、あなたの本当のIPアドレスを隠蔽することでプライバシーを保護しますが、完全に匿名になるわけではありません。サーバー側ではあなたの接続元の情報(プロキシサーバーに接続した時のIPアドレス)が記録される可能性があり、また、ログインしているサービスやWebサイトはあなたを識別できます。
- 信頼できるプロバイダの選択: 使用するサーバーは、信頼できるVPNプロバイダやサーバー管理者から提供されるべきです。悪意のあるサーバー運営者は、あなたの通信内容を傍受したり、ログを記録したり、不正な目的で利用したりする可能性があります。ログを記録しない(No-Log Policy)ことを公言しているプロバイダを選ぶのが望ましいですが、それを証明するのは困難です。
- サーバー側のログ: v2rayNGクライアントは通常、ユーザーの通信内容の詳細なログを記録しませんが、接続やエラーに関するログは記録する場合があります(Log level設定で調整可能)。より重要なのは、サーバー側でどのようなログが記録されているかです。これはサーバー管理者次第であり、クライアントユーザーは直接制御できません。
- DNS設定の重要性: DNSクエリは、あなたがどのドメイン名にアクセスしようとしているかを明らかにします。デフォルトのシステムDNSを使用すると、VPNトンネルの外でDNSクエリが行われ、DNSリークが発生する可能性があります。v2rayNGの「Remote DNS」設定で、信頼できるDNSサーバーを指定し、かつ「Remote DNS Method」を
UseProxy
に設定することで、DNSクエリもVPN経由で行われるようになり、DNSリークを防ぐことができます。Cloudflareの1.1.1.1やGoogleの8.8.8.8などをDoT (DNS over TLS) やDoH (DNS over HTTPS) で利用することも検討できます。 - スプリットトンネル(Allow/Disallow apps): Per-App ProxyやCustom rulesで、特定のアプリだけをVPN経由にする設定(いわゆるスプリットトンネル)は便利ですが、設定ミスにより意図しないトラフィックがVPNを経由しなかったり、逆にVPNを経由してセキュリティやプライバシーが損なわれたりする可能性があります。慎重に設定し、期待通りに機能しているか確認することが重要です。特に、セキュリティやプライバシーが重要なアプリは必ずProxy経由になるように設定してください。
- 偽装設定 (SNI, Pathなど): WebSocketやHTTP/2、Realityなどの偽装設定は検閲回避に有効ですが、適切に設定しないと接続できなかったり、逆に不審なトラフィックとして検出されやすくなったりする可能性があります。サーバー管理者から提供された設定情報を正確に入力することが重要です。SNIなどで人気サイトのドメイン名に偽装する場合、そのドメインが本当に存在し、TLS証明書が有効である必要があります(サーバー側のFallback設定などが必要)。
これらの点を理解し、信頼できる情報源からのサーバー情報を使用し、適切な設定を行うことが、v2rayNGを安全かつプライベートに利用するための鍵となります。
9. 応用例
v2rayNGの柔軟な機能は、様々な応用を可能にします。
- ジオ制限コンテンツへのアクセス: 特定の国からのみアクセス可能な動画配信サービスやウェブサイトなどを、その国のサーバーに接続することで利用できるようになります。
- 公共Wi-Fiでのセキュリティ確保: 暗号化されていない公共Wi-Fiネットワークを使用する際に、v2rayNG経由で通信を暗号化することで、盗聴や中間者攻撃のリスクを低減できます。
- 特定の国のネットワーク規制の回避: インターネット検閲や特定のサイトへのアクセス制限がある地域において、規制を回避して自由に情報にアクセスするために使用されます。高度なトランスポート設定やReality機能などが特に有効です。
- 開発者やシステム管理者の利用: 特定の国のIPアドレスからのアクセスをテストしたり、内部ネットワークへの安全なアクセス手段として利用したり、ネットワークトラフィックのデバッグを行ったりする際に使用されることがあります。ローカルSocks/HTTPプロキシ機能は、他のアプリケーションからv2rayNGを利用したい場合に便利です。
- オンラインゲームの遅延改善: 一部のオンラインゲームにおいて、特定のサーバーを経由することで経路が最適化され、Ping値が改善する可能性があります。mKCPトランスポートが有効な場合もあります。ただし、全てのゲームで効果があるわけではなく、ゲームによってはVPN/プロキシの使用が規約違反となる場合もあります。
10. まとめ
Android版v2rayNGは、V2Ray/Xrayコアの強力な機能をAndroidデバイス上で手軽に利用するための非常に優れたクライアントアプリです。多様なプロトコル、高度なトランスポート設定、柔軟なルーティング機能により、検閲回避、プライバシー保護、セキュリティ向上、地理的な制限の解除など、様々な目的で活用できます。
この記事では、v2rayNGのインストールから始め、手動設定、QRコード/URLインポート、サブスクリプション機能によるサーバーの追加方法、そして接続の開始と停止方法といった基本的な使い方を解説しました。さらに、Per-App Proxy、ルーティングルール、各種トランスポート設定(特にTLS/SSL、WebSocket、HTTP/2、Reality、XTLS)、主要プロトコル(VMess, VLESS, Shadowsocks, Trojan)の詳細な設定項目とその意味について掘り下げて解説しました。
また、実践的なヒントとして最適なサーバーの選び方、接続できない場合や速度が遅い場合の具体的なトラブルシューティング手順、バッテリー消費に関する考慮事項を提示しました。最後に、v2rayNGを安全かつプライベートに利用するためのセキュリティとプライバシーに関する重要な考慮事項(信頼性、ログ、DNS設定など)と、アプリケーションの様々な応用例を紹介しました。
v2rayNGの設定項目は多岐にわたりますが、それぞれの項目がどのような意味を持ち、何のために存在するのかを理解することで、あなたの特定のニーズに合わせた最適な設定を見つけることができるはずです。複雑に感じるかもしれませんが、この記事がその理解の一助となれば幸いです。
v2rayNGを利用する際は、必ず信頼できる情報源からサーバー情報を入手し、自己責任において利用してください。ネットワーク環境や規制状況は変化するため、必要に応じて設定を見直し、最新の情報や技術(例: VLESS+Reality)を積極的に活用していくことをお勧めします。
このガイドが、あなたのAndroidデバイスでのインターネット体験をより自由で安全なものにするための出発点となることを願っています。