From 1e98189ad592b13a3a13bd4e5e7e757bee952a65 Mon Sep 17 00:00:00 2001 From: DHR60 <192860629+DHR60@users.noreply.github.com> Date: Wed, 15 Jul 2026 14:20:43 +0800 Subject: [PATCH] up --- Description-of-VMess-share-link.md | 8 ++- Description-of-proxy-chain.md | 4 +- Description-of-some-ui.md | 92 ++++++++++++++++++++------ Description-of-subscription.md | 102 +++++++++++++++++++++++++++-- 4 files changed, 175 insertions(+), 31 deletions(-) diff --git a/Description-of-VMess-share-link.md b/Description-of-VMess-share-link.md index 1fee0b6..bb20bd8 100644 --- a/Description-of-VMess-share-link.md +++ b/Description-of-VMess-share-link.md @@ -20,7 +20,10 @@ JSON 数据如下 "tls": "tls", "sni": "www.ccc.com", "alpn": "h2", - "fp": "chrome" + "fp": "chrome", + "insecure": "0", + "vcn": "www.ddd.com", + "pcs": "EFF1E3EE7D5..." } ``` ### 属性详细说明 @@ -51,3 +54,6 @@ JSON 数据如下 * sni: serverName * alpn: `h2,http/1.1` * fp: fingerprint +* insecure: 是否允许不安全的连接(0\1) +* vcn: 验证叶子证书的域名 +* pcs: 证书指纹 diff --git a/Description-of-proxy-chain.md b/Description-of-proxy-chain.md index 46acb2c..6441640 100644 --- a/Description-of-proxy-chain.md +++ b/Description-of-proxy-chain.md @@ -17,6 +17,6 @@ ### 通用提示 * 支持`Xray-core`和`sing-box-core` -* 订阅分组中的节点使用`Xray-core`时,前置代理和落地代理不支持`Hysteria 2,TUIC,Anytls` -* 代理别名不存在时,产生配置时将会跳过此功能,且运行时不会提示用户 +* 订阅分组中的节点使用`Xray-core`时,前置代理和落地代理不支持`TUIC,Anytls`等 +* 代理别名不存在或协议不支持时,产生配置时将会跳过此功能,运行时会明显提示 * 代理别名将在所有的配置文件中搜索,所以可单独建立一个分组存放前置代理和落地代理的配置,防止误删 diff --git a/Description-of-some-ui.md b/Description-of-some-ui.md index e38bf89..28366fa 100644 --- a/Description-of-some-ui.md +++ b/Description-of-some-ui.md @@ -8,19 +8,21 @@ 解析逻辑: 1. 检查是否 https 开头,如果是则按新增订阅逻辑处理,否继续往下 -2. 检查是否 v2rayN 的分享内容,如果是则按新增混合配置逻辑处理,否继续往下 +2. 检查是否为协议标准分享链接,如果是则按新增混合配置逻辑处理,否继续往下 3. 检查是否 SIP008 的分享内容,如果是则按新增 Shadowsocks 配置逻辑处理,否继续往下 -4. 检查是否 sing-box 或 v2ray 的多个自定义配置,如果是则按新增自定义配置逻辑处理,否继续往下 -5. 检查是否 sing-box 或 v2ray 的单个自定义配置,如果是则按新增自定义配置逻辑处理,否继续往下 -6. 检查是否 Clash 或 Hysteria 的自定义配置,如果是则按新增自定义配置逻辑处理,否继续往下 -7. 如果无法解析成功,则会生成一个无 Core 类型的自定义配置,需要用户编辑 +4. 检查是否为 WireGuard 的配置内容,如果是则按新增 WireGuard 配置逻辑处理,否继续往下 +5. 检查是否 v2rayN 内部分享链接,如果是则按新增混合配置逻辑处理,否继续往下 +6. 检查是否 sing-box 或 v2ray 的多个自定义配置,如果是则按新增自定义配置逻辑处理,否继续往下 +7. 检查是否 sing-box 或 v2ray 的单个自定义配置,如果是则按新增自定义配置逻辑处理,否继续往下 +8. 检查是否 Clash 或 Hysteria 的自定义配置,如果是则按新增自定义配置逻辑处理,否继续往下 +9. 如果无法解析成功,则弹出错误提示,提示用户检查分享链接是否正确。 ### 添加自定义配置配置文件 > Socks 端口 因为自定义配置支持很多 Core 类型,v2rayN 无法解析当前配置中哪个值是本地监听Socks端口,所以需要你手工填写Socks端口值。 -当设置此值后,将使用 Xray 或 sing-box(Tun) 额外启动一个前置服务,提供分流和速度显示等功能。 +当设置此值后,将使用 Xray 或 sing-box 额外启动一个前置服务,提供分流和速度显示等功能。 也就是流量将先经过前置服务分流后,再通过Socks端口转发给自定义的代理服务,最后转发给远程服务。 当然你也可以不填写,比如 mihomo 核心就不要填写,因为其配置文件中已经有分流规则了。此时流量将直接转发给自定义的代理服务;你要手动设置其他应用的代理配置。 @@ -84,6 +86,13 @@ * mihomo API 端口值 = 本地混合监听端口值 +5 * 测试时产生的临时配置中使用的端口值 = 本地混合监听端口值 +21 +> 仅限路由 (routeOnly) + +用于避免 DNS 劫持/污染,同时解决 L3/L4 目标传递。 +sing-box 核心中强制开启。 + +如果 DNS 可信建议开启,关闭此选项将导致 tor, REALITY, ech 等 fake sni 协议和服务无法使用。 + > 开启 Mux 多路复用 开启后,仅 VLESS, VMess, Shadowsocks, Trojan 协议能使用,如果你想设置更多参数请看 [未做界面设置的参数说明](Description-of-some-parameters)。 @@ -93,14 +102,14 @@ sing-box 需要再选择多路复用协议才能正常生效。 启用后核心产生的日志会存储到 guiLogs 文件夹中,不启用时直接显示在主界面信息栏中。 -> 默认跳过证书验证 - -当导入分享链接和更新订阅时,配置文件中默认值从此设置获取。 -如果你想修改订阅中所有的跳过证书验证值,比较方便的做法就是删除组中所有配置,设置默认跳过证书验证,重新更新订阅。 - > 启用分片 -Xray 分片的实现类似代理链,所以开启后,前置代理和落地代理就会失效。 +前置代理或落地代理链式代理开启后,分片可能失效或达不到预期效果。 + +> 绑定网口 & 本地出站地址 + +用于多网口环境,指定流量使用的网络接口和本地出站地址。同时亦可以提供双核心 TUN 模式下的流量保护。 +`本地出站地址` 在双核心 TUN 模式下,可能因为 TUN 自动设置路由而失效。 ### v2rayN 设置 @@ -120,6 +129,19 @@ Windows 版本的托盘菜单可以切换配置文件,当你的分组中配置 由于各种原因,现在测延迟和测速都会分批次进行,这样可以提高成功率和降低资源占用。如果你不设置则默认为 1000 。 +> 根证书提供者 + +用于 v2rayN 更新和获取证书时证书验证。避免系统内已有恶意根证书导致请求被中间人攻击。默认为 `system`;使用 `system` 时将使用系统内的根证书列表,使用 `mozilla` 时将使用 Mozilla 的根证书列表,使用 `chrome` 时将使用 Chrome 的根证书列表。 + +> UDP 测试地址 + +用于测试代理节点 UDP 连接的地址,支持协议有 `ntp`, `dns`, `stun` 和 `mcbe`。 + +* ntp: 网络时间协议,v2rayN 仅验证返回数据头 +* dns: 域名解析协议,v2rayN 将验证返回数据帧和结构 +* stun: 用于 NAT 穿透的协议,v2rayN 仅验证返回数据头 +* mcbe: Minecraft Bedrock Edition 游戏协议,v2rayN 将验证返回数据帧和结构,及负载是否正确。 + ### 代理配置设置 @@ -134,9 +156,34 @@ Windows 部分用户有些比较特殊的应用需要设置系统代理的协议 ### Tun 模式设置 -> 启用额外监听端口 +> 协议栈 -普通使用时,流量应该从 Tun 入口进入,所以在产生的配置文件中不存在其他入口。有部分用户需要同时存在 Mixed 入口,这时才需要开启此选项。 +tun 模式堆栈,如无使用问题,建议使用 `mixed` 栈,默认 `gvisor` + +可用值:`system/gvisor/mixed` + +注:Xray 核心只支持 `gvisor` 栈 + +> MTU + +tun 模式的 MTU 值,默认 9000。 +注意 TUN MTU 和实际网口 MTU 不同,通常越大性能越好,可尝试 65535,若出现异常请调小。 + +> ICMP 路由策略 + +ICMP 路由策略,默认 `rule`,仅 sing-box 核心支持,Xray 核心不支持。Xray 核心的 ICMP 流量会直接返回 ICMP echo 回显请求响应,即 `reply`,通常 time<1ms。 + +可用值:`rule/direct/unreachable/drop/reply` + +* `rule`:使用路由规则匹配 ICMP 流量,匹配到的流量走代理,未匹配到的流量直连。其中只有 `WireGuard` 协议支持 ICMP 流量转发,其他协议回退为 `reply`。 +* `direct`:所有 ICMP 流量直连。 +* `unreachable`:所有 ICMP 流量返回不可达。 +* `drop`:所有 ICMP 流量丢弃。 +* `reply`:所有 ICMP 流量返回 ICMP echo 回显请求响应。 + +> 路由排除地址 + +启用 `自动路由` 时排除自定义网段。仅允许填入 IP CIDR 格式的网段,多个网段用逗号隔开。 ### 添加配置项 @@ -149,7 +196,7 @@ Windows 部分用户有些比较特殊的应用需要设置系统代理的协议 > 证书指纹 (SHA-256) 填写证书的 SHA-256 指纹值,多个值用波浪线 `~` 隔开。 -仅支持 Xray 内核。 +仅支持 Xray 内核。**sing-box 内核将直接忽略此项设置**,因为 sing-box 内核不支持证书指纹验证, sing-box 内核仅支持已被广泛弃用的 `HPKP` 证书公钥验证。 > 完整证书(链),PEM 格式 @@ -165,7 +212,7 @@ v2rayN 会连接到服务器获取证书或证书链,然后填写到上方的 2. 服务器使用了自签证书 3. 服务器使用了不受信任的证书颁发机构或系统内存在恶意 CA 证书 -v2rayN 内部有一份 CA 证书列表,来源于 Mozilla 的根证书列表,供获取证书时使用。 +v2rayN 内部有一份 CA 证书列表,来源于 Mozilla 或 Chrome 的根证书列表,供获取证书时使用。 v2rayN 会验证获取到的证书链是否可信任,避免获取证书时获取到已经被中间人攻击的证书,只有可信任的证书链才能成功获取证书。 > 策略组 @@ -174,6 +221,8 @@ v2rayN 会验证获取到的证书链是否可信任,避免获取证书时获 Xray 支持策略组类型:`最稳定`,`最低延迟`,`负载均衡`,`随机`。 sing-box 支持策略组类型:`最低延迟`。 +其中 `故障转移` 实现为特化的高容差 `最低延迟` 策略组,容差为 `5000ms`,顺序转移未实现。 + 策略组有两种添加方式: 1. `子配置项一` 从现有分组订阅中,别名正则筛选。 @@ -188,14 +237,11 @@ sing-box 支持策略组类型:`最低延迟`。 注意: * 策略组若使用 Xray 内核,则策略组中的所有配置文件必须被 Xray 内核支持,sing-box 内核同理。 -* 由于此功能比较复杂,策略组若使用 Xray 内核时将跳过分片功能。 * 使用 sing-box 内核时,用户可在当前代理页面中 Selector 组中手工选择出口。 > 链式代理 -不支持嵌套其他链式代理/策略组。 - -第一个节点为前置代理,最后一个节点为落地代理。 +以实际流量流向排序,而非数据封包顺序,即:第一个节点为前置代理,最后一个节点为落地代理。 ### Core 类型设置 @@ -326,7 +372,7 @@ hosts 文件路径: `C:\Windows\System32\drivers\etc\hosts` 和 `C:\Windows\Sy > 校验相应地区域名 IP 开启后,会校验 DNS 解析结果是否符合相应地区的 IP 范围。 -如当配置为 geoip:cn 时,会对 geosite:cn 的域名解析结果进行校验,确保解析结果符合中国大陆的 IP 范围。 +如当配置为 geoip:cn 时,会对 geosite:cn 和 geosite:xxx@cn 等域名解析结果进行校验,确保解析结果符合中国大陆的 IP 范围。 > DNS Hosts @@ -335,6 +381,9 @@ hosts 文件路径: `C:\Windows\System32\drivers\etc\hosts` 和 `C:\Windows\Sy ``` example.com 1.2.3.4 5.6.7.8 example.org 2.3.4.5 6.7.8.9 + +# 包含 example.com 的域名将返回 NOERROR +keyword:example.com #0 ``` 添加后,DNS 解析时会优先使用这些映射关系。 @@ -397,6 +446,7 @@ v2rayN 默认的 Geo 文件来源 / ruleset 文件来源 / 路由规则集来源 因为是从 Github 上下载,所以会强制通过代理更新;如果更新失败可以更换活动配置文件试一试。当然有时候没有代理也可能会更新成功,比较玄幻。 Github API 接口有调用限制,如果你在短时间内更新了很多次,可能会被限制,可以等几个小时后或更换活动配置文件后重试。 在检查更新进行中时,弹出窗口可以关闭,更行进程会在后台运行。更新 v2rayN 时,因为应用不能自己更新自己,需要启动另外的应用来完成,在非 Windows 系统可能看不到更新的进度,请等待 30 秒左右的时间,如果没有重启请手动重启。 +**注:`6.10`-`7.23.2` 之间所有的版本,检查更新存在安全问题,可能被中间人攻击,请确保代理节点可行或手动替换更新。** ### 关闭或退出 diff --git a/Description-of-subscription.md b/Description-of-subscription.md index 4c68abc..8745003 100644 --- a/Description-of-subscription.md +++ b/Description-of-subscription.md @@ -1,13 +1,101 @@ ## v2rayN 订阅功能说明 -1. 订阅地址 : 普通可以正常访问的地址 url -2. 此地址返回的内容 (或者 BASE64 编码): +1. 订阅地址 : 普通可以正常访问的地址 url +2. 订阅支持协议 VMess / shadowsocks / SOCKS / VLESS / trojan / Hy2 / TUIC / WireGuard / Anytls +3. 支持的订阅格式为协议标准格式或 v2rayN 内部格式 - ``` - vmess://base64(Configuration) - ss://base64(Configuration) - socks://base64(Configuration) + ```txt + # VMess + vmess://base64(Configuration) + # VLESS + vless://05a6a8cb-b2be-42fd-90b1-0fe23adb9576@v2rayn.2dust.link:443?encryption=none&flow=xtls-rprx-vision&security=tls&sni=v2rayn.2dust.link&fp=chrome&type=tcp#VLESSXTLS + # v2rayN 内部格式 + v2rayn://vless/base64_urlsafe(ProfileItemDtoJson) ``` -3. 订阅支持协议 VMess / shadowsocks / SOCKS / VLESS / trojan / Hy2 / TUIC / WireGuard / Anytls +[VLESS 分享链接说明](Description-of-VLESS-share-link.md) +[VMess 分享链接说明](Description-of-VMess-share-link.md) + +### v2rayN 内部分享链接 + +用于备份配置,同时可用于分享协议标准提案外字段 + +#### 概览 + +```txt +v2rayn:// + ${ConfigType} + / + ${url-safe base64 encoded json string} +``` + +#### Json Payload + +**普通 http 节点:** + +```json +{ + "IndexId": "AIy0Iw", + "ConfigType": 10, + "ConfigVersion": 4, + "Remarks": "example", + "Address": "127.0.0.1", + "Port": 8080, + "Password": "pass", + "Username": "user" +} +``` + +**策略组:** + +指向其他节点 IndexId: +```json +{ + "IndexId": "oWjrYw", + "ConfigType": 101, + "CoreType": 2, + "ConfigVersion": 4, + "Remarks": "example_group", + "ProtoExtraObj": { + "ChildItems": "AIy0Iw", + "MultipleLoad": 0 + } +} +``` +按其他节点 Remark 筛选: +```json +{ + "IndexId": "slDgGA", + "ConfigType": 101, + "CoreType": 2, + "ConfigVersion": 4, + "Remarks": "example_group", + "ProtoExtraObj": { + "SubChildItems": "self", + "Filter": "example", + "MultipleLoad": 0 + } +} +``` + +##### 注: +- 具体序列化定义可查看: + - https://github.com/2dust/v2rayN/blob/master/v2rayN/ServiceLib/Models/ProfileItem.cs + - https://github.com/2dust/v2rayN/blob/master/v2rayN/ServiceLib/Models/ProtocolExtraItem.cs + - https://github.com/2dust/v2rayN/blob/master/v2rayN/ServiceLib/Models/TransportExtraItem.cs + - https://github.com/2dust/v2rayN/blob/master/v2rayN/ServiceLib/Enums/EConfigType.cs + - https://github.com/2dust/v2rayN/blob/master/v2rayN/ServiceLib/Enums/ECoreType.cs + - https://github.com/2dust/v2rayN/blob/master/v2rayN/ServiceLib/Enums/EMultipleLoad.cs +- IndexId 命名随意,可为空 +- 如需使用策略组或链式代理需将 `ProtoExtraObj.ChildItems` 指向其他节点的 IndexId +- 策略组或链式代理 支持根据别名选中同一订阅分组的其他节点,需设定 `ProtoExtraObj.SubChildItems` 为 `self`,`ProtoExtraObj.Filter` 筛选 支持正则 +- 不支持自定义配置 + +#### 示例 + +``` +v2rayn://http/eyJJbmRleElkIjoiQUl5MEl3IiwiQ29uZmlnVHlwZSI6MTAsIkNvbmZpZ1ZlcnNpb24iOjQsIlJlbWFya3MiOiJleGFtcGxlIiwiQWRkcmVzcyI6IjEyNy4wLjAuMSIsIlBvcnQiOjgwODAsIlBhc3N3b3JkIjoicGFzcyIsIlVzZXJuYW1lIjoidXNlciJ9 +v2rayn://policygroup/eyJJbmRleElkIjoib1dqcll3IiwiQ29uZmlnVHlwZSI6MTAxLCJDb3JlVHlwZSI6MiwiQ29uZmlnVmVyc2lvbiI6NCwiUmVtYXJrcyI6ImV4YW1wbGVfZ3JvdXAiLCJQcm90b0V4dHJhT2JqIjp7IkNoaWxkSXRlbXMiOiJBSXkwSXciLCJNdWx0aXBsZUxvYWQiOjB9fQ +v2rayn://policygroup/eyJJbmRleElkIjoic2xEZ0dBIiwiQ29uZmlnVHlwZSI6MTAxLCJDb3JlVHlwZSI6MiwiQ29uZmlnVmVyc2lvbiI6NCwiUmVtYXJrcyI6ImV4YW1wbGVfZ3JvdXAiLCJQcm90b0V4dHJhT2JqIjp7IlN1YkNoaWxkSXRlbXMiOiJzZWxmIiwiRmlsdGVyIjoiZXhhbXBsZSIsIk11bHRpcGxlTG9hZCI6MH19 +``` \ No newline at end of file