技术参考 · 协议与内核

V2Ray 协议与内核技术参考

本页是站内的系统查阅手册,与快速上手分工明确:那一页负责把一次连接跑通,本页负责在做选择时给出依据——五种代理协议的设计取舍、V2Fly 与 Xray 两个内核的差异、订阅字段的对应关系、传输与路由的实际影响,以及按场景挑选协议的顺序。

  • 协议 VMess / VLESS / Trojan / SS / REALITY
  • 内核 V2Fly · Xray
  • 客户端 v2rayN · v2rayNG · v2flyNG
  • 平台 Windows · macOS · Android · Linux
第一章

选型总览:内核、协议、传输三层怎么分

在 v2rayNG 或 v2rayN 里点开一个节点之前,先分清三层东西,后面的选择会清楚很多。这三层分别是客户端、内核、协议与传输,每一层能改动的东西并不一样。

三层各管什么

客户端是能看到的那一层。桌面端是 v2rayN,安卓端是 v2rayNG 与 v2flyNG。客户端负责界面、订阅管理、路由开关、分应用代理这类操作,并把节点信息翻译成内核能读的配置。

内核是真正建立连接的程序。它读一份 JSON 配置,按 inbounds 接收本机流量,按 outbounds 把流量送出去,中间按 routing 里的规则决定走哪条出站。v2rayNG 调用的是 Xray 内核,v2flyNG 调用的是 V2Fly 内核,v2rayN 桌面版同样以 Xray 内核为主。内核决定了哪些协议可用——例如 REALITY 只存在于 Xray 一侧,把 REALITY 节点导入 v2flyNG 是解析不了的。

协议与传输是决定实际表现的一层。协议指 VMess、VLESS、Trojan、Shadowsocks、REALITY 这些身份与封装方案;传输指 TCP、WebSocket、gRPC 这些承载方式;再叠加是否使用 TLS。这一层通常随订阅一起下发,日常使用中很少需要手写。

日常能改的其实只有几项

打开客户端设置界面,普通用户真正会动的选项集中在几个地方:选哪个节点、路由模式选哪一种、哪些应用走代理、是否开机自启。协议与传输是随节点来的,不是现场编辑的。所以"选对协议"这件事发生在挑选订阅或整理自建配置的阶段,而不是每次连接的时候。理解协议差异的价值在于两点:同一个订阅里有多种协议的节点时,你知道该优先试哪一个;某个节点连不上时,你能判断问题出在协议参数还是链路本身。

本页与快速上手页的分工

快速上手负责把一次连接跑通的最短路径:导入订阅、选择模式、连接、验证,每一步只讲必要动作。本页不重复那条主线,而是把每个环节背后的选择讲清楚——协议之间差在哪、两个内核怎么取舍、订阅字段怎么对应、什么场景该用哪种组合。如果现在只想尽快连上,先看快速上手;如果在选订阅、整理自建配置或排查疑难,留在本页。

按目标找章节

术语约定

本页所说的节点,指一条完整的出站配置,包含服务器地址、端口、身份字段与传输参数;订阅指包含多条节点信息的链接或文件;内核指 v2ray-core 家族的处理程序;入站出站分别对应本机流量的入口与出口。流控指协议层对数据转发方式的控制参数。REALITY 在本页按协议层方案讨论,涉及的是选型与兼容性判断,不展开服务端部署细节。

第二章 · 协议族

代理协议家族:诞生背景与设计取舍

协议之间的差别,大多不是"谁更快"这种能一句话回答的问题,而是每个方案在设计时优先解决了什么、又主动放弃了什么。把五种协议放回各自的出发点看,选型时的疑问会少很多。

VMess:协议内自带认证与加密

