v2ray文档(需要和协):https://www.v2ray.com/chapter_02/01_overview.html
可使用配置工具:ProxySU https://github.com/proxysu/ProxySU

========正文开始=======

V2Ray 的配置文件形式如下,客户端和服务器通用一种形式,只是实际的配置不一样。

{
  "log": {},
  "api": {},
  "dns": {},
  "stats": {},
  "routing": {},
  "policy": {},
  "reverse": {},
  "inbounds": [],
  "outbounds": [],
  "transport": {}
}

log: LogObject

日志配置,表示 V2Ray 如何输出日志。

api: ApiObject

内置的远程控置 API,详见远程控制配置。

dns: DnsObject

内置的 DNS 服务器,若此项不存在,则默认使用本机的 DNS 设置。详见DNS 配置

routing: RoutingObject

路由配置

policy: PolicyObject

本地策略可进行一些权限相关的配置,详见本地策略

inbounds: [InboundObject]

一个数组,每个元素是一个入站连接配置。

outbounds: [OutboundObject]

一个数组,每个元素是一个出站连接配置。列表中的第一个元素作为主出站协议。当路由匹配不存在或没有匹配成功时,流量由主出站协议发出。

transport: TransportObject

用于配置 V2Ray 如何与其它服务器建立和使用网络连接。详见底层传输配置

stats: StatsObject

当此项存在时,开启统计信息。

reverse: ReverseObject

反向代理配置。

LogObject
{
  "access": "文件地址",
  "error": "文件地址",
  "loglevel": "warning"
}

access: string

访问日志的文件地址,其值是一个合法的文件地址,如"/tmp/v2ray/_access.log"(Linux)或者"C:\Temp\v2ray\_access.log"(Windows)。当此项不指定或为空值时,表示将日志输出至 stdout。V2Ray 4.20 加入了特殊值none,即关闭access log。

error: string

错误日志的文件地址,其值是一个合法的文件地址,如"/tmp/v2ray/_error.log"(Linux)或者"C:\Temp\v2ray\_error.log"(Windows)。当此项不指定或为空值时,表示将日志输出至 stdout。V2Ray 4.20 加入了特殊值none,即关闭error log(跟loglevel: "none"等价)。

loglevel: "debug" | "info" | "warning" | "error" | "none"

错误日志的级别。默认值为"warning"。

"debug": 只有开发人员能看懂的信息。同时包含所有"info"内容。
"info": V2Ray 在运行时的状态,不影响正常使用。同时包含所有"warning"内容。
"warning": V2Ray 遇到了一些问题,通常是外部问题,不影响 V2Ray 的正常运行,但有可能影响用户的体验。同时包含所有"error"内容。
"error": V2Ray 遇到了无法正常运行的问题,需要立即解决。
"none": 不记录任何内容。
InboundObject
入站连接用于接收从客户端(浏览器或上一级代理服务器)发来的数据,可用的协议请见协议列表。

{
  "port": 1080,
  "listen": "127.0.0.1",
  "protocol": "协议名称",
  "settings": {},
  "streamSettings": {},
  "tag": "标识",
  "sniffing": {
    "enabled": false,
    "destOverride": ["http", "tls"]
  },
  "allocate": {
    "strategy": "always",
    "refresh": 5,
    "concurrency": 3
  }
}

port: number | "env:variable" | string

端口。接受的格式如下:

整型数值: 实际的端口号。
环境变量: 以"env:"开头,后面是一个环境变量的名称,如"env:PORT"。V2Ray 会以字符串形式解析这个环境变量。
字符串: 可以是一个数值类型的字符串,如"1234";或者一个数值范围,如"5-10"表示端口 5 到端口 10 这 6 个端口。
当只有一个端口时,V2Ray 会在此端口监听入站连接。当指定了一个端口范围时,取决于allocate设置。

listen: address

监听地址,只允许 IP 地址,默认值为"0.0.0.0",表示接收所有网卡上的连接。除此之外,必须指定一个现有网卡的地址。

protocol: string

连接协议名称,可选的值见协议列表。

settings: InboundConfigurationObject

具体的配置内容,视协议不同而不同。详见每个协议中的InboundConfigurationObject。

streamSettings: StreamSettingsObject。

底层传输配置

tag: string

此入站连接的标识,用于在其它的配置中定位此连接。当其不为空时,其值必须在所有tag中唯一。

sniffing: SniffingObject

尝试探测流量的类型

allocate: AllocateObject

端口分配设置

SniffingObject
{
"enabled": false,
"destOverride": ["http", "tls"]
}
enabled: true | false

是否开启流量探测。

destOverride: ["http" | "tls"]

当流量为指定类型时,按其中包括的目标地址重置当前连接的目标。
AllocateObject

{
  "strategy": "always",
  "refresh": 5,
  "concurrency": 3
}

strategy: "always" | "random"

端口分配策略。"always"表示总是分配所有已指定的端口,port中指定了多少个端口,V2Ray 就会监听这些端口。"random"表示随机开放端口,每隔refresh分钟在port范围中随机选取concurrency个端口来监听。

