商河网论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 7861|回复: 0
打印 上一主题 下一主题

v2ray配置简易介绍

[复制链接]

126

主题

174

帖子

1906

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1906
跳转到指定楼层
1#
发表于 2020-12-19 15:37:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
v2ray配置简易介绍
来源: 互联网

v2ray配置简易介绍
配置文件格式
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。
error: string
错误日志的文件地址,其值是一个合法的文件地址,如"/tmp/v2ray/_error.log"(Linux)或者"C:\Temp\v2ray\_error.log"(Windows)。当此项不指定或为空值时,表示将日志输出至 stdout。
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:“开头,后面是一个环境变量的名称,如"envORT”。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
当指定另一个出站协议的标识时,此出站协议发出的数据,将被转发至所指定的出站协议发出。
协议
Blackhole
名称: blackhole
类型: 出站协议
Blackhole(黑洞)是一个出站数据协议,它会阻碍所有数据的出站,配合路由(Routing)一起使用,可以达到禁止访问某些网站的效果。
OutboundConfigurationObject
{
“response”: {
“type”: “none”
}
}
response: ResponseObject


配置黑洞的响应数据。Blackhole 会在收到待转发数据之后,发送指定的响应数据,然后关闭连接。待转发的数据将被丢弃。如不指定此项,Blackhole 将直接关闭连接。
ResponseObject
{
“type”: “none”
}
type: “http” | "none"
当type为"none"(默认值)时,Blackhole将直接关闭连接。当type为"http"时,Blackhole会发回一个简单的 HTTP 403 数据包,然后关闭连接。
Freedom
名称:freedom
类型:出站协议
Freedom 是一个出站协议,可以用来向任意网络发送(正常的) TCP 或 UDP 数据。
OutboundConfigurationObject
{
“domainStrategy”: “AsIs”,
“redirect”: “127.0.0.1:3366”,
“userLevel”: 0
}
domainStrategy: “AsIs” | “UseIP” | “UseIPv4” | "UseIPv6"


在目标地址为域名时,Freedom 可以直接向此域名发出连接(“AsIs”),或者将域名解析为 IP 之后再建立连接(“UseIP”、“UseIPv4”、“UseIPv6”)。解析 IP 的步骤会使用 V2Ray 内建的 DNS。默认值为"AsIs"。
(V2Ray 4.6+) 当使用"UseIP"模式,并且出站连接配置中指定了sendThrough时,Freedom 会根据sendThrough的值自动判断所需的IP类型,IPv4 或 IPv6。
(V2Ray 4.7+) 当使用"UseIPv4"或"UseIPv6"模式时,Freedom 会只使用对应的 IPv4 或 IPv6 地址。当sendThrough指定了不匹配的本地地址时,将导致连接失败。
redirect: address_port
Freedom 会强制将所有数据发送到指定地址(而不是入站协议指定的地址)。其值为一个字符串,样例:“127.0.0.1:80”, “:1234”。当地址不指定时,如":443",Freedom 不会修改原先的目标地址。当端口为0时,如"v2ray.com:0",Freedom 不会修改原先的端口。
userLevel: number
用户等级,所有连接都使用这一等级。
Shadowsocks
名称:shadowsocks
类型:入站 / 出站
Shadowsocks 协议,包含入站和出站两部分,兼容大部分其它版本的实现。
与官方版本的兼容性:
支持 TCP 和 UDP 数据包转发,其中 UDP 可选择性关闭;
支持 OTA;
客户端可选开启或关闭;
服务器端可强制开启、关闭或自适应;
加密方式(其中 AEAD 加密方式在 V2Ray 3.0 中加入):
aes-256-cfb
aes-128-cfb
chacha20
chacha20-ietf
aes-256-gcm
aes-128-gcm
chacha20-poly1305 或称 chacha20-ietf-poly1305
插件:
通过 Standalone 模式支持 obfs
Shadowsocks 的配置分为两部分,InboundConfigurationObject和OutboundConfigurationObject,分别对应入站和出站协议配置中的settings项。
InboundConfigurationObject
{
“email”: "love@v2ray.com",
“method”: “aes-128-cfb”,
“password”: “密码”,
“level”: 0,
“ota”: true,
“network”: “tcp”
}
email: string
邮件地址,可选,用于标识用户
method: string
必填。可选的值见加密方式列表
password: string
必填,任意字符串。Shadowsocks 协议不限制密码长度,但短密码会更可能被破解,建议使用 16 字符或更长的密码。
level: number
用户等级,默认值为 0。详见本地策略。
ota: true | false
是否强制 OTA,如果不指定此项,则自动判断。强制开启 OTA 后,V2Ray 会拒绝未启用 OTA 的连接。反之亦然。
当使用 AEAD 时,ota 设置无效
network: “tcp” | “udp” | "tcp,udp"
可接收的网络连接类型,默认值为"tcp"。
OutboundConfigurationObject
{
“servers”: [
{
“email”: "love@v2ray.com",
“address”: “127.0.0.1”,
“port”: 1234,
“method”: “加密方式”,
“password”: “密码”,
“ota”: false,
“level”: 0
}
]
}
servers: [ServerObject]
一个数组,其中每一项是一个 ServerObject。
ServerObject
{
“email”: "love@v2ray.com",
“address”: “127.0.0.1”,
“port”: 1234,
“method”: “加密方式”,
“password”: “密码”,
“ota”: false,
“level”: 0
}
email: string
邮件地址,可选,用于标识用户
address: address
Shadowsocks 服务器地址,支持 IPv4、IPv6 和域名。必填。
port: number
Shadowsocks 服务器端口。必填。
method: string
必填。可选的值见加密方式列表
password: string
必填。任意字符串。Shadowsocks 协议不限制密码长度,但短密码会更可能被破解,建议使用 16 字符或更长的密码。
ota: true | false
是否开启 Shadowsocks 的一次验证(One time auth),默认值为false。
当使用 AEAD 时,ota 设置无效。
level: number
用户等级
加密方式列表
“aes-256-cfb”
“aes-128-cfb”
“chacha20”
“chacha20-ietf”
“aes-256-gcm”
“aes-128-gcm”
“chacha20-poly1305” 或 “chacha20-ietf-poly1305”
Socks
名称:socks
类型:入站 / 出站
标准 Socks 协议实现,兼容 Socks 4、Socks 4a 和 Socks 5。
Socks 的配置分为两部分,InboundConfigurationObject和OutboundConfigurationObject,分别对应入站和出站协议配置中的settings项。


