V2Ray 設定ファイル リファレンス大全
JSON 構造の全体像から inbounds 入站、outbounds 出站、routing ルーティング、dns 設定、policy ポリシーまでを順に解説。実際に使える設定サンプルとともに、v2rayN と v2rayNG の設定メカニズムを体系的に理解できます。
JSON 構造の全体像:設定ファイルはどう構成されるか
V2Ray の中心となる設定ファイルは JSON 形式で、構造が明確で機械的に解析しやすいテキスト形式です。v2rayN でも v2rayNG でも、内部では V2Ray コアがこの設定を解析しています。JSON 構造を理解することは、トラブル対処や動作のカスタマイズの基本です。設定ファイルは通常 config.json という名前で、クライアントの設定ディレクトリに配置されます。
V2Ray 設定ファイルのトップレベルフィールドは 6 つあります:log ログ設定、inbounds 入站設定、outbounds 出站設定、routing ルーティング設定、dns ドメイン解決設定、policy ポリシー設定。このうち inbounds と outbounds は必須フィールドで、残りはすべて任意です。また、リモート制御用の api フィールドもありますが、あまり使われません。
トップレベルフィールド一覧
以下の表は、V2Ray 設定ファイルのトップレベルフィールドとその役割をまとめたものです。これらのフィールド間の関係を理解することが、設定を読み解く第一歩です。
| フィールド名 | 必須か | 役割 |
|---|---|---|
log |
いいえ | ログ出力レベル、ログファイルのパスを制御 |
inbounds |
はい | ローカルまたはリモートの入站接続エントリを定義 |
outbounds |
はい | トラフィックの出站チャネル(プロキシサーバーまたは直接接続)を定義 |
routing |
いいえ | トラフィックの振り分けルールを定義し、どの出站に流すかを決定 |
dns |
いいえ | ドメイン解決サーバーと解決ポリシーを定義 |
policy |
いいえ | 接続タイムアウト、接続数制限などの動作ポリシーを定義 |
設定ファイルの読み込みメカニズム
コア起動時に config.json を読み込み、各フィールドを順番に解析します。フィールドが欠けている場合、コアはデフォルト値を使用します。たとえば、dns フィールドがない場合はシステムのデフォルト DNS 解決方式を使用し、routing フィールドがない場合はすべてのトラフィックが最初の出站に流れます。v2rayN では、ノードを切り替えたり設定を変更したりするたびに、プログラムがバックグラウンドで新しい config.json を生成し、コアを再起動します。
そのため、ユーザーが設定ファイルを手動で編集した後、GUI の設定を変更すると、手動で編集した内容は上書きされます。v2rayN には「設定ディレクトリを開く」機能があり、設定ファイルを直接編集できますが、編集する前にコアを停止する必要があります。v2rayN の「設定」→「パラメータ設定」で「設定ディレクトリ」関連の項目を見つけられます。
JSON 構文の注意点
JSON 標準自体はコメントをサポートしていませんが、V2Ray コアは解析時に // と /* */ のコメントを無視します。これにより、設定ファイルにコメントを含めて読みやすくできます。ただし、v2rayN が自動生成する設定ではコメントは削除されます。手動で設定を編集する場合は、コメントを残すことをお勧めしますが、コメントを機能ロジックの一部として依存しないでください。
よくあるエラーは、カンマの付け忘れや引用符の不一致です。JSON では、オブジェクトと配列の内部で要素をカンマで区切ることが厳格に求められ、最後の要素の後にカンマを置くことはできません。手動で設定を編集する場合は、JSON 構文ハイライトに対応したエディタ(VS Code など)を使用すると、構文の問題をすぐに見つけられます。
構文のほかに、フィールドの値の型も間違えやすいポイントです。たとえば port は文字列ではなく数値である必要があり、udp は文字列ではなくブール値である必要があります。型を間違えると、コアは JSON を解析できても、実行時にエラーを出します。そのため、手動で設定を編集するときは、構文のチェックに加えて、各フィールドの型がコアの要件を満たしているかも確認してください。
また、V2Ray コアは設定を解析する際、未知のフィールドに対して寛容で、認識しないフィールドを無視します。つまり、設定に余分なフィールドを書いてもコアはエラーを出しませんが、そのフィールドは効果を持ちません。ある設定が機能していないことに気づいたら、まずフィールド名のスペルが正しいかを確認し、次にそのフィールドが現在のコアバージョンでサポートされているかを確認してください。
inbounds 入站設定:トラフィックの入口をどう開くか
入站(inbounds)は、V2Ray コアが外部にサービスを提供する入口です。v2rayN はデフォルトで 2 つの入站を作成します:SOCKS 入站と HTTP 入站で、それぞれ異なるタイプのクライアント接続をサポートします。「パラメータ設定」で、これら 2 つの入站のリッスンポートを変更できます。入站設定の主要フィールドには、port リッスンポート、listen リッスンアドレス、protocol 入站プロトコル、settings プロトコル設定があります。
一般的な入站プロトコルには、socks、http、vmess、trojan などがあります。ローカルプロキシのシナリオでは、socks と http が最もよく使われます。v2rayN はデフォルトで SOCKS 入站をメインエントリとして、HTTP 入站を互換用エントリとして使用し、両方ともローカルループバックアドレスをリッスンします。
{
"inbounds": [
{
"port": 10808,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"udp": true,
"auth": "noauth"
}
},
{
"port": 10809,
"listen": "127.0.0.1",
"protocol": "http",
"settings": {
"timeout": 300
}
}
]
}
SOCKS 入站の詳解
SOCKS 入站の settings では、udp フィールドが UDP 転送をサポートするかどうかを制御します。UDP を有効にすると、コアは SOCKS プロトコル経由で UDP トラフィックを転送します。これは、ゲームやビデオ通話など UDP ベースのアプリケーションに必要です。auth フィールドは認証方式を制御し、noauth は認証不要を意味し、ローカルプロキシに適しています。LAN 内の他のデバイスが許可なくプロキシを使用するのを防ぐ必要がある場合は、password に設定してユーザー名とパスワードを構成できます。
HTTP 入站の詳解
HTTP 入站の settings では、timeout フィールドを設定でき、接続タイムアウト時間(秒)を表します。HTTP 入站は通常、SOCKS プロトコルをサポートしないアプリケーションとの互換性のために使用されます。v2rayN では、2 つの入站はデフォルトで 127.0.0.1 をリッスンし、つまりローカルマシンからのみ接続を許可します。
複数入站設定と LAN 共有
設定ファイルでは、inbounds は配列であり、複数の入站を同時に設定できます。各入站は独立したポートとプロトコルを持ちます。v2rayN の「パラメータ設定」には「LAN からの接続を許可」オプションがあり、有効にすると入站の listen アドレスが 127.0.0.1 から 0.0.0.0 に変更され、LAN 内の他のデバイスが接続できるようになります。この機能は、スマートフォンやテレビなどのデバイスにプロキシを共有する必要がある場合に非常に便利です。
ポート競合のトラブル対処
設定したポートが他のプログラムによって既に使用されている場合、コアの起動は失敗します。v2rayN は「ポートが使用中」というエラーを表示します。この場合は、入站ポートを変更するか、ポートを使用しているプログラムを終了する必要があります。Windows では、netstat -ano | findstr 10808 コマンドでポートの使用状況を確認し、タスクマネージャーで対応するプロセスを終了できます。ポートを変更するときは、システム内の他のソフトウェア(ブラウザ拡張機能など)のプロキシ設定も同時に更新する必要があります。
ポートが使用されている場合のほかに、ポートがシステムによって予約されている場合もあります。Windows の「除外ポート範囲」機能は一定のポート範囲を予約し、設定したポートが予約範囲内にある場合、コアは同様にリッスンできません。この場合は、別のポートに変更するか、管理者コマンドプロンプトで netsh int ipv4 show excludedportrange protocol=tcp を実行して、予約されたポート範囲を確認できます。
v2rayN で入站ポートを変更した後は、システムプロキシ設定が同期して更新されているかも確認することをお勧めします。システムプロキシがまだ古いポートを指している場合、ブラウザは正常にインターネットにアクセスできません。v2rayN はノードの切り替えや設定変更時に通常システムプロキシを同期更新しますが、設定ファイルを手動で編集した後は自分で確認する必要があります。
outbounds 出站設定:トラフィックの出口をどう通すか
出站(outbounds)は、V2Ray コアが外部への接続を開始するチャネルです。v2rayN はノードを切り替えるとき、選択したノードのプロトコルに応じて対応する出站設定を生成します。出站プロトコルは、リモートサーバーとの通信方法を決定します。一般的な出站プロトコルには、vmess、vless、trojan、shadowsocks、freedom(直接接続)、blackhole(破棄)があります。このうち vmess と vless は V2Ray エコシステム固有のプロトコルで、trojan と shadowsocks は汎用プロキシプロトコルです。
出站設定には、protocol プロトコルタイプ、settings プロトコル設定、streamSettings 転送設定、mux 多重化が含まれます。streamSettings は転送方式(tcp、ws、grpc など)とセキュリティ設定(tls、reality)を定義します。WebSocket を使用する場合は path と headers を指定する必要があり、TLS を使用する場合は serverName と allowInsecure を指定する必要があります。
vmess 出站設定
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "example.com",
"port": 443,
"users": [
{
"id": "your-uuid-here",
"alterId": 0,
"security": "auto"
}
]
}
]
}
}
]
}
vmess 出站の settings には vnext 配列が含まれ、各 vnext オブジェクトが 1 つのサーバーを表します。address はサーバーアドレス、port はサーバーポート、users はユーザーリストです。各ユーザーには id(UUID)、alterId(追加 ID)、security(暗号化方式)があります。alterId は新しいバージョンのコアでは 0 に設定することが推奨され、セキュリティが向上します。
vless 出站設定
vless 出站は vmess と似ていますが、vless プロトコル自体は暗号化を提供せず、TLS または REALITY の転送セキュリティに依存する必要があります。vless 出站の settings では、users 配列の各ユーザーに id、encryption(暗号化方式、vless では none に固定)、flow(フロー制御、例:xtls-rprx-vision)が含まれます。フロー制御フィールドは vless プロトコル特有の高度な機能で、TCP 転送性能を最適化できます。
streamSettings 転送設定
streamSettings は出站設定の中で最も重要な部分の 1 つです。転送方式(network)はデータのカプセル化方法を決定します。一般的な転送方式には tcp、ws(WebSocket)、grpc、http/2 などがあります。ws を使用する場合は path と headers を指定する必要があり、grpc を使用する場合は serviceName を指定する必要があります。セキュリティ設定(security)は none、tls、reality のいずれかです。TLS を使用する場合、serverName はサーバーの証明書ドメインと一致している必要があります。
mux 多重化
mux フィールドは多重化を有効にするかどうかを制御します。有効にすると、1 つの TCP 接続で複数の同時リクエストを運ぶことができ、接続確立のオーバーヘッドを削減し、弱いネットワーク環境での接続安定性に役立ちます。mux の enabled フィールドはデフォルトでオフで、v2rayN では「パラメータ設定」→「多重化」で有効にできます。多重化は多数の短い接続のシナリオに適していますが、すべてのサーバーがサポートしているわけではないため、有効にする前にテストすることをお勧めします。
多重化の主要パラメータは concurrency で、1 つの接続で同時に運べる最大リクエスト数を表します。デフォルト値は 8 で、必要に応じて調整できます。サーバーが同時接続数に制限を設けている場合、大きすぎる concurrency は逆に接続がサーバー側で拒否される原因になることがあります。そのため、多重化を有効にした後は、しばらく観察して接続が安定してからパラメータを調整することをお勧めします。
注意点として、多重化と一部のプロトコル(REALITY など)の互換性はテストが必要です。一部のサーバーでは多重化を有効にすると接続異常が発生することがあり、その場合は多重化をオフにするか、concurrency の値を下げてみてください。
routing ルーティング:トラフィックをどう振り分けるか
ルーティングルール(routing)は V2Ray のコア機能の 1 つで、トラフィックの振り分け方法を決定します。routing フィールドには rules ルールリストと strategy ポリシーが含まれます。各ルールはマッチ条件と対応する出站を定義します。ルールのマッチ条件には、domain ドメインマッチ、ip IP アドレスマッチ、port ポートマッチ、network ネットワークタイプマッチ、inboundTag 入站タグマッチがあります。
ルールのマッチは上から下へ順番に行われ、最初にマッチしたルールが有効になります。すべてのルールがマッチしない場合、トラフィックは最初の出站(通常はプロキシ)に流れます。そのため、ルーティングルールを設定するときは、ルールの並び順に注意する必要があります。v2rayN がデフォルトで生成するルーティングルールは、「LAN をバイパス」と「中国本土をバイパス」を先頭に置き、これらのトラフィックが最初に直接接続されるようにしています。
一般的なルール例
{
"routing": {
"rules": [
{
"type": "field",
"ip": [
"10.0.0.0/8",
"192.168.0.0/16",
"172.16.0.0/12"
],
"outboundTag": "direct"
},
{
"type": "field",
"domain": [
"geosite:cn"
],
"outboundTag": "direct"
},
{
"type": "field",
"domain": [
"geosite:geolocation-!cn"
],
"outboundTag": "proxy"
}
]
}
}
上記の例では、最初のルールがプライベート IP アドレス範囲にマッチし、直接接続します。2 番目のルールは中国本土のドメインにマッチし、直接接続します。3 番目のルールは中国本土以外のドメインにマッチし、プロキシ経由で接続します。ここでは geosite:cn と geosite:geolocation-!cn のような定義済みドメインセットを使用しています。これらは V2Ray コアに組み込まれており、手動でメンテナンスする必要はありません。
ドメインマッチ方式
v2rayN では、ルーティングルールは「設定」→「ルーティング設定」で構成できます。v2rayN は「ドメインポリシー」オプションを提供し、ドメインマッチ方式を制御できます:as-is はドメインをそのままマッチに使用します。ip-if-non-match はドメインがどのルールにもマッチしない場合、ドメインを解決して IP でマッチします。ip-on-demand は IP ルールにマッチするために必要に応じてドメインを解決します。ip-on-demand は IP ルールで振り分ける必要があるシナリオに適していますが、DNS 解決回数が増えます。
振り分けポリシー
ルーティングルールの振り分けポリシーには通常 3 種類あります:直接接続(direct)、プロキシ(proxy)、拒否(block)。直接接続はトラフィックがプロキシサーバーを経由せず、ターゲットアドレスに直接接続することを意味します。プロキシはトラフィックがプロキシサーバーを経由して転送されることを意味します。拒否はトラフィックを直接破棄することを意味し、広告や悪意のあるサイトのブロックによく使われます。v2rayN では、direct と block は組み込みの出站タグであり、追加設定は不要です。
ルーティングルールと入站タグ
複数の入站を設定している場合、inboundTag フィールドを使用して、特定の入站からのトラフィックを異なる出站に振り分けることができます。たとえば、LAN 共有入站からのトラフィックは直接接続し、ローカル SOCKS 入站からのトラフィックはプロキシ経由にすることができます。この設定は、異なるソースのトラフィックを細かく制御する必要がある場合に非常に便利です。
inboundTag を使用する前に、入站に tag フィールドを設定する必要があります。たとえば、inbounds で SOCKS 入站に "tag": "socks-in" を設定し、ルーティングルールに "inboundTag": ["socks-in"] と記述します。これにより、その入站からのトラフィックだけがこのルールにマッチします。
v2rayN では、入站タグは通常プログラムによって自動生成され、ユーザーが手動で設定する必要はありません。ただし、異なるソースのトラフィックの流れを細かく制御する必要がある場合、このメカニズムを理解しておくと役立ちます。
dns 設定:ドメイン解決をどう処理するか
DNS 設定(dns)は、V2Ray がドメインをどのように解決するかを決定します。dns フィールドには servers リストが含まれます。各サーバーには address(アドレス)、port(ポート)、domains(ドメインリスト)を指定できます。V2Ray は UDP、TCP、DoH(DNS over HTTPS)、DoT(DNS over TLS)など複数の DNS プロトコルをサポートしています。
v2rayN では、DNS 設定は「パラメータ設定」→「DNS」にあります。v2rayN はデフォルトで一連の DNS サーバー設定を生成し、通常はパブリック DNS(例:1.1.1.1)とローカル DNS(例:223.5.5.5)を含みます。V2Ray はリストの順序で DNS サーバーを順に試し、最初のサーバーが応答しない場合は次のサーバーを使用します。
{
"dns": {
"servers": [
{
"address": "1.1.1.1",
"port": 53,
"domains": [
"geosite:geolocation-!cn"
]
},
{
"address": "223.5.5.5",
"port": 53,
"domains": [
"geosite:cn"
]
},
{
"address": "localhost",
"port": 53
}
]
}
}
上記の例では、1.1.1.1 が中国本土以外のドメインを解決し、223.5.5.5 が中国本土のドメインを解決し、最後の localhost がフォールバックとして機能します。この振り分けポリシーは、中国本土へのアクセス速度を向上させると同時に、海外ドメインの解決が汚染されないようにします。
FakeDNS の原理と設定
FakeDNS は V2Ray の特別な DNS モードです。有効にすると、DNS クエリを受信したとき、V2Ray は実際の DNS 解決を待たずに、予約ネットワークセグメントの偽の IP(例:198.18.0.0/15)を即座に返します。トラフィックがルーティングルールを通過するとき、V2Ray はターゲットドメインに基づいてルーティングを再マッチし、出站時に実際のドメインを復元します。FakeDNS は DNS 解決の遅延を大幅に削減でき、特に TUN モードとの組み合わせに適しています。
v2rayN では、FakeDNS モードは「パラメータ設定」→「DNS」で有効にできます。有効にすると、v2rayN は生成される設定に自動的に fake-dns サーバーを追加します。注意点として、FakeDNS と一部のルーティングルールの組み合わせは競合する可能性があります。たとえば、IP マッチのルールは偽の IP に正しくマッチしない場合があります。そのため、FakeDNS を使用する場合は、ドメインルールを優先し、IP ルールの使用を避けることをお勧めします。
DNS とルーティングルールの連携
DNS 設定とルーティングルールは密接に連携します。ルーティングルールで geosite:cn のようなドメインセットを使用する場合、V2Ray はマッチする前にドメインを解決する必要があります。このとき、DNS 設定の domains フィールドは、どのドメインがどの DNS サーバーを使用するかを V2Ray が決定するのに役立ちます。合理的な DNS 振り分けポリシーは、DNS 汚染の影響を減らし、アクセス速度を向上させることができます。
FakeDNS を使用する場合、DNS 解決は出站段階に延期され、ルーティングルールのドメインマッチは依然として有効ですが、IP マッチは無効になる可能性があります。そのため、FakeDNS とルーティングルールを同時に使用する場合は、ドメインルールを最前面に置き、IP ルールに依存しないようにすることをお勧めします。これにより、FakeDNS の低遅延を享受しながら、正確な振り分けを保証できます。
また、DNS 設定の queryStrategy フィールドは、クエリする IP タイプ(IPv4、IPv6、または両方)を制御できます。IPv6 環境が不安定な場合は、UseIPv4 に設定することで、IPv6 解決の失敗による接続問題を回避できます。
policy ポリシー:接続動作をどう制御するか
policy ポリシーフィールドは接続動作を制御するために使用されます。levels レベル設定と system システム設定が含まれます。system ではグローバルな接続制限を設定し、connectionTimeout 接続タイムアウト、handshakeTimeout ハンドシェイクタイムアウト、maxConnections 最大接続数などを含みます。
v2rayN では、「設定」→「パラメータ設定」→「ポリシー」でこれらの値を調整できます。デフォルトでは、V2Ray はシステムのデフォルト値を使用します。ほとんどのシナリオでは、デフォルト値で十分です。ただし、高同時接続や特別なネットワーク環境では、タイムアウト時間の調整が必要になる場合があります。
system システム設定の詳解
{
"policy": {
"system": {
"connectionTimeout": 300,
"handshakeTimeout": 60,
"maxConnections": 0,
"minPort": 0,
"maxPort": 0
},
"levels": {
"0": {
"connIdle": 300,
"uplinkOnly": 0,
"downlinkOnly": 0,
"statsUserUplink": false,
"statsUserDownlink": false
}
}
}
}
接続タイムアウト(connectionTimeout)は、TCP 接続を確立するための最大待機時間を制御します。接続がタイムアウトすると、コアはエラーを返し、接続を閉じます。ハンドシェイクタイムアウト(handshakeTimeout)は、TLS ハンドシェイクの最大待機時間を制御します。弱いネットワーク環境では、タイムアウト時間を適切に増やすことで接続安定性を向上させることができます。maxConnections が 0 の場合は接続数制限なしを意味します。
levels レベル設定
levels レベル設定では、ユーザーレベルごとに異なるポリシーを設定できます。各ユーザーは level フィールドを持つことができ、ポリシーではレベルごとに接続制限や速度制限を設定できます。connIdle はアイドル接続のタイムアウト時間(秒)を表し、この時間を超えてデータのやり取りがない接続は閉じられます。uplinkOnly と downlinkOnly は、接続で許可されるアップリンク/ダウンリンクの持続時間を表し、0 は制限なしを意味します。
v2rayN では、ユーザーレベルは通常直接公開されませんが、このメカニズムを理解することは高度な設定を理解するのに役立ちます。たとえば、特定のノードで接続がサーバー側から切断されることが頻繁に発生する場合、サーバー側で connIdle ポリシーが設定されていて、クライアントがハートビートパケットを適時に送信していない可能性があります。
ポリシーと接続の安定性
合理的な policy 設定は接続の安定性を向上させることができます。ネットワーク環境が悪い場合は、connectionTimeout の値を適切に増やすことができます。接続がサーバー側から早期に閉じられることが頻繁に発生する場合は、connIdle の値を大きくすることができます。ただし、大きすぎるタイムアウト値はより多くのシステムリソースを消費するため、実際のネットワーク環境に応じてバランスを取る必要があります。
v2rayN では、policy ポリシーは通常ユーザーが手動で調整する必要はなく、デフォルト値でほとんどのシナリオをカバーできます。ただし、弱いネットワーク環境で使用している場合や、接続がサーバー側から頻繁に切断される場合は、「パラメータ設定」→「ポリシー」でタイムアウト時間を適切に大きくしてみてください。調整後はコアを再起動して、新しいポリシーを有効にすることをお勧めします。
また、levels の statsUserUplink と statsUserDownlink フィールドは、ユーザーのアップリンク/ダウンリンクトラフィックを統計するかどうかを制御します。有効にすると、コアは各ユーザーのトラフィックデータを記録し、api フィールドと組み合わせてクエリできます。ただし、統計機能は一定のパフォーマンスオーバーヘッドをもたらすため、トラフィック統計が必要ない場合はオフのままにすることをお勧めします。
総合設定サンプル:実際に使える完全な設定
以下に、完全な設定サンプルを示します。SOCKS 入站 1 つ、HTTP 入站 1 つ、vmess 出站 1 つ、freedom 直接接続出站 1 つ、そしてルーティングルールと DNS 設定が含まれます。この設定は V2Ray コアで直接使用でき、v2rayN が生成する設定の参考にもなります。
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"port": 10808,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"udp": true,
"auth": "noauth"
},
"tag": "socks-in"
},
{
"port": 10809,
"listen": "127.0.0.1",
"protocol": "http",
"settings": {
"timeout": 300
},
"tag": "http-in"
}
],
"outbounds": [
{
"tag": "proxy",
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "example.com",
"port": 443,
"users": [
{
"id": "your-uuid-here",
"alterId": 0,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"serverName": "example.com"
}
}
},
{
"tag": "direct",
"protocol": "freedom",
"settings": {}
},
{
"tag": "block",
"protocol": "blackhole",
"settings": {}
}
],
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"ip": [
"10.0.0.0/8",
"192.168.0.0/16",
"172.16.0.0/12"
],
"outboundTag": "direct"
},
{
"type": "field",
"domain": [
"geosite:cn"
],
"outboundTag": "direct"
},
{
"type": "field",
"domain": [
"geosite:geolocation-!cn"
],
"outboundTag": "proxy"
}
]
},
"dns": {
"servers": [
{
"address": "1.1.1.1",
"port": 53,
"domains": [
"geosite:geolocation-!cn"
]
},
{
"address": "223.5.5.5",
"port": 53,
"domains": [
"geosite:cn"
]
},
{
"address": "localhost",
"port": 53
}
]
}
}
設定のポイントをセクションごとに解説
この設定の最初の部分では、ログレベルを warning に設定しています。つまり、警告とエラーメッセージのみを出力し、頻繁なログのスクロールを避けます。2 つの入站はそれぞれ 10808 と 10809 ポートをリッスンし、両方ともローカルループバックアドレスにバインドされているため、ローカルマシンからのみアクセスできます。
出站部分には 3 つのタグがあります:proxy は vmess プロトコルでリモートサーバーに接続し、設定では TLS 暗号化を転送セキュリティとして使用しています。direct は freedom プロトコルで直接接続を実現します。block は blackhole プロトコルでトラフィックを破棄します。ルーティングルールは、プライベート IP 範囲と中国本土のドメインを直接接続に、中国本土以外のドメインをプロキシに振り分けます。
DNS 設定では、1.1.1.1 が中国本土以外のドメインを解決し、223.5.5.5 が中国本土のドメインを解決し、localhost がフォールバックとして機能します。この設定は DNS 汚染の影響を効果的に減らし、同時に中国本土へのアクセス速度を保証します。
GUI クライアントと設定ファイル:v2rayN / v2rayNG はどう設定を管理するか
v2rayN と v2rayNG はどちらも V2Ray コアを使用しますが、設定ファイルの管理方法は異なります。v2rayN は Windows 上で動作し、設定ファイルはユーザーディレクトリに保存され、ノードを切り替えるたびに config.json が再生成されます。v2rayNG は Android 上で動作し、設定はアプリのプライベートディレクトリに保存され、複数の設定ファイルを管理できます。
v2rayN の設定管理
v2rayN の GUI 操作は設定ファイルの各フィールドを生成します。ユーザーが「サーバー」パネルでノードを追加すると、v2rayN はノード切り替え時に対応する outbounds 設定を生成します。ユーザーは「設定」→「ルーティング設定」でルーティングルールを調整でき、v2rayN はこれらの設定を routing フィールドに書き込みます。「パラメータ設定」では、入站ポートの変更、FakeDNS の有効化、多重化の調整などができ、これらの操作はすべて生成される設定ファイルに反映されます。
v2rayN には「設定ディレクトリを開く」機能があり、ユーザーが設定ファイルを直接編集できます。ただし、注意点として、ユーザーが設定ファイルを手動で編集した後、GUI で何らかの操作を実行すると、v2rayN は設定ファイルを再生成し、手動で編集した内容を上書きします。そのため、手動で設定を編集する前にコアを停止し、編集完了後に再起動することをお勧めします。
v2rayNG の設定管理
v2rayNG の設定は Android アプリのプライベートディレクトリに保存され、ユーザーは「設定」→「設定のインポート」でファイルまたはサブスクリプションからインポートできます。v2rayNG は複数の設定ファイルをサポートし、各設定ファイルには異なるノードと設定を含めることができます。設定ファイルを切り替えるとき、v2rayNG は対応する config.json を再読み込みします。
v2rayNG では、ユーザーは「設定」→「DNS」と「設定」→「ルーティング」で DNS とルーティング設定を調整できます。v2rayNG も FakeDNS モードをサポートしており、有効にすると生成される設定に fake-dns サーバーが追加されます。上級ユーザー向けに、v2rayNG は「設定ファイルの編集」機能を提供し、JSON 設定を直接変更できます。
サブスクリプションと設定ファイル
両方のクライアントはサブスクリプションをサポートしており、サブスクリプションリンクはノードリストを自動更新します。サブスクリプションリンクは本質的にリモートの JSON リストであり、v2rayN と v2rayNG は定期的に取得して解析します。サブスクリプションが更新されると、クライアントは設定を再生成します。注意点として、サブスクリプションリンク自体にはルーティングルールと DNS 設定は含まれておらず、これらの設定はユーザーがクライアントで手動設定する必要があります。
v2flyNG ユーザーの場合、その設定管理は v2rayNG と基本的に同じですが、内部で Xray コアではなく v2fly コアを使用しています。3 つのクライアントは設定ファイルのフィールド構造が同じであるため、同じ config.json は理論上相互に使用できますが、コアバージョンの違いによるフィールド互換性の問題に注意する必要があります。
サブスクリプションリンクには通常暗号化情報が含まれているため、他の人と気軽に共有しないでください。サブスクリプションリンクが漏洩すると、ノードが他の人に使用され、トラフィックが消費される可能性があります。サブスクリプションリンクを定期的に変更し、クライアントで「サブスクリプション更新通知」を有効にして、ノードの変化を迅速に把握することをお勧めします。また、サブスクリプションの更新はノードリストを上書きするため、手動でノードを追加した場合は、事前にバックアップすることをお勧めします。
よくある設定エラーとトラブル対処法
設定エラーは V2Ray の使用で最も一般的な問題の 1 つです。一般的なエラータイプとトラブル対処法を理解することで、問題解決にかかる時間を大幅に短縮できます。以下に、頻度の高いエラーとその対応方法をいくつか示します。
ポートが使用中
設定した入站ポートが他のプログラムによって既に使用されている場合、コアの起動は失敗します。v2rayN は「ポートが使用中」というエラーを表示します。対処法:入站ポートを変更するか、ポートを使用しているプログラムを終了します。Windows では、netstat -ano | findstr 10808 コマンドでポートの使用状況を確認し、タスクマネージャーで対応するプロセスを終了できます。
ポートを変更した場合は、システムプロキシ設定も同期して更新する必要があります。Windows では、システムプロキシ設定は「設定」→「ネットワークとインターネット」→「プロキシ」にあります。macOS では、システムプロキシ設定は「システム環境設定」→「ネットワーク」→「詳細」→「プロキシ」にあります。SOCKS ポートと HTTP ポートが設定と一致していることを確認してください。
JSON 構文エラー
設定ファイルに構文エラーがある場合、コアの起動は失敗します。一般的な構文エラーには、カンマの欠落、引用符の不一致、括弧の非対称があります。v2rayN では、「設定」→「設定ディレクトリを開く」で config.json を見つけ、テキストエディタで構文を確認できます。JSON 構文ハイライトに対応したエディタの使用を推奨します。これにより、エラーの位置を迅速に特定できます。
設定ファイルが長い場合は、まず設定内容をオンラインの JSON バリデーションツールに貼り付けて確認できます。ただし、実際のサーバー情報を設定に残したまま第三者ツールにアップロードしないように注意してください。
証明書設定エラー
TLS または REALITY を使用する場合、証明書設定エラーは接続失敗の原因になります。一般的なエラーには、serverName と証明書の不一致、証明書の期限切れ、allowInsecure の設定不備があります。v2rayN では、「ノード設定」→「転送セキュリティ」で証明書設定を確認できます。自己署名証明書を使用する場合は、allowInsecure を true に設定する必要がありますが、これによりセキュリティが低下します。
ルーティングルールの誤設定
ルーティングルールの設定が不適切だと、トラフィックが誤ったチャネルに流れる可能性があります。たとえば、中国本土のドメインを誤ってプロキシにマッチさせると、アクセスが遅くなります。トラブル対処法:ログのトラフィックの流れを確認し、ルーティングルールの並び順を確認します。v2rayN では、「設定」→「ルーティング設定」で現在有効なルーティングルールを確認できます。ルールの順序が不合理な場合は、ルールの並びを調整できます。
もう 1 つの一般的な問題は、FakeDNS と IP ルールの競合です。FakeDNS を有効にすると、V2Ray は偽の IP を返すため、ルーティングルールに IP マッチのルールが含まれている場合、正しくマッチしない可能性があります。対処法は、ドメインルールを優先して使用するか、FakeDNS をオフにすることです。
コア起動失敗のその他の原因
上記の原因のほかに、コア起動失敗は設定ファイルのパス誤り、権限不足、システムに必要なランタイムライブラリがないことなどが原因で発生する可能性があります。v2rayN では、「設定」→「コア設定」でコアのパスが正しいか確認できます。ポータブル版を使用する場合、コアファイルと設定ファイルのパス関係が正しいことを確認する必要があります。
ログにコアファイルが見つからないと表示される場合、v2rayN の設定ディレクトリに xray.exe または v2ray.exe が不足していることを意味します。この場合は、クライアントを再ダウンロードし、コアファイルが完全であることを確認する必要があります。また、ウイルス対策ソフトがコアファイルを誤って削除する可能性があります。コアが繰り返し「消える」場合は、v2rayN のディレクトリをウイルス対策ソフトのホワイトリストに追加してください。
もう 1 つのケースとして、コアファイルは存在するが、バージョンがクライアントと一致しない場合があります。たとえば、v2rayN が更新された後、古いコアが新しい設定形式と互換性がない可能性があります。この場合は、「コア設定」で「コアの更新」をクリックするか、対応するバージョンのコアを再ダウンロードしてください。
クイックスタート:インストールから接続まで
V2Ray を使い始めたばかりの場合は、まず使用ガイドを読んで、インストールから接続までの基本フローを理解することをお勧めします。設定大全ページは設定ファイルの詳細に焦点を当てており、問題が発生したときに参照するのに適しています。