refresh: number

随机端口刷新间隔,单位为分钟。最小值为2,建议值为5。这个属性仅当strategy = random时有效。

concurrency: number

随机端口数量。最小值为1,最大值为port范围的三分之一。建议值为3。

OutboundObject
出站连接用于向远程网站或下一级代理服务器发送数据,可用的协议请见协议列表。

{
  "sendThrough": "0.0.0.0",
  "protocol": "协议名称",
  "settings": {},
  "tag": "标识",
  "streamSettings": {},
  "proxySettings": {
    "tag": "another-outbound-tag"
  },
  "mux": {}
}

sendThrough: address

用于发送数据的 IP 地址,当主机有多个 IP 地址时有效,默认值为"0.0.0.0"。

protocol: string

连接协议名称,可选的值见协议列表。

settings: OutboundConfigurationObject

具体的配置内容,视协议不同而不同。详见每个协议中的OutboundConfigurationObject。

tag: string

此出站连接的标识,用于在其它的配置中定位此连接。当其值不为空时,必须在所有 tag 中唯一。

streamSettings: StreamSettingsObject。

底层传输配置

proxySettings: ProxySettingsObject

出站代理配置。当出站代理生效时,此出站协议的streamSettings将不起作用。

mux: MuxObject

Mux 配置。

ProxySettingsObject

{
  "tag": "another-outbound-tag"
}

tag: string

当指定另一个出站协议的标识时,此出站协议发出的数据,将被转发至所指定的出站协议发出。

本地策略
本地策略可以配置一些用户相关的权限,比如连接超时设置。V2Ray 处理的每一个连接,都对应到一个用户,按照这个用户的等级(level)应用不同的策略。本地策略可按照等级的不同而变化。

PolicyObject
PolicyObject对应配置文件中的policy项。

{
  "levels": {
    "0": {
      "handshake": 4,
      "connIdle": 300,
      "uplinkOnly": 2,
      "downlinkOnly": 5,
      "statsUserUplink": false,
      "statsUserDownlink": false,
      "bufferSize": 10240
    }
  },
  "system": {
    "statsInboundUplink": false,
    "statsInboundDownlink": false
  }
}

level: map{string: LevelPolicyObject}

一组键值对,每个键是一个字符串形式的数字(JSON 的要求),比如 "0"、"1" 等,双引号不能省略,这个数字对应用户等级。每一个值是一个 LevelPolicyObject.

每个入站出站代理现在都可以设置用户等级,V2Ray 会根据实际的用户等级应用不同的本地策略。

system: SystemPolicyObject

V2Ray 系统的策略

LevelPolicyObject

{
  "handshake": 4,
  "connIdle": 300,
  "uplinkOnly": 2,
  "downlinkOnly": 5,
  "statsUserUplink": false,
  "statsUserDownlink": false,
  "bufferSize": 10240
}

handshake: number

连接建立时的握手时间限制。单位为秒。默认值为4。在入站代理处理一个新连接时,在握手阶段(比如 VMess 读取头部数据,判断目标服务器地址),如果使用的时间超过这个时间,则中断该连接。

connIdle: number

连接空闲的时间限制。单位为秒。默认值为300。在入站出站代理处理一个连接时,如果在 connIdle 时间内,没有任何数据被传输(包括上行和下行数据),则中断该连接。

uplinkOnly: number

当连接下行线路关闭后的时间限制。单位为秒。默认值为2。当服务器(如远端网站)关闭下行连接时,出站代理会在等待 uplinkOnly 时间后中断连接。

downlinkOnly: number

当连接上行线路关闭后的时间限制。单位为秒。默认值为5。当客户端(如浏览器)关闭上行连接时,入站代理会在等待 downlinkOnly 时间后中断连接。

在 HTTP 浏览的场景中,可以将uplinkOnly和downlinkOnly设为0,以提高连接关闭的效率。

statsUserUplink: true | false

当值为true时,开启当前等级的所有用户的上行流量统计。

statsUserDownlink: true | false

当值为true时,开启当前等级的所有用户的下行流量统计。

bufferSize: number

每个连接的内部缓存大小。单位为 kB。当值为0时,内部缓存被禁用。

默认值 (V2Ray 4.4+):

在 ARM、MIPS、MIPSLE 平台上,默认值为0。
在 ARM64、MIPS64、MIPS64LE 平台上,默认值为4。
在其它平台上,默认值为512。
默认值 (V2Ray 4.3-):

在 ARM、MIPS、MIPSLE、ARM64、MIPS64、MIPS64LE 平台上,默认值为16。
在其它平台上,默认值为2048。
bufferSize 选项会覆盖环境变量中v2ray.ray.buffer.size的设定。

SystemPolicyObject

{
  "statsInboundUplink": false,
  "statsInboundDownlink": false
}

statsInboundUplink: true | false

当值为true时,开启所有入站代理的上行流量统计。

statsInboundDownlink: true | false

当值为true时,开启所有入站代理的下行流量统计。

标签: none

添加新评论