OutboundConfigurationObject
{
“servers”: [{
“address”: “127.0.0.1”,
“port”: 1234,
“users”: [
{
“user”: “test user”,
“pass”: “test pass”,
“level”: 0
}
]
}]
}
servers: [ ServerObject ]
Socks 服务器列表,其中每一项是一个服务器配置。
ServerObject
{
“address”: “127.0.0.1”,
“port”: 1234,
“users”: [
{
“user”: “test user”,
“pass”: “test pass”,
“level”: 0
}
]
}
address: address
服务器地址。
仅支持连接到 Socks 5 服务器。
port: number
服务器端口
users: [ UserObject ]
用户列表,其中每一项一个用户配置。当列表不为空时,Socks 客户端会使用此用户信息进行认证;如未指定,则不进行认证。
UserObject
{
“user”: “test user”,
“pass”: “test pass”,
“level”: 0
}
user: string
用户名
pass: string
密码
level: number
用户等级
InboundConfigurationObject
{
“auth”: “noauth”,
“accounts”: [
{
“user”: “my-username”,
“pass”: “my-password”
}
],
“udp”: false,
“ip”: “127.0.0.1”,
“userLevel”: 0
}
auth: “noauth” | "password"
Socks 协议的认证方式,支持"noauth"匿名方式和"password"用户密码方式。默认值为"noauth"。
accounts: [ AccountObject ]
一个数组,数组中每个元素为一个用户帐号。默认值为空。此选项仅当 auth 为 password 时有效。
udp: true | false
是否开启 UDP 协议的支持。默认值为 false。
ip: address
当开启 UDP 时,V2Ray 需要知道本机的 IP 地址。默认值为"127.0.0.1"。
userLevel: number
用户等级,所有连接使用这一等级。
AccountObject
{
“user”: “my-username”,
“pass”: “my-password”
}
user: string
用户名
pass: string
密码
VMess
名称:vmess
类型:入站 / 出站
VMess 是一个加密传输协议,它分为入站和出站两部分,通常作为 V2Ray 客户端和服务器之间的桥梁。
VMess 依赖于系统时间,请确保使用 V2Ray 的系统 UTC 时间误差在 90 秒之内,时区无关。在 Linux 系统中可以安装ntp服务来自动同步系统时间。
VMess 的配置分为两部分,InboundConfigurationObject和OutboundConfigurationObject,分别对应入站和出站协议配置中的settings项。
OutboundConfigurationObject
{
“vnext”: [
{
“address”: “127.0.0.1”,
“port”: 37192,
“users”: [
{
“id”: “27848739-7e62-4138-9fd3-098a63964b6b”,
“alterId”: 4,
“security”: “auto”,
“level”: 0
}
]
}
]
}
vnext:[ ServerObject ]
一个数组,包含一系列的服务器配置
ServerObject
{
“address”: “127.0.0.1”,
“port”: 37192,
“users”: []
}
address: address
服务器地址,支持 IP 地址或者域名。
port: number
服务器端口号。
users: [ UserObject ]
一组服务器认可的用户
UserObject
{
“id”: “27848739-7e62-4138-9fd3-098a63964b6b”,
“alterId”: 4,
“security”: “auto”,
“level”: 0
}
id:string
VMess 用户的主 ID。必须是一个合法的 UUID。
alterId:number
为了进一步防止被探测,一个用户可以在主 ID 的基础上,再额外生成多个 ID。这里只需要指定额外的 ID 的数量,推荐值为 4。不指定的话,默认值是 0。最大值 65535。这个值不能超过服务器端所指定的值。
level: number
用户等级
security: “aes-128-gcm” | “chacha20-poly1305” | “auto” | "none"
加密方式,客户端将使用配置的加密方式发送数据,服务器端自动识别,无需配置。
“aes-128-gcm”:推荐在 PC 上使用
“chacha20-poly1305”:推荐在手机端使用
“auto”:默认值,自动选择(运行框架为 AMD64、ARM64 或 s390x 时为aes-128-gcm加密方式,其他情况则为 Chacha20-Poly1305 加密方式)
“none”:不加密
推荐使用"auto"加密方式,这样可以永久保证安全性和兼容性。
InboundConfigurationObject
{
“clients”: [
{
“id”: “27848739-7e62-4138-9fd3-098a63964b6b”,
“level”: 0,
“alterId”: 4,
“email”: "love@v2ray.com"
}
],
“default”: {
“level”: 0,
“alterId”: 4
},
“detour”: {
“to”: “tag_to_detour”
},
“disableInsecureEncryption”: false
}
clients: [ ClientObject ]
一组服务器认可的用户。clients 可以为空。当此配置用作动态端口时,V2Ray 会自动创建用户。
detour: DetourObject
指示对应的出站协议使用另一个服务器。
default: DefaultObject
可选,clients 的默认配置。仅在配合detour时有效。
disableInsecureEncryption: true | false
是否禁止客户端使用不安全的加密方式,当客户端指定下列加密方式时,服务器会主动断开连接。默认值为false。
"none"
“aes-128-cfb”
ClientObject
{
“id”: “27848739-7e62-4138-9fd3-098a63964b6b”,
“level”: 0,
“alterId”: 4,
“email”: "love@v2ray.com"
}
id: string
VMess 的用户 ID。必须是一个合法的 UUID。
level: number
用户等级,详见本地策略
alterId: number
与上文出站协议中的含义相同。
email: string
用户邮箱地址,用于区分不同用户的流量。
alterId 取值的大小和流量特征没有必然联系。对于日常使用,16 以内的值已经够用了。
DetourObject
{
“to”: “tag_to_detour”
}
to: string
一个入站协议的tag,详见配置文件。指定的入站协议必须是一个 VMess
DefaultObject
{
“level”: 0,
“alterId”: 4
}
level: number
用户等级,意义同上。默认值为0。
alterId: number
和ClientObject中的alterId相同,默认值为64。推荐值4。
路由功能
V2Ray 内建了一个简单的路由功能,可以将入站数据按需求由不同的出站连接发出,以达到按需代理的目的。这一功能的常见用法是分流国内外流量,V2Ray 可以通过内部机制判断不同地区的流量,然后将它们发送到不同的出站代理。
RoutingObject
RoutingObject 对应主配置文件中的routing项。
{
“domainStrategy”: “AsIs”,
“rules”: [],
“balancers”: []
}
domainStrategy: “AsIs” | “IPIfNonMatch” | "IPOnDemand"
域名解析策略,根据不同的设置使用不同的策略。
“AsIs”: 只使用域名进行路由选择。默认值。
“IPIfNonMatch”: 当域名没有匹配任何规则时,将域名解析成 IP(A 记录或 AAAA 记录)再次进行匹配;
当一个域名有多个 A 记录时,会尝试匹配所有的 A 记录,直到其中一个与某个规则匹配为止;
解析后的 IP 仅在路由选择时起作用,转发的数据包中依然使用原始域名;
“IPOnDemand”: 当匹配时碰到任何基于 IP 的规则,将域名立即解析为 IP 进行匹配;
rules: [RuleObject]
对应一个数组,数组中每个元素是一个规则。对于每一个连接,路由将根据这些规则依次进行判断,当一个规则生效时,即将这个连接转发至它所指定的outboundTag(或balancerTag,V2Ray 4.4+)。当没有匹配到任何规则时,流量默认由主出站协议发出。
balancers: [ BalancerObject ]
(V2Ray 4.4+)一个数组,数组中每个元素是一个负载均衡器的配置。当一个规则指向一个负载均衡器时,V2Ray 会通过此负载均衡器选出一个出站协议,然后由它转发流量。
RuleObject
{
“type”: “field”,
“domain”: [
“baidu.com”,
“qq.com”,
“geosite:cn”
],
“ip”: [
“0.0.0.0/8”,
“10.0.0.0/8”,
“fc00::/7”,
“fe80::/10”,
“geoip:cn”
],
“port”: “53,443,1000-2000”,
“network”: “tcp”,
“source”: [
“10.0.0.1”
],
“user”: [
"love@v2ray.com"
],
“inboundTag”: [
“tag-vmess”
],
“protocol”:[“http”, “tls”, “bittorrent”],
“attrs”: “attrs[’:method’] == ‘GET’”,
“outboundTag”: “direct”,
“balancerTag”: “balancer”
}
当多个属性同时指定时,这些属性需要同时满足,才可以使当前规则生效。如果多个规则分别使用了domain或者ip,需要对应添加多条规则。
type: "field"
目前只支持"field"这一个选项。
domain: [string]
一个数组,数组每一项是一个域名的匹配。有以下几种形式:
纯字符串: 当此字符串匹配目标域名中任意部分,该规则生效。比如"sina.com"可以匹配"sina.com"、“sina.com.cn"和"www.sina.com”,但不匹配"sina.cn"。
正则表达式: 由"regexp:“开始,余下部分是一个正则表达式。当此正则表达式匹配目标域名时,该规则生效。例如"regexp:\.goo.*\.com$“匹配"www.google.com”、“fonts.googleapis.com”,但不匹配"google.com”。
子域名 (推荐): 由"domain:“开始,余下部分是一个域名。当此域名是目标域名或其子域名时,该规则生效。例如"domain:v2ray.com"匹配"www.v2ray.com”、“v2ray.com”,但不匹配"xv2ray.com"。
完整匹配: 由"full:“开始,余下部分是一个域名。当此域名完整匹配目标域名时,该规则生效。例如"full:v2ray.com"匹配"v2ray.com"但不匹配"www.v2ray.com”。
预定义域名列表:由"geosite:“开头,余下部分是一个名称,如geosite:google或者geosite:cn。名称及域名列表参考预定义域名列表。
从文件中加载域名: 形如"ext:file:tag”,必须以ext:(小写)开头,后面跟文件名和标签,文件存放在资源目录中,文件格式与geosite.dat相同,标签必须在文件中存在。
ip: [string]
一个数组,数组内每一个元素代表一个 IP 范围。当某一元素匹配目标 IP 时,此规则生效。有以下几种形式:
IP: 形如"127.0.0.1"。
CIDR: 形如"10.0.0.0/8".
GeoIP: 形如"geoip:cn",必须以geoip:(小写)开头,后面跟双字符国家代码,支持几乎所有可以上网的国家。
特殊值:“geoip:private” (V2Ray 3.5+),包含所有私有地址,如127.0.0.1。
从文件中加载 IP: 形如"ext:file:tag",必须以ext:(小写)开头,后面跟文件名和标签,文件存放在资源目录中,文件格式与geoip.dat相同标签必须在文件中存在。
“ext:geoip.dat:cn"等价于"geoip:cn”
port:number | string
端口范围,有三种形式:
“a-b”: a 和 b 均为正整数,且小于 65536。这个范围是一个前后闭合区间,当目标端口落在此范围内时,此规则生效。
a: a 为正整数,且小于 65536。当目标端口为 a 时,此规则生效。
(V2Ray 4.18+) 以上两种形式的混合,以逗号","分隔。形如:“53,443,1000-2000”。
network: “tcp” | “udp” | "tcp,udp"
可选的值有"tcp"、“udp"或"tcp,udp”,当连接方式是指定的方式时,此规则生效。
source: [string]
一个数组,数组内每一个元素是一个 IP 或 CIDR。当某一元素匹配来源 IP 时,此规则生效。
user: [string]
一个数组,数组内每一个元素是一个邮箱地址。当某一元素匹配来源用户时,此规则生效。当前 Shadowsocks 和 VMess 支持此规则。
inboundTag: [string]
一个数组,数组内每一个元素是一个标识。当某一元素匹配入站协议的标识时,此规则生效。
protocol: [ “http” | “tls” | “bittorrent” ]
一个数组,数组内每一个元素表示一种协议。当某一个协议匹配当前连接的流量时,此规则生效。必须开启入站代理中的sniffing选项。
attrs: string
(V2Ray 4.18+) 一段脚本,用于检测流量的属性值。当此脚本返回真值时,此规则生效。
脚本语言为 Starlark,它的语法是 Python 的子集。脚本接受一个全局变量attrs,其中包含了流量相关的属性。
目前只有 http 入站代理会设置这一属性。
示例:
检测 HTTP GET: “attrs[’:method’] == ‘GET’”
检测 HTTP Path: “attrs[’:path’].startswith(’/test’)”
检测 Content Type: “attrs[‘accept’].index(‘text/html’) >= 0”
outboundTag: string
对应一个额外出站连接配置的标识。
balancerTag: string
对应一个负载均衡器的标识。balancerTag和outboundTag须二选一。当同时指定时,outboundTag生效。
BalancerObject
负载均衡器配置。当一个负载均衡器生效时,它会从指定的出站协议中,按配置选出一个最合适的出站协议,进行流量转发。
{
“tag”: “balancer”,
“selector”: []
}
tag: string
此负载均衡器的标识,用于匹配RuleObject中的balancerTag。
selector: [ string ]
一个字符串数组,其中每一个字符串将用于和出站协议标识的前缀匹配。在以下几个出站协议标识中:[ “a”, “ab”, “c”, “ba” ],“selector”: [“a”]将匹配到[ “a”, “ab” ]。
如果匹配到多个出站协议,负载均衡器目前会从中随机选出一个作为最终的出站协议。
预定义域名列表
此列表由 domain-list-community 项目维护,预置于每一个 V2Ray 的安装包中,文件名为geosite.dat。
这个文件包含了一些常见的域名,可用于路由和 DNS 筛选。常用的域名有:
category-ads: 包含了常见的广告域名。
category-ads-all: 包含了常见的广告域名,以及广告提供商的域名。
cn: 相当于 geolocation-cn 和 tld-cn 的合集。
google: 包含了 Google 旗下的所有域名。
facebook: 包含了 Facebook 旗下的所有域名。
geolocation-cn: 包含了常见的国内站点的域名。
geolocation-!cn: 包含了常见的非国内站点的域名。
speedtest: 包含了所有 Speedtest 所用的域名。
tld-cn: 包含了所有 .cn 和 .中国 结尾的域名。
底层传输配置
底层传输方式(transport)是当前 V2Ray 节点和其它节点对接的方式。底层传输方式提供了稳定的数据传输通道。通常来说,一个网络连接的两端需要有对称的传输方式。比如一端用了 WebSocket,那么另一个端也必须使用 WebSocket,否则无法建立连接。
底层传输(transport)配置分为两部分,一是全局设置(TransportObject),二是分协议配置(StreamSettingsObject)。分协议配置可以指定每个单独的入站出站协议用怎样的方式传输。通常来说客户端和服务器对应的出站入站协议需要使用同样的传输方式。当分协议传输配置指定了一种传输方式,但没有填写其设置时,此传输方式会使用全局配置中的设置。
TransportObject
TransportObject对应配置文件的transport项。
{
“tcpSettings”: {},
“kcpSettings”: {},
“wsSettings”: {},
“httpSettings”: {},
“dsSettings”: {},
“quicSettings”: {}
}
tcpSettings: TcpObject
针对 TCP 连接的配置。
kcpSettings: KcpObject
针对 mKCP 连接的配置。
wsSettings: WebSocketObject
针对 WebSocket 连接的配置。
httpSettings: HttpObject
针对 HTTP/2 连接的配置。
dsSettings: DomainSocketObject
针于Domain Socket 连接的配置。
quicSettings: QUICObject
(V2Ray 4.7+) 针于QUIC 连接的配置。
StreamSettingsObject
TransportObject对应出站入站协议中的streamSettings项。每一个入站、出站连接都可以分别配置不同的传输配置,都可以设置streamSettings来进行一些传输的配置。
{
“network”: “tcp”,
“security”: “none”,
“tlsSettings”: {},
“tcpSettings”: {},
“kcpSettings”: {},
“wsSettings”: {},
“httpSettings”: {},
“dsSettings”: {},
“quicSettings”: {},
“sockopt”: {
“mark”: 0,
“tcpFastOpen”: false,
“tproxy”: “off”
}
}
network: “tcp” | “kcp” | “ws” | “http” | “domainsocket” | "quic"
数据流所使用的网络类型,默认值为 “tcp”
security: “none” | "tls"
是否启入传输层加密,支持的选项有 “none” 表示不加密(默认值),“tls” 表示使用 TLS。
tlsSettings: TLSObject
TLS 配置。TLS 由 Golang 提供,支持 TLS 1.2,不支持 DTLS。
tcpSettings: TcpObject
当前连接的 TCP 配置,仅当此连接使用 TCP 时有效。配置内容与上面的全局配置相同。
kcpSettings: KcpObject
当前连接的 mKCP 配置,仅当此连接使用 mKCP 时有效。配置内容与上面的全局配置相同。
wsSettings: WebSocketObject
当前连接的 WebSocket 配置,仅当此连接使用 WebSocket 时有效。配置内容与上面的全局配置相同。
httpSettings: HttpObject
当前连接的 HTTP/2 配置,仅当此连接使用 HTTP/2 时有效。配置内容与上面的全局配置相同。
dsSettings: DomainSocketObject
当前连接的 Domain socket 配置,仅当此连接使用 Domain socket 时有效。配置内容与上面的全局配置相同。
quicSettings: QUICObject
(V2Ray 4.7+) 当前连接的 QUIC 配置,仅当此连接使用 QUIC 时有效。配置内容与上面的全局配置相同。
sockopt: SockoptObject
连接选项
TLSObject
{
“serverName”: “v2ray.com”,
“allowInsecure”: false,
“alpn”: [“http/1.1”],
“certificates”: [],
“disableSystemRoot”: false
}
serverName: string
指定服务器端证书的域名,在连接由 IP 建立时有用。当目标连接由域名指定时,比如在 Socks 入站时接收到了域名,或者由 Sniffing 功能探测出了域名,这个域名会自动用于serverName,无须手动配置。
alpn: [ string ]
一个字符串数组,指定了 TLS 握手时指定的 ALPN 数值。默认值为[“http/1.1”]。
allowInsecure: true | false
是否允许不安全连接(用于客户端)。当值为true时,V2Ray 不会检查远端主机所提供的 TLS 证书的有效性。
allowInsecureCiphers: true | false
是否允许不安全的加密方式。默认情况下 TLS 只使用 TLS 1.3 推荐的加密算法套件,开启这一选项会增加一些与 TLS 1.2 兼容的加密套件。
disableSystemRoot: true | false
(V2Ray 4.18+) 是否禁用操作系统自带的 CA 证书。默认值为false。当值为true时,V2Ray 只会使用certificates中指定的证书进行 TLS 握手。
certificates: [ CertificateObject ]
证书列表,其中每一项表示一个证书
CertificateObject
{
“usage”: “encipherment”,
“certificateFile”: “/path/to/certificate.crt”,
“keyFile”: “/path/to/key.key”,
“certificate”: [
“-----BEGIN CERTIFICATE-----”,
“MIICwDCCAaigAwIBAgIRAO16JMdESAuHidFYJAR/7kAwDQYJKoZIhvcNAQELBQAw”,
“ADAeFw0xODA0MTAxMzU1MTdaFw0xODA0MTAxNTU1MTdaMAAwggEiMA0GCSqGSIb3”,
“DQEBAQUAA4IBDwAwggEKAoIBAQCs2PX0fFSCjOemmdm9UbOvcLctF94Ox4BpSfJ+”,
“3lJHwZbvnOFuo56WhQJWrclKoImp/c9veL1J4Bbtam3sW3APkZVEK9UxRQ57HQuw”,
“OzhV0FD20/0YELou85TwnkTw5l9GVCXT02NG+pGlYsFrxesUHpojdl8tIcn113M5”,
“pypgDPVmPeeORRf7nseMC6GhvXYM4txJPyenohwegl8DZ6OE5FkSVR5wFQtAhbON”,
“OAkIVVmw002K2J6pitPuJGOka9PxcCVWhko/W+JCGapcC7O74palwBUuXE1iH+Jp”,
“noPjGp4qE2ognW3WH/sgQ+rvo20eXb9Um1steaYY8xlxgBsXAgMBAAGjNTAzMA4G”,
“A1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAA”,
“MA0GCSqGSIb3DQEBCwUAA4IBAQBUd9sGKYemzwPnxtw/vzkV8Q32NILEMlPVqeJU”,
“7UxVgIODBV6A1b3tOUoktuhmgSSaQxjhYbFAVTD+LUglMUCxNbj56luBRlLLQWo+”,
“9BUhC/ow393tLmqKcB59qNcwbZER6XT5POYwcaKM75QVqhCJVHJNb1zSEE7Co7iO”,
“6wIan3lFyjBfYlBEz5vyRWQNIwKfdh5cK1yAu13xGENwmtlSTHiwbjBLXfk+0A/8”,
“r/2s+sCYUkGZHhj8xY7bJ1zg0FRalP5LrqY+r6BckT1QPDIQKYy615j1LpOtwZe/”,
“d4q7MD/dkzRDsch7t2cIjM/PYeMuzh87admSyL6hdtK0Nm/Q”,
“-----END CERTIFICATE-----”
],
“key”: [
“-----BEGIN RSA PRIVATE KEY-----”,
“MIIEowIBAAKCAQEArNj19HxUgoznppnZvVGzr3C3LRfeDseAaUnyft5SR8GW75zh”,
“bqOeloUCVq3JSqCJqf3Pb3i9SeAW7Wpt7FtwD5GVRCvVMUUOex0LsDs4VdBQ9tP9”,
“GBC6LvOU8J5E8OZfRlQl09NjRvqRpWLBa8XrFB6aI3ZfLSHJ9ddzOacqYAz1Zj3n”,
“jkUX+57HjAuhob12DOLcST8np6IcHoJfA2ejhORZElUecBULQIWzjTgJCFVZsNNN”,
“itieqYrT7iRjpGvT8XAlVoZKP1viQhmqXAuzu+KWpcAVLlxNYh/iaZ6D4xqeKhNq”,
“IJ1t1h/7IEPq76NtHl2/VJtbLXmmGPMZcYAbFwIDAQABAoIBAFCgG4phfGIxK9Uw”,
“qrp+o9xQLYGhQnmOYb27OpwnRCYojSlT+mvLcqwvevnHsr9WxyA+PkZ3AYS2PLue”,
“C4xW0pzQgdn8wENtPOX8lHkuBocw1rNsCwDwvIguIuliSjI8o3CAy+xVDFgNhWap”,
“/CMzfQYziB7GlnrM6hH838iiy0dlv4I/HKk+3/YlSYQEvnFokTf7HxbDDmznkJTM”,
“aPKZ5qbnV+4AcQfcLYJ8QE0ViJ8dVZ7RLwIf7+SG0b0bqloti4+oQXqGtiESUwEW”,
“/Wzi7oyCbFJoPsFWp1P5+wD7jAGpAd9lPIwPahdr1wl6VwIx9W0XYjoZn71AEaw4”,
“bK4xUXECgYEA3g2o9WqyrhYSax3pGEdvV2qN0VQhw7Xe+jyy98CELOO2DNbB9QNJ”,
“8cSSU/PjkxQlgbOJc8DEprdMldN5xI/srlsbQWCj72wXxXnVnh991bI2clwt7oYi”,
“pcGZwzCrJyFL+QaZmYzLxkxYl1tCiiuqLm+EkjxCWKTX/kKEFb6rtnMCgYEAx0WR”,
“L8Uue3lXxhXRdBS5QRTBNklkSxtU+2yyXRpvFa7Qam+GghJs5RKfJ9lTvjfM/PxG”,
“3vhuBliWQOKQbm1ZGLbgGBM505EOP7DikUmH/kzKxIeRo4l64mioKdDwK/4CZtS7”,
“az0Lq3eS6bq11qL4mEdE6Gn/Y+sqB83GHZYju80CgYABFm4KbbBcW+1RKv9WSBtK”,
“gVIagV/89moWLa/uuLmtApyEqZSfn5mAHqdc0+f8c2/Pl9KHh50u99zfKv8AsHfH”,
“TtjuVAvZg10GcZdTQ/I41ruficYL0gpfZ3haVWWxNl+J47di4iapXPxeGWtVA+u8”,
“eH1cvgDRMFWCgE7nUFzE8wKBgGndUomfZtdgGrp4ouLZk6W4ogD2MpsYNSixkXyW”,
“64cIbV7uSvZVVZbJMtaXxb6bpIKOgBQ6xTEH5SMpenPAEgJoPVts816rhHdfwK5Q”,
“8zetklegckYAZtFbqmM0xjOI6bu5rqwFLWr1xo33jF0wDYPQ8RHMJkruB1FIB8V2”,
“GxvNAoGBAM4g2z8NTPMqX+8IBGkGgqmcYuRQxd3cs7LOSEjF9hPy1it2ZFe/yUKq”,
“ePa2E8osffK5LBkFzhyQb0WrGC9ijM9E6rv10gyuNjlwXdFJcdqVamxwPUBtxRJR”,
“cYTY2HRkJXDdtT0Bkc3josE6UUDvwMpO0CfAETQPto1tjNEDhQhT”,
“-----END RSA PRIVATE KEY-----”
]
}
usage: “encipherment” | “verify” | "issue"
证书用途,默认值为"encipherment"
“encipherment”: 证书用于 TLS 认证和加密。
“verify”: 证书用于验证远端 TLS 的证书。当使用此项时,当前证书必须为 CA 证书。
“issue”: 证书用于签发其它证书。当使用此项时,当前证书必须为 CA 证书。
在 Windows 平台上可以将自签名的 CA 证书安装到系统中,即可验证远端 TLS 的证书。
当有新的客户端请求时,假设所指定的serverName为"v2ray.com",V2Ray 会先从证书列表中寻找可用于"v2ray.com"的证书,如果没有找到,则使用任一usage为"issue"的证书签发一个适用于"v2ray.com"的证书,有效期为一小时。并将新的证书加入证书列表,以供后续使用。
certificateFile: string
证书文件路径,如使用 OpenSSL 生成,后缀名为 .crt。
使用v2ctl cert -ca可以生成自签名的 CA 证书。
certificate: [ string ]
一个字符串数组,表示证书内容,格式如样例所示。certificate和certificateFile二者选一。
keyFile: string
密钥文件路径,如使用 OpenSSL 生成,后缀名为 .key。目前暂不支持需要密码的 key 文件。
key: [ string ]
一个字符串数组,表示密钥内容,格式如样例如示。key和keyFile二者选一。
当certificateFile和certificate同时指定时,V2Ray 优先使用certificateFile。keyFile和key也一样。
当usage为"verify"时,keyFile和key可均为空。
SockoptObject
{
“mark”: 0,
“tcpFastOpen”: false,
“tproxy”: “off”
}
mark: number
一个整数。当其值非零时,在出站连接上标记 SO_MARK。
仅适用于 Linux 系统。
需要 CAP_NET_ADMIN 权限。
tcpFastOpen: true | false
是否启用 TCP Fast Open。当其值为true时,强制开启TFO;当其它为false时,强制关闭TFO;当此项不存在时,使用系统默认设置。可用于入站出站连接。
仅在以下版本(或更新版本)的操作系统中可用:
Windows 10 (1604)
Mac OS 10.11 / iOS 9
Linux 3.16: 系统已默认开启,无需要配置。
tproxy: “redirect” | “tproxy” | “off”
是否开启透明代理 (仅适用于 Linux)。
“redirect”: 使用 Redirect 模式的透明代理。仅支持 TCP/IPv4 和 UDP 连接。
“tproxy”: 使用 TProxy 模式的透明代理。支持 TCP 和 UDP 连接。
“off”: 关闭透明代理。
透明代理需要 Root 或 CAP_NET_ADMIN 权限。
当 Dokodemo-door 中指定了followRedirect,且sockopt.tproxy为空时,sockopt.tproxy的值会被设为"redirect"。
还要说慢慢来嘛
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|商河网|商河网论坛 ( 鲁ICP备15005525号-1 )

GMT+8, 2024-4-26 05:26 , Processed in 0.065822 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表