配置文件

V2Ray 本身使用基于 Protobuf 的配置。由于 Protobuf 的文本格式不方便阅读,V2Ray 同时也支持 JSON 格式的配置。在运行之前,V2Ray 会自动将 JSON 转换为对应的 Protobuf。换言之,V2Ray 将来也可能会支持其它格式的配置。

以下介绍一下基于 JSON 格式的配置。

JSON,全称 JavaScript Object Notation,简而言之是 Javascript 中的对象(Object)。一个 JSON 文件包含一个完整的对象,以大括号“{”开头,大括号“}”结束。

一个 JSON 对象包含一系列的键值对(Key-Value Pair),一个键是一个字符串(String),而值有多种类型,常见的有字符串(String)、数字(Number)、布尔(Bool)、数组(Array)和对象(Object)。下面是一个简单的 JSON 对象示例:

{
  "stringValue": "This is a string.",
  "numberValue": 42,
  "boolValue": true,
  "arrayValue": ["this", "is", "a", "string", "array"],
  "objectValue": {
    "another": "object"
  }
}

V2Ray 的 JSON 格式支持注释,可使用“//”或者“/* */”来进行注释。在不支持注释的编辑器中可能被显示为“错误”,但实际上是可以正常使用的。

JSON 数据类型

这里介绍一下常用的数据类型,在之后其它的配置中会用到。

boolean: true | false

布尔值,只有truefalse两种取值,不带引号。

number

数字,在 V2Ray 的使用中通常为非负整数,即053…… 数字在 JSON 格式中不带引号。

string

字符串,由引号包含的一串字符,如无特殊说明,字符的内容不限。

array: []

数组,由方括号包含的一组元素,如字符串数组表示为[string]

object: {}

对象,一组键值对。样例见本文上方的示例。

通常一个键值对的后面需要有一个逗号",",但如果这个键值对后面紧跟一个大括号"}"的话,则一定不能有逗号。

V2Ray 常用数据类型

map: object {string:string}

一组键值对,其类型在括号内指出。每一个键和值的类型对应相同。

address: string

字符串,表示一个 IP 地址或域名,形如:"8.8.8.8""www.v2ray.com"

address_port: string

字符串,表示一个地址和端口,常见的形式如:"8.8.8.8:53",或者 "www.v2ray.com:80"。在一部分配置中,地址部分可以省略,如":443"