VMess 是 V2Ray 项目早期自有的协议,目标是在质量不稳定的链路上完成身份确认与数据封装。它自带 UUID 身份字段与时间戳校验,早期通过 alterId 机制生成一批子身份,后来改为 AEAD 认证加密,alterId 设为 0 成为主流做法。设计上的特点是认证与加密都在协议内部完成,因此不依赖外层 TLS 也能工作。代价是每个数据包都多一层封装,握手时客户端与服务端要完成一次请求与响应,移动设备会因此多出几次处理器唤醒。

VLESS:把加密交给外层

VLESS 可以理解为 VMess 的减法版本。它去掉了协议自带的加密层,只保留一个轻量的身份标识与可选流控参数,加密完全交给外层通道,通常是 TLS。取舍很明确:放弃"裸跑也加密"的能力,换取更短的握手路径与更少的封装字节。因此 VLESS 必须搭配 TLS 或等价的可靠加密通道使用,单独裸跑不提供机密性。在 Xray 内核里,VLESS 可以配合 flow 参数启用 XTLS Vision 流控,进一步减少加解密层数。

Trojan:让流量保持标准 HTTPS 的样子

Trojan 不发明新的流量形态,而是让代理流量保持一次标准 HTTPS 访问的样子。服务端监听 443 端口并持有真实证书,密码正确时转发流量,密码错误时把请求回落到一个真实网站。从外部观察,它就是一台普通的 Web 服务器。取舍在于:必须拥有域名与有效证书,证书或端口配置出错时会完全不可用;好处是配置概念少、理解成本低,流量形态与常规 HTTPS 高度接近。

Shadowsocks:轻量对称加密

Shadowsocks 走的是轻量对称加密路线。客户端与服务端共享一个密码,由密码派生出加密密钥,没有额外的身份握手字段。常见加密方式为 chacha20-ietf-poly1305aes-256-gcm 这类 AEAD 算法。它的封装开销在几种方案里最小,实现也最简单,因此在算力有限的设备上仍然常见。代价是协议本身不提供伪装层,流量特征相对固定,需要靠外层封装或插件来补充。

REALITY:借用真实站点的握手流程

REALITY 由 Xray 一侧提出,针对的是证书维护成本这个具体问题。常规 TLS 方案需要自己拥有域名与证书,REALITY 改为在握手阶段借用某个真实站点的证书链:客户端预先知道目标站点的公钥,握手时验证的是目标站点,服务端不需要持有自己的证书。对使用者来说,一个 REALITY 节点通常只需要填几个参数:公钥、shortId、目标域名。它目前主要与 VLESS 搭配,并配合 XTLS Vision 流控使用。

选型提示

协议不是越新越好。判断顺序是:先看客户端内核是否支持,再看链路质量与是否需要伪装,最后看设备算力。三者都满足时,再在新旧之间取舍。

五种方案的取舍对照

按设计出发点对照,不涉及具体服务端部署参数
协议身份方式自带加密主动放弃的能力
VMessUUID 加时间戳校验更短的握手路径
VLESSUUID裸跑时的机密性
Trojan密码免证书部署
Shadowsocks共享密码派生协议层伪装
REALITY公钥与 shortId使用自有证书

从表里能看出一条清晰的演化线索:早期方案倾向于把能力做进协议内部,后来的方案倾向于把能力交给外层、让协议本身尽量薄。这条线索也解释了为什么新协议往往要求搭配 TLS——它们把安全边界外移了。

第三章 · 性能

连接速度与资源占用对比

"哪个协议快"要先拆开看。一次连接的时间由三部分构成:物理链路往返、握手往返次数、加解密与封装的处理时间。前两项由服务器位置和链路质量决定,与协议无关;协议能影响的只有第三项,以及握手需要几个来回。所以同一台服务器换协议测速,差异通常很小;换一台服务器,差异可能大得多。

握手路径:需要几个来回

VMess 的握手是请求与响应两段式,客户端发出身份信息后要等服务端确认;VLESS 只带一个轻量身份标识,不额外等待一轮确认;Trojan 走标准 TLS 握手,密码校验发生在握手之后的应用层数据里;Shadowsocks 没有身份往返,密钥由共享密码直接派生;REALITY 的握手过程与访问一个真实站点一致,客户端验证的是目标站点的证书链。往返次数越少,在高延迟链路上的首包时间越短。

封装层数:加解密做几遍

封装层数决定处理器开销。VMess 自带加密,如果外面再套一层 TLS,数据就要加解密两遍;VLESS 与 Trojan 自身不做加密,只做一层 TLS;REALITY 配合 XTLS Vision 时,代理数据可以直通,减少重复的加解密。在桌面处理器上这几层差异很难感知,在低功耗安卓设备上则会体现在耗电与发热上,这一点在移动端电量表现一章展开。

三种开销对照

按握手特征与封装层数整理,不列具体数值
协议握手特征典型封装层数相对开销
VMess身份校验加请求响应两段协议自身加密,可再叠 TLS
VLESS单次身份标识一层 TLS
Trojan标准 TLS 握手后校验密码一层 TLS中低
Shadowsocks密钥派生,无身份往返协议自身对称加密
REALITY与访问真实站点一致一层 TLS,可直通

什么时候差异能被感知

三种情况下协议差异会变得明显:链路本身延迟很高时,握手往返次数的影响被放大;设备算力有限时,加解密层数直接体现为耗电与掉速;并发连接数多时,每条连接的开销会累积。反过来,在延迟较低的固定宽带加中端以上设备上,VMess 与 VLESS 的体感差别通常小到无法稳定复现。

测速注意

客户端里显示的延迟数字来自 TCP 握手或真连接测试,反映的主要是链路质量,不是协议优劣。要比较协议,必须在同一台服务器、同一条链路上换协议测,并在同一时间段内完成。

怎么自测才有意义

在 v2rayNG 的节点列表里,可以通过菜单发起延迟测试,常见的有 TCP 测试与真连接测试两类。TCP 测试只验证地址与端口能否连通,速度快但信息少;真连接测试会实际建立一次代理连接,结果更接近真实使用。比较协议时按下面的顺序做:

  1. 固定一台服务器,把同一份配置按不同协议各写一条出站。
  2. 用真连接测试各测三轮,记录波动范围而不是单次数值。
  3. 在同一时间段内完成全部测试,避免跨时段比较。
  4. 再补一次实际访问测试,确认测试结果与体感一致。

如果三轮结果互相重叠,说明在当前链路上这几个协议没有可分辨的差异,选型应该转向其它因素:是否需要伪装、证书维护成本、设备耗电。按同样的思路筛节点的完整流程,见首次连接检查

第四章 · 内核

内核家族:V2Fly 与 Xray 的功能差异

协议是配置里的字段,内核是执行这些字段的程序。同一份节点信息在不同内核上的表现可能不同,原因是两个内核支持的特性集合并不完全一样。

从 Project V 到两条维护线

Project V 是一套围绕代理与路由的开源方案,最初的实现是 v2ray-core。随着项目演进,社区接手维护这条主线,形成了 V2Fly 内核;另一条线从 v2ray-core 分叉出来,发展成 Xray 内核。两者共享同一套配置结构与大部分字段命名,但各自增加了不同的能力。理解这一点,就能明白为什么同一个订阅在不同客户端上导入后,节点数量可能对不上。

功能差异对照

两个内核的能力对照,仅列与选型相关的项
能力V2Fly 内核Xray 内核
VMess / VLESS / Trojan / Shadowsocks支持支持
REALITY 握手方案不支持支持
XTLS 与 Vision 流控不支持支持
VLESS 的 flow 参数不支持支持
路由规则与域名匹配支持支持
分应用代理(安卓端)支持支持
配置骨架与字段命名同源同源

配置兼容性怎么判断

两个内核的配置骨架一致:顶层是 inboundsoutboundsrouting 这些键,出站里的 protocolsettingsstreamSettings 结构也相同。差异出现在具体字段上:Xray 独有的字段,例如 VLESS 出站里的 flow、传输层里的 realitySettings,在 V2Fly 内核上无法解析,轻则忽略该字段,重则整份配置加载失败。反过来,V2Fly 支持的字段 Xray 基本都兼容。所以从 Xray 往 V2Fly 搬配置需要逐项检查,从 V2Fly 往 Xray 搬通常不用改。

判断方法

如果一份订阅导入后节点数量变少,或所有节点都连接失败,先确认节点用了哪种协议与传输。出现 REALITY 或 flow 参数时,应使用基于 Xray 内核的客户端。

三款客户端与内核的搭配

桌面端 v2rayN 以 Xray 内核为主,覆盖 Windows、macOS、Linux 三个平台;安卓端 v2rayNG 同样基于 Xray 内核,是安卓上的首选;v2flyNG 基于 V2Fly 内核,作为备选,适合订阅内容只包含基础协议、且希望与既有配置保持一致的情况。三款客户端的界面结构相近,订阅管理与路由设置的思路一致,从桌面搬到安卓不需要重新学习。三者的详细对比见选型指南

怎么选

判断顺序很简单:订阅里出现 REALITY 节点,或者配置里带 flow 参数,就用 Xray 内核的客户端;订阅只有 VMess、Trojan、Shadowsocks 这类基础协议,两个内核都能覆盖,这时按平台选客户端即可,安卓优先 v2rayNG。需要同时维护桌面与安卓时,统一用 Xray 内核可以减少一次配置迁移时的检查成本。

第五章 · 订阅

订阅格式与兼容性

订阅是节点信息从服务方到客户端的主要通道。理解它的格式,能在导入失败时快速定位问题,也能避免在不同客户端之间搬运配置时丢字段。

订阅链接与分享链接的区别

分享链接描述单个节点,形如 vless://vmess://,复制一条就能导入一个节点。订阅链接描述一组节点,本身是一个 HTTP 或 HTTPS 地址,客户端访问后拿到一段文本,文本里的每一行是一条分享链接。订阅的价值在于更新:节点有增删时服务方改一处,客户端下次刷新就同步,不需要逐条重新复制。

文本是怎么编码的

订阅返回的内容有两种常见形态:明文的多行分享链接,以及把整段文本做一次 Base64 编码后的单块字符串。客户端导入时会先尝试按明文解析,失败则按 Base64 解码再解析。所以手工检查订阅内容时,如果看到的是一长串没有换行的字符,先做一次 Base64 解码再读。解码后的每一行应该以协议名开头。

四种分享链接的字段形态

分享链接的编码方式与关键字段
链接前缀编码方式关键字段
vmess://Base64 编码的 JSON服务地址、端口、UUID、alterId、传输方式、TLS 开关
vless://URL 查询参数UUID、加密方式、安全类型、flow、SNI、公钥、shortId
trojan://URL 查询参数密码、SNI、传输类型
ss://Base64 或 SIP002 形态加密方式、密码、服务地址、端口

可以看到,VMess 与 Shadowsocks 把字段打包进 Base64 段,VLESS 与 Trojan 则把字段摊在 URL 查询参数里。REALITY 节点通常以 vless:// 形式出现,额外带上公钥与 shortId 两个参数,少任何一个都无法完成握手。

导入失败的常见原因

  • Base64 段在复制过程中被截断,末尾少了几个字符,解码结果不完整。
  • 分享链接里的服务地址是域名,而当前环境下域名解析不到,表现为导入成功但连接失败。
  • REALITY 节点的公钥或 shortId 缺失,导入后节点存在但握手无法完成。
  • 订阅里的节点使用了当前客户端内核不支持的特性,导入时被跳过。
  • 订阅地址需要额外的请求头或鉴权参数,直接粘贴到浏览器能打开、在客户端里却拉取失败。

导入之后客户端内部长什么样

导入完成后,节点会被翻译成内核能读的 JSON。下面是 VLESS 出站的最小骨架,字段名与真实配置一致,地址与身份做了替换:

{
  "outbounds": [
    {
      "protocol": "vless",
      "settings": {
        "vnext": [
          {
            "address": "node.example.com",
            "port": 443,
            "users": [
              {
                "id": "00000000-0000-0000-0000-000000000000",
                "flow": "xtls-rprx-vision"
              }
            ]
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "serverName": "www.example.com",
          "publicKey": "example-public-key",
          "shortId": "0123456789abcdef"
        }
      }
    }
  ]
}

对照这份骨架就能理解导入过程:分享链接里的每个查询参数,最终都会落到 settingsstreamSettings 的某个键上。字段对不上时,问题通常出在链接本身,而不是客户端。

多客户端并存时的同步

同一个订阅在 v2rayN 与 v2rayNG 上导入,节点列表理论上应该一致。如果桌面端有某个节点、安卓端没有,先检查该节点的协议与传输:REALITY 与带 flow 的 VLESS 节点在只支持基础协议的内核上会被跳过。更新订阅时,客户端通常按订阅分组整体替换,本地对单个节点的改名或排序可能不会保留,重要节点建议单独记下关键字段。多设备之间搬运配置的几种做法,可以参考多设备同步 V2Ray 配置

第六章 · 传输与路由

传输层与路由对选型的影响

同一套协议参数,换一种传输方式,表现可能完全不同。传输决定数据怎么被承载,路由决定哪些流量进入代理,两者共同影响连接成功率与使用体验。

常见传输方式

传输方式对照,按承载层与常见搭配整理
传输承载方式特点常见搭配
TCP裸 TCP封装最少,握手最短VLESS + REALITY、Trojan
WebSocketHTTP/1.1 升级可自定义路径与 Host 头VMess + WS + TLS
gRPCHTTP/2 流多路复用,单连接承载多请求VLESS + gRPC + TLS
HTTP/2HTTP/2与 gRPC 思路相近VMess + h2
QUICUDP丢包重传策略不同使用较少

选传输的实用判断是:能用 TCP 就用 TCP,需要配合前置服务或特定端口时再考虑 WebSocket 与 gRPC。WebSocket 的可配置项最多,路径与 Host 头写错是最常见的连接失败原因之一;gRPC 在链路质量波动时靠多路复用有优势,但配置里多一个服务名参数,填错同样连不上。

TLS 与 SNI 在选型中的位置

TLS 决定流量是否加密,SNI 决定握手时向对端声明访问哪个域名。对 VLESS 与 Trojan 来说,TLS 不是可选项而是前提;对 VMess 来说,TLS 是可加的一层。REALITY 把 SNI 指向一个真实站点,握手时验证的是该站点的证书链,因此配置里的 serverName 必须与目标站点一致,写错会导致握手失败。选择传输时先确认订阅里带的 SNI 字段,再决定是否需要额外设置。

路由模式三选一

v2rayNG 与 v2rayN 的路由模式通常提供三种:

  • 仅代理:按内置规则分流,匹配到的流量走代理,其余直连。日常使用最常用。
  • 绕过局域网:局域网地址直连,其余流量走代理。适合需要访问路由器管理页、局域网存储这类本地设备的场景。
  • 全局:所有流量都进代理。排查问题时用得多,日常使用会增加不必要的流量消耗。

三种模式对应的是内核配置里 routing 段的不同规则集。切换模式不会改变节点本身,只改变哪些流量被送进出站。

分应用代理与开机自启

安卓端的分应用代理按应用包名决定是否走代理,适合只让少数应用走代理的使用方式。开启后需要逐个勾选应用,未勾选的应用按直连处理。桌面端没有这项设置,取而代之的是按进程或按地址段的规则。开机自启适合长期在线的设备;移动设备上开启会持续占用一个后台连接,是否启用取决于使用频率。

domainStrategy 与 DNS 的关系

路由规则里的 domainStrategy 决定域名在什么时候被解析成 IP。常见取值有三种:

domainStrategy 取值对照
取值行为适用情况
AsIs直接用域名匹配规则,不预先解析规则以域名为主时
IPIfNonMatch域名规则未命中时,解析成 IP 再匹配一次规则里同时有域名与 IP 段
IPOnDemand遇到 IP 规则时立即解析规则以 IP 段为主时

这一项与 DNS 设置耦合:如果 DNS 查询没有走代理,解析结果可能暴露真实出口。相关的现象与检查方法整理在V2Ray DNS 泄漏检测与防泄漏设置一文里。需要让全部流量都经过虚拟网卡接管时,做法见TUN 模式原理与开启

第七章 · 移动端

移动端电量与流量表现

安卓设备上,代理客户端的耗电主要不来自加解密本身,而来自连接保持与网络唤醒。理解这一点,就能判断哪些设置值得调、哪些调了也看不出差别。

四个影响变量

  • 握手频率:每次建立新连接都要完成一次握手,握手越频繁,处理器唤醒次数越多。
  • 心跳与保活:为保持长连接,客户端与服务端会定期交换数据包,间隔越短越耗电。
  • 封装层数:加解密做几遍直接影响处理时间,在低功耗核心上更明显。
  • 传输方式:WebSocket 与 gRPC 需要维护额外的协议层状态,分包次数多于裸 TCP。

协议层面的差异

把五个协议放在电量视角下排序,大致是:VLESS 与 Trojan 这类只做一层 TLS 的方案开销最低;REALITY 配合 XTLS Vision 时,代理数据可以直通,开销同样很低;VMess 自带一层加密,若外层再套 TLS,处理层数最多;Shadowsocks 的对称加密开销小,但缺少协议层伪装,是否省电取决于外层怎么封装。

这个排序只在低功耗设备上容易观察。中高端手机上,几个协议的耗电差异往往被屏幕、无线电和后台应用掩盖,很难通过电池统计界面分辨出来。

比协议更重要的几件事

  1. 减少节点切换:每换一次节点就要重新握手,频繁切换比协议选择更耗电。
  2. 用分应用代理收窄范围:把不需要代理的应用排除在外,能直接减少连接数。
  3. 避免频繁测速:真连接测试会建立完整连接,批量测试几十个节点会明显增加唤醒次数。
  4. 合理设置保活:长时间不使用时直接断开,比维持一个空闲连接更省电。
观察方法

用系统自带的电池用量统计,对比"开启代理"与"关闭代理"两种状态下的前台与后台耗电占比,时间窗口取一整天。单次短时间对比的噪声太大,结论不可靠。

流量层面的额外开销

封装会带来额外的字节:每个数据包都要带协议头,TLS 记录层也有自己的头部。这些开销在浏览网页时几乎察觉不到,在大流量下载或长时间视频播放时才会体现出来。传输方式越复杂,头部越多;裸 TCP 加一层 TLS 是头部最少的组合。如果流量套餐有限,优先选择封装简单的传输方式。

桌面端为什么不用考虑这些

桌面环境没有无线电唤醒问题,处理器也通常有余量,同样的协议差异在桌面上几乎无法感知。因此桌面的选型可以更侧重维护成本与配置便利性,不必为省电做取舍。移动端的取舍则更实际:少一层封装、少一次握手,累积到一整天的使用时长里就有意义。

第八章 · 选型

按使用场景挑选协议的顺序

把前面几章的结论收拢成一套判断顺序:先确认内核支持,再看链路与维护成本,最后按设备类型微调。下面按常见场景给出建议组合。

三步判断顺序

  1. 看内核:节点里是否出现 REALITY 或 flow 参数。出现就用 Xray 内核的客户端,不出现则两个内核都能覆盖。
  2. 看链路与维护成本:是否愿意维护域名与证书。愿意维护,Trojan 与 VLESS 加 TLS 都是成熟选择;不愿意维护,VLESS 加 REALITY 省去证书这一环。
  3. 看设备:低功耗设备优先封装层数少的方案;桌面端按便利性选即可。

场景对照

按使用场景整理的组合建议
场景建议组合理由
桌面固定网络,自行整理配置VLESS + REALITY + TCP不需要自有证书,封装层数少
桌面,已有域名与证书Trojan 或 VLESS + TLS配置概念少,客户端兼容面广
安卓移动网络,在意耗电VLESS + TLS 或 Trojan只做一层加密,握手路径短
算力有限的老设备Shadowsocks 或 Trojan对称加密开销小,实现简单
订阅里协议混杂安卓用 v2rayNG,桌面用 v2rayNXray 内核覆盖全部协议
需要访问局域网设备任意协议加绕过局域网模式路由模式决定分流,与协议无关

几种不建议的组合

  • VLESS 不带 TLS 直接使用:协议本身不提供机密性,数据在链路上没有加密保护。
  • 在 V2Fly 内核上使用 REALITY 节点:内核不支持该方案,配置无法生效。
  • 把 Shadowsocks 当作唯一方案覆盖所有场景:缺少协议层伪装,可配置项少,遇到需要自定义路径的链路时没有退路。
  • 在移动设备上长期开启全局模式:所有流量都进代理,连接数与唤醒次数都会上升。

一个可执行的落地流程

  1. 在客户端里导入订阅,确认节点数量与预期一致。
  2. 按协议分组,优先测试封装层数少的节点。
  3. 用真连接测试筛掉不通的节点,步骤参考首次连接检查
  4. 选定两到三个节点作为常用项,其余保留备用。
  5. 按设备类型调整路由模式与分应用代理。

协议之间的横向比较还可以参考VMess、VLESS、Trojan、SS 横向对比,那篇按握手开销、延迟与场景选型三个角度展开,与本页的对照表互为补充。客户端的选取与系统要求集中在下载中心,三款客户端的差异集中在选型指南

第九章 · 速查

参数速查与排错索引

这一章是前面的索引化收尾:常用字段的含义、典型现象对应的检查项,以及站内相关页面的入口。

常用字段速查

配置里出现频率最高的字段
字段所在位置含义
inbounds配置顶层本机流量的入口,决定监听方式
outbounds配置顶层流量的出口,节点信息写在这里
routing配置顶层分流规则,决定哪些流量走哪个出口
domainStrategyrouting 段内域名解析时机,取值 AsIs / IPIfNonMatch / IPOnDemand
streamSettings出站或入站内传输层设置,包含 network、security 等键
flow用户字段内流控参数,xtls-rprx-vision 对应 XTLS Vision
shortIdrealitySettings 内REALITY 握手时的短标识,需与服务端一致

现象与检查项

按现象定位问题,逐项排除
现象优先检查
节点导入后消失客户端内核是否支持该协议与传输
节点存在但握手失败REALITY 的公钥与 shortId 是否填全
能连上但访问超时路由模式与 domainStrategy 设置
局域网设备访问不了是否处于全局模式
耗电明显上升分应用代理与保活设置
订阅刷新后节点变少订阅内容是否被截断,或节点用了新特性

相关页面

最后一点说明

本页的结论都建立在协议与内核的公开设计之上,不涉及具体服务端的部署参数。协议选择没有唯一正确答案:同一份订阅在不同链路上表现可能不同,同一台服务器在不同设备上的耗电表现也不一样。把本页当作判断依据,把实际测试当作最终结论,两者结合才能选出适合自己的组合。如果本页没有覆盖你的问题,可以在常见问题里按分类查找,或回到快速上手按主线重走一遍流程。