V2Rayのよくある質問
サブスクリプションの登録から接続エラーまで、まず問題が発生している箇所を切り分けてから設定を変更しましょう。一度に変更するのは一項目だけにし、元に戻せる設定を残してください。
基礎知識
クライアント、設定の入手元、通信を取り込む方式の違いを確認します。
v2rayN・v2rayNG・v2flyNGの選び方
Windows、macOS、Linuxのデスクトップではv2rayN、AndroidではXrayコアを採用したv2rayNGがおすすめです。v2flyの設定が必要な場合はv2flyNGを検討してください。クライアントは設定管理と接続制御を担い、コアはプロトコルを処理します。両者は別のものです。Project Vは関連するオープンソースエコシステムの出発点であり、V2FlyとXrayは異なるコアの系統です。選ぶ前に、設定で指定されているプロトコル、通信方式、安全性に関するパラメーターを確認してください。名前が似ているからといって、設定をそのまま使い回せるとは限りません。
クライアントをインストールしたのに、サブスクリプションやサーバー設定が必要なのはなぜですか?
クライアントは接続に使うツールであり、インストールしただけで利用可能なサーバーが用意されるわけではありません。接続には、サーバーアドレス、ポート、認証情報に加え、サーバー側と一致する通信方式やセキュリティ設定が必要です。これらの情報は通常、サブスクリプションURL、共有リンク、設定ファイルから取り込みます。利用権限のあるサービス提供元、または自分で構築したサーバーから設定を入手し、サービスが有効であることを確認してください。サブスクリプションURL、共有リンク全体、認証情報を含むログを公開ページに掲載しないでください。サービスにそのままアクセスできる認証情報が含まれている可能性があります。
サブスクリプションURLとvmess://、vless://などの共有リンクはどう違いますか?
サブスクリプションURLは、通常、設定一覧を取得するためのHTTPSリンクです。更新すると、その提供元から設定を再取得します。一方、vmess://、vless://、trojan://、ss://は通常、個別のサーバー設定を表します。サブスクリプションの応答には、Base64形式の共有リンク一覧が含まれる場合もあれば、クライアントが対応していない形式が返る場合もあります。個別の共有リンクはクリップボードからのインポートなどを使い、サブスクリプションURLはサブスクリプション設定に登録してください。Web管理画面のURLとサブスクリプションURLも別物です。ブラウザーのアドレスバーからコピーする前に、提供元の説明を確認しましょう。
VPNモード、プロキシのみのモード、システムプロキシ、TUNの違いは何ですか?
v2rayNGのVPNモードは、AndroidのVPNインターフェースを使って対象アプリの通信を取り込みます。プロキシのみのモードでは主にローカルプロキシを待ち受けるため、アプリ側でプロキシを設定する必要があります。v2rayNのシステムプロキシはデスクトップOSのプロキシ設定を変更しますが、すべてのアプリがその設定を参照するわけではありません。TUNは仮想ネットワークインターフェースで通信を処理し、対象範囲はルーティング、権限、除外設定によって変わります。これらのモードを同時に有効にすれば直るとは限りません。まず対象アプリの通信方法を確認し、適切な方式を一つ選んでテストしてください。
インストールと設定
インストールパッケージを選び、サブスクリプションの形式と接続に必要な権限を確認します。
Androidのインストールパッケージはarm64とuniversalのどちらを選べばよいですか?
端末が64ビットARMのOSで動作している場合はarm64を選びます。システムのアーキテクチャがわからない場合は、まずuniversalパッケージを選んでください。universalは複数のアーキテクチャに対応するため、ファイルサイズは大きくなる傾向がありますが、接続が速くなるわけではありません。CPUが64ビット対応でも、OSは32ビットの場合があります。購入時期だけで判断せず、端末情報やメーカーの説明でシステムのアーキテクチャを確認してください。クライアントを更新する際は、アプリの入手元と署名が一致しているかも確認しましょう。インストール時に競合が起きた場合は、設定をエクスポートしてから旧アプリをアンインストールするか判断してください。
サブスクリプションを追加できないときは、どの操作箇所と形式を確認すればよいですか?
コピーしたURLがサブスクリプションURL全体か確認し、前後の空白や改行、メッセージアプリが付けた句読点を取り除いてください。v2rayNGでは通常、サイドメニューのサブスクリプショングループ設定で名前とURLを追加し、保存後に一覧へ戻って更新します。v2rayNではサブスクリプショングループの設定にURLを追加し、該当グループを更新します。メニュー名はバージョンによって異なる場合があります。コピーしたものが個別のプロトコル共有リンクなら、クリップボードからインポートする操作を使ってください。それでも失敗する場合はエラー内容を確認し、URLにアクセスできないのか、応答が空なのか、形式を解析できないのかを切り分けましょう。関係のない設定を次々と変更するのは避けてください。
サブスクリプションを更新できない、または更新後にサーバー一覧が空になる場合は?
まず、サブスクリプションURLの有効期限が切れていないか、リセットされていないか、再取得が必要でないかを確認し、現在のネットワークからサブスクリプションサービスにアクセスできるか調べてください。クライアントにプロキシ経由と直接接続の更新方法がある場合は、現在利用できる接続でそれぞれ試せます。ただし、プロキシ経由で更新するには、動作中の設定が必要です。更新が成功しても内容が表示されない場合は、まずグループのサーバー名フィルターを解除し、応答形式がクライアントに対応しているか確認してください。メモや既存の設定が失われる可能性があるため、グループをすぐに削除しないでください。更新時のエラーを記録し、共有する前にURLに含まれる認証情報を隠してください。
TUNの有効化で権限不足になる場合や、AndroidのVPN許可を求められる場合はどうすればよいですか?
v2rayNのTUNモードでは仮想ネットワークインターフェースを作成、または利用します。権限不足のエラーが出た場合は、まず接続を停止し、クライアントの案内に従って必要な権限を付与してください。Windowsでは案内に従って管理者権限で再起動し、macOSとLinuxでは該当する権限の案内とクライアントログを確認します。Androidのv2rayNGは通常、システムのVPNインターフェースを使います。初回接続時にシステムが表示するVPN接続の許可を確認してください。デスクトップ版のTUN手順をそのまま適用する必要はありません。別のVPNアプリが同種の接続を使用している場合は、そのアプリを停止してから再度許可し、接続を開始してください。
使い方
プロキシの入口、ルーティングルール、DNSを分けて確認します。
v2rayNを起動してもシステムプロキシが機能しないのはなぜですか?
v2rayNを起動しただけでは、システムプロキシは設定されません。まずサーバーを選択してコアが動作していることを確認し、タスクトレイのメニューからシステムプロキシを設定します。システムプロキシのアドレスとポートが、クライアントの現在のローカル待ち受け先を指しているか確認してください。次に、ブラウザーがシステムプロキシを使っているか、拡張機能や個別のプロキシ設定に上書きされていないかを調べます。システムプロキシを参照しないアプリでは、ローカルプロキシを個別に設定するか、必要性を確認したうえでTUNを使ってください。テスト中は他のプロキシツールを終了し、システム設定が繰り返し変更されないようにします。クライアント終了後は、プロキシ設定が残っていないことも確認してください。
すべての接続が同じ経路を通らないように、ルーティングを設定するには?
まずクライアントに用意されているルーティング設定で、正常に動作する状態を作ります。そのうえで、対象のドメイン、IP、アプリに応じてルールを追加してください。v2rayNGではルーティング設定を開き、v2rayNではルーティング設定と現在有効なルールセットを確認します。ルールは通常、記載順に照合されるため、具体的な条件を広い条件より前に置きます。最後に、どのルールにも一致しない通信をデフォルトのアウトバウンドで処理します。geositeやgeoipの項目を使う場合は、対応するデータが利用可能で、指定したアウトバウンドのタグが存在することを確認してください。一度に変更するルールは一組に絞り、接続を再起動して同じ接続先で検証します。DNSも同時に変更すると原因を判断しにくくなります。
DNSやFakeDNSはどのような場合に変更すべきですか?
まずは正常に動作しているDNS設定を維持してください。ドメインを解決できない、ルーティング結果が想定と異なる、特定のネットワークで名前解決の結果が異なる場合に限り、一項目ずつ調整します。DNSサーバーに到達できるか、問い合わせに使われるアウトバウンドが想定どおりかを確認してください。FakeDNSはドメイン名を合成アドレスに対応付ける機能です。通常は通信の取り込みやドメイン名の復元機能との連携が必要で、有効にすればあらゆる接続が改善するものではありません。有効化後に一部のアプリで問題が起きた場合は、FakeDNSを無効にして接続を再起動し、該当アプリのDNSキャッシュを更新してください。設定項目はクライアントやコアによって異なるため、別のクライアントの項目をそのままコピーしないでください。
v2rayNGのアプリ別プロキシ設定では、どのアプリをリストに登録すればよいですか?
v2rayNGでアプリ別プロキシを有効にしたら、リストが「選択したアプリのみプロキシを使う」のか、「選択したアプリを除外する」のかを確認してください。意味が逆になるため、チェック状態だけで判断できません。目的を決めたら、まずテストするアプリを一つ追加し、保存してVPN接続を再起動します。その後、アプリを完全に終了してから開き直してください。アプリが別のコンポーネント経由で通信する場合は、実際の呼び出し関係も確認します。アプリ別リストは通信がクライアントに入るかどうかを決めますが、その後の接続はルーティングルールにも従います。アプリを選択しても、すべての通信が必ずプロキシ経由になるとは限りません。
トラブル対処
名前解決、接続、ハンドシェイク、アプリの通信経路の順に原因を特定します。
サーバーへの接続がタイムアウトするとき、ネットワークと設定の問題をどう切り分けますか?
サービスが有効であることを確認し、サーバーアドレス、ポート、プロトコル、通信方式、安全性の設定を照合してください。サブスクリプションを更新できても、サーバーに接続できるとは限りません。更新先と接続先が異なる場合があります。次に、利用可能な別のネットワークで同じ設定を試し、同じネットワークで既知の正常な設定も試して、問題の範囲を絞ります。ログでは名前解決エラー、接続タイムアウト、ハンドシェイク失敗を区別してください。名前解決エラーならDNS、タイムアウトならネットワーク経路とサーバーの待ち受け状態、ハンドシェイク失敗ならセキュリティ設定を確認します。クライアントを再起動しても、無効になったサーバーは復旧しません。安全性の検証をむやみに無効化して接続を試すのも避けてください。
接続済みと表示されるのに、Webページやアプリがインターネットに接続できない場合は、まずどこを確認しますか?
接続済みの表示は、通常、ローカルプロキシまたはVPNインターフェースが起動したことを示すだけで、リモート接続やDNSまで正常とは限りません。まずログに名前解決やハンドシェイクのエラーが続けて出ていないかを確認し、現在のサーバーが有効か調べます。デスクトップではシステムプロキシまたはTUNが対象アプリの通信を実際に取り込んでいるか確認してください。Androidでは、アプリ別プロキシの設定で対象アプリが除外されていないか確認します。ドメイン名でのアクセスだけが失敗する場合はDNS、特定の接続先だけが失敗する場合はルーティングルールとアウトバウンドを調べます。テストの前に既知の正常な設定に戻し、追加したカスタムルールを一時的に無効にしてください。不明な設定を重ねて変更すると、原因を特定しにくくなります。
TLSハンドシェイクに失敗する、またはx509証明書エラーが出る場合はどうすればよいですか?
まずシステムの日時を自動設定にし、タイムゾーンと実際の時刻が正しいことを確認してください。次に、サーバーが要求するserverNameまたはSNIを確認します。接続先アドレスやWebSocket Hostなどの項目と混同しないでください。証明書がドメイン名に対して発行されている場合、接続先にIPアドレスを指定していても、TLSの検証には正しい名前が必要です。設定でREALITYを使っている場合は、専用のパラメーターも確認してください。通常のTLS項目だけを変更しても解決しません。「安全でない接続を許可する」設定を恒久的な対処にしないでください。証明書の期限切れ、名前の不一致、サーバー設定の変更が疑われる場合は、サービス提供元に正しい設定を確認しましょう。
v2rayNでローカルポートが使用中と表示される、または終了後にネットワークへ接続できなくなる場合は?
まず他のプロキシクライアントを停止し、v2rayNのログでエラーが発生している待ち受けアドレスとポートを確認してください。バージョンによってポートが同じとは限りません。不要なプログラムがポートを使用していると確認できたら、そのプログラムを正しく終了するか、v2rayNのパラメーター設定でローカル待ち受けポートを変更します。変更後は、システムプロキシ、ブラウザー個別のプロキシ設定、手動で入力した他のプロキシアドレスも確認してください。クライアント終了後にインターネットへ接続できない場合は、システムのネットワーク設定からローカル待ち受け先を指しているプロキシを削除して、再度接続を試します。正体のわからないシステムプロセスを強制終了したり、古いプロキシ設定を残したままポートだけを変更したりしないでください。