VMess / VLESS / Trojan / Shadowsocks
V2Ray 协议与内核参考
本手册用于核对协议字段、理解兼容边界,以及在客户端中选择合适的连接配置。首次使用请先按快速上手教程完成安装、订阅导入与连接验证,再返回对应章节查阅原理。桌面端优先选择 v2rayN;安卓端按所需内核选择 v2rayNG 或 v2flyNG,具体入口见客户端安装包。
连接分层:先识别设置属于哪一层
客户端、内核与服务器不是同一个对象
图形客户端负责保存服务器资料、组织订阅分组、生成配置和展示日志。内核读取生成后的配置,处理本地入站、路由判断、远端连接与数据转发。服务器则接收远端连接并按约定完成认证。界面里出现一个协议名称,只能说明客户端提供了相应的配置入口;能否实际使用,还要看所选内核是否支持,以及服务端是否启用了同样的组合。
以桌面使用为例,应用先把请求交给系统代理,系统代理再指向客户端建立的本地监听端口。内核取得目标地址后决定直连或交给远端出站,随后才建立远端协议连接。安卓的 VPN 模式会通过系统提供的虚拟网络接口接收应用流量,入口形式不同,后面的协议认证仍需逐项匹配。不能把“系统代理已打开”理解为远端连接已经成功。
把一条连接拆成四组信息
第一组是服务器地址和端口,回答连接到哪里。第二组是代理协议和认证字段,例如 VMess 的用户标识或 Trojan 的密码,回答对端如何识别这次请求。第三组是传输设置,决定代理数据如何通过底层连接承载。第四组是安全设置,涉及 TLS、服务器名称、证书验证或 REALITY 参数。任何一组不一致,都可能使最终表现变成超时或握手失败。
常见的“VLESS 加 TLS”就是分层组合:VLESS 处理代理请求格式与认证,TLS 提供外层传输安全。WebSocket 属于传输方式,不负责替代用户认证;REALITY 属于安全机制,也不是一组可以单独填入服务器列表的完整认证资料。阅读订阅或教程时,先把名词放回所属层,才能避免在错误的页面寻找设置开关。
| 层次 | 常见字段 | 核对重点 |
|---|---|---|
| 目标端点 | address、port | 远端监听地址与端口 |
| 代理协议 | protocol、用户标识、密码 | 类型与认证资料对应 |
| 承载传输 | network、path、serviceName | 传输种类及其附属字段 |
| 安全机制 | security、serverName | 证书名称或配套安全参数 |
连接地址与服务器名称可以不同
服务器地址用于实际建立网络连接;TLS 的服务器名称用于协商与身份验证。两者在某些部署中相同,在另一些部署中不同。把地址改成某个 IP 后,不能顺手把服务器名称也删掉。反过来,填入正确的名称也不代表任意地址都能连通。若配置经过反向代理,传输路径、主机字段与服务名称还要符合该部署的入口规则。
端口同样不能靠数字推断用途。常见端口可能承载不同服务,看到某个端口号不能断定它必然开启 TLS。客户端的“允许不安全连接”通常与证书验证有关,不是提高兼容性的通用选项。正常配置应保留身份验证;证书错误时先检查系统时间、名称和信任链,而不是用关闭验证掩盖字段不匹配。
实际核对时,先记录客户端名、内核名、协议类型、传输类型和安全类型,再对照服务提供方给出的完整资料。一次只改一项,保存后重新建立连接,并查看同一次操作对应的日志。若原始订阅能用而手工重建不能用,优先比较遗漏字段,不要先更换路由规则。建立这份分层记录,比记住某套固定按钮位置更适合长期查阅。
VMess 与 VLESS:认证和加密的取舍
VMess 把更多职责放在协议内部
VMess 是 Project V 生态中较早广泛使用的代理协议,设计时把用户认证与数据保护纳入协议本身。它的用户标识通常以 UUID 形式出现,客户端还可能显示加密方式等字段。现代配置应按服务端支持的认证方式使用,旧式参数不能凭旧教程照填。特别是 alterId,遗留分享资料可能仍然携带它,但这不意味着应该主动设置一个非零值。
VMess 的连接认证与时间有关,因此设备时间明显偏离时,可能出现资料看似正确却认证失败的情况。排查时先启用操作系统的自动时间与时区设置,再重试连接。时区显示不同不等于时钟一定错误,关键是系统实际时间是否准确。若同一份资料在另一台设备可用,也应先比较设备时间与内核支持情况,而不是反复重新复制用户标识。
VMess 自身的数据保护不表示外层 TLS 一定多余。外层安全、传输承载和代理协议各有职责,具体组合取决于服务端部署。对于已经提供完整订阅的用户,正确做法是保留原组合并核对导入结果,而不是因为看到“加密”二字就删除 TLS 设置。随意减少一层,可能不是得到更轻的连接,而是得到服务端根本没有监听的连接形式。
VLESS 精简协议本体,不等于精简整条链路
VLESS 的设计思路是减少协议自身的职责,不在协议本体中提供与 VMess 相同的数据加密层。用户认证仍然需要正确的标识,连接的数据安全则通常由配套安全机制承担。界面里常见的 encryption 为 none,表达的是该字段的协议约定,不是建议把外层安全关掉。对于跨网络连接,应使用服务端明确支持的完整安全组合。
因此,“VLESS 比 VMess 少一层,所以所有场景都更快”并不成立。一次页面打开还包含域名解析、建立连接、外层安全协商、服务器处理与目标站点响应。协议头部的差异只是其中一部分。短连接可能更受握手影响,长时间传输则可能更受链路容量和设备加密能力影响。相同协议换到不同线路,差异也可能远大于协议本体之间的差异。
flow 是配套条件,不是通用加速按钮
部分 VLESS 配置会带有 flow,例如与特定流控方案配套的值。该字段必须同时满足客户端内核、服务端设置、传输及安全组合的要求。订阅没有提供时,不要因为教程截图出现过就自行补上;订阅提供了而导入后消失,则应检查分享格式与解析器是否保留了字段。仅切换协议下拉框,并不能自动构造一套有效的流控组合。
手工检查可以按“协议类型、用户标识、加密字段、传输、安全、流控”顺序进行。先确认协议下拉框,再核对 UUID 是否带入多余空格,随后查看传输与安全页面。若日志提示未知字段或不支持的流控,先确认当前实际启动的内核,而不是只看客户端界面上是否存在这一选项。界面可编辑与运行时可识别是两个独立条件。
已有稳定 VMess 配置时,没有必要仅为协议名称迁移。新配置若提供 VLESS,可以按内核支持和安全组合评估,但仍需做真实应用测试。进一步比较可阅读VMess 和 VLESS 的加密方式与兼容性。选型的目标是得到字段完整、服务端支持且便于维护的配置,而不是把“更简洁”误读成不需要检查其他层。
Trojan、SS 与 REALITY:区分协议和安全机制
Trojan 的前提是正确的 TLS 连接
Trojan 把代理认证放在受 TLS 保护的连接中,常见图形配置包括地址、端口、密码和服务器名称。它的设计把外层 TLS 作为重要基础,因此密码正确并不足以保证可用。服务器证书名称、系统信任和实际连接端点仍要匹配。若客户端先报证书错误,问题发生在代理密码认证之前,此时更换密码通常不会改变结果。
Trojan 的密码应作为完整字符串保存,复制时注意前后空格、换行以及链接中的编码字符。某些分享链接对特殊字符进行百分号编码,客户端应按对应格式解析。手工编辑时不要把已解码的密码再做一次无依据的转义,也不要把链接中负责分隔字段的符号当成密码的一部分。最好先直接导入原始链接,再与手填结果比较。
Shadowsocks 需要同时核对算法与密码
Shadowsocks 常写作 SS,起点是相对简洁的加密代理设计。它的配置重点是服务器地址、端口、加密方法和密码。加密方法不是可以任意挑选的本地偏好,而是双方通信约定的一部分。即使密码正确,方法不匹配仍然无法正常解密。旧资料中的方法名也不能推断为当前所有内核都支持,应以实际实现和服务端配置为准。
传统 AEAD 方法与 Shadowsocks 2022 系列的密钥要求并不相同。后者可能要求符合长度与编码规范的密钥,不能把普通口令直接填入后期待自动兼容。分享格式还可能携带扩展参数,而三款客户端对这些扩展的识别范围未必一致。遇到导入成功但运行失败,应核对方法名、密钥格式与内核支持,不要只检查列表中是否出现了服务器名称。
REALITY 需要放回安全层理解
REALITY 是 Xray 生态中的安全机制,不应与 VMess、VLESS、Trojan、Shadowsocks 放在同一层比较。用户常见到的是 VLESS 与 REALITY 的组合:VLESS 提供代理协议部分,REALITY 提供配套的安全握手机制。配置仍需要有效的地址、端口和用户认证资料,另有服务端给出的公钥材料、服务器名称、短标识等参数。
REALITY 不能通过把普通 TLS 的开关改个名称来完成迁移。服务端必须明确支持,客户端所用内核也要识别相应参数。界面字段名称可能随实现调整,核对时应理解其用途:哪些是公开的验证材料,哪些是用户认证信息,哪些是握手名称。私钥属于服务端的敏感配置,不应出现在客户端订阅中,也不能作为“导入缺字段”的补充资料索要。
| 项目 | 主要职责 | 常见遗漏 |
|---|---|---|
| Trojan | 代理请求与密码认证,依赖 TLS 保护 | 服务器名称、密码编码 |
| Shadowsocks | 按指定方法保护代理数据 | 方法名、密钥格式 |
| REALITY | 配套安全握手机制 | 公钥材料、短标识、内核支持 |
比较这些方案时,应把完整组合写出来。例如只写“使用 REALITY”不足以判断用户认证方式,只写“使用 SS”也不足以判断加密方法。客户端显示的简称适合列表浏览,不适合作为排错资料。记录完整组合可以减少沟通歧义,也能避免把外层握手失败错误归因于代理协议本身。
实际选择以现有服务配置为起点:只有 Trojan 入口,就先核对 TLS 与密码;只有 SS 入口,就核对方法与密钥;有 VLESS 与 REALITY 入口,再确认 Xray 支持及字段是否完整。协议资料不足时应向配置提供方补齐,不建议通过轮流尝试全部安全选项来猜测。猜测会引入新的变量,使最初缺少的字段更难定位。
性能与电量:比较整条连接成本
连接速度包含不同阶段
用户感知的速度至少包含开始连接、收到首段内容和持续传输三个阶段。前者受域名解析、往返路径及握手次数影响;首段内容还取决于远端目标响应;持续传输则受到链路容量、拥塞与设备处理能力限制。因此,协议对比必须先说明测试的是哪一阶段。把一次延迟测试的结果直接当成下载能力排名,容易得出与实际使用相反的结论。
协议认证、加密和封装确实消耗资源,但不同设备的硬件加速、系统调度与实现优化会改变结果。VMess、VLESS、Trojan 或 SS 的名称本身不能给出固定的 CPU 占用顺序。VLESS 协议本体不承担同类加密职责,也不表示配套 TLS 或 REALITY 没有成本。应该比较相同设备、相近线路和明确安全组合,而不是只比较下拉框中的名称。
传输包装与连接复用也有代价
WebSocket 等承载方式可能为了适配服务端入口增加额外包装,这部分开销在不同业务中权重不同。多路复用则尝试在较少底层连接上传递多个请求,可能减少重复建立连接,也可能让多个请求共同受某条连接的丢包与调度影响。是否启用必须结合服务端与流控方案,不能把所有名为“复用”的开关一并打开。
测试时先选择同一个目标站点,保留相同路由和 DNS 设置,分别观察首次打开、重复打开与持续读取。每轮只改变一个变量,并记录是否重新建立连接。浏览器缓存、目标站点缓存和已有连接会影响结果,所以重复一次并不能自动消除误差。如果不同配置连到不同服务器,结果主要反映两条服务链路,不能单独证明某个协议更高效。
安卓电量更多取决于持续工作方式
安卓 VPN 模式通过系统的 VpnService 接收应用流量。只要应用持续产生网络请求,客户端就可能被唤醒并处理数据;连接重试、DNS 查询和日志写入也会增加活动。某个协议在桌面上占用较低,并不能直接推导出手机待机会更省电。无线网络质量、后台应用数量与系统省电策略,往往是移动端差异的重要来源。
排查耗电时,可以先在相同使用习惯下比较客户端开启与关闭期间的系统电池记录,再缩小到 VPN 模式、分应用代理和特定应用。观察异常是否集中在信号不稳、频繁切换网络或后台持续传输时段。若日志反复建立连接,应先解决连接失败原因。单纯延长所有超时,可能只让错误连接等待更久,并没有减少实际工作量。
日志级别应与排错目标匹配。临时诊断可以提高详细程度,问题确认后应恢复适合日常使用的级别,避免持续生成大量记录。延迟探测与自动测试同样会主动发起连接,不应为了观察状态而设置过于频繁的测试。客户端列表更新、订阅更新与真实业务请求也要分开看,后台活动不一定全部来自正在浏览的应用。
如果只有特定应用耗电或失败,检查它是否依赖 UDP、长连接或后台推送,再核对代理范围。只让必要应用进入 VPN 路径,有时能减少无关流量,但前提是清楚分应用模式的含义。具体路径可查阅v2rayNG 的权限、省电与分应用设置。速度问题则按节点、线路与本地设置逐层排查,不要以更换协议代替定位。
V2Fly 与 Xray:兼容性按功能核对
共同生态不代表实现完全相同
Project V 是理解 V2Ray 生态的背景,V2Fly 延续相关内核与组件的开发,Xray 则由共同历史演进出自己的功能路线。两者在部分协议、配置结构和术语上相近,因此不少基础配置看起来相似。但相似不等于任意文件都能互换。安全机制、流控、传输细节和 DNS 行为可能存在差异,必须按具体功能判断。
REALITY 和特定 VLESS 流控方案是选择内核时常见的分界点。若订阅明确要求 Xray 的相应能力,换成 V2Fly 不会因为配置外形相近而自动获得支持。另一方面,不需要这些特性的基础连接,也不能据此推断必须使用某一个家族。内核选择应服务于现有协议组合和维护需求,而不是把家族名称当作性能等级。
三款客户端在同一链条中的位置
v2rayN 是桌面端的优先选择,覆盖 Windows、macOS 和 Linux 的使用需求。它负责图形管理与配置生成,具体内核能力还要结合所用发行包和运行设置确认。界面允许选择某项参数,不代表任意内核都能处理。排错时应查看实际启动记录,确认执行的是预期内核,而不是只根据客户端名字推断运行环境。
安卓端的 v2rayNG 面向 Xray 内核使用;v2flyNG 则是 V2Fly 内核方向的备选。两款应用的操作习惯可能接近,但不能因此忽略协议特性的差异。如果导入资料包含只有一方实现的安全或流控功能,应先按功能选择客户端,再处理权限与连接设置。完整客户端比较见三款 V2Ray 客户端的选型对照。
配置迁移需要检查生成结果
迁移时最可靠的起点是原始订阅或完整分享资料,而不是从旧客户端截图逐项猜测。先在目标客户端创建独立分组,导入后核对协议、地址、认证、传输、安全和流控。不要立刻删除旧配置,先完成单个入口验证。若原始资料缺少扩展参数,就算目标客户端支持相应能力,也无法凭空恢复被遗漏的信息。
原生 JSON 的迁移还要区分完整配置与局部出站。完整配置可能同时指定本地监听、路由标签、DNS 和日志;某个字段被新内核接受,不代表整套行为保持一致。尤其是路由引用的标签与出站标签必须对应,否则可能出现配置可加载但目标流量没有走预期路径的情况。应先验证最小连接,再逐步迁入本地策略。
| 检查对象 | 需要确认 | 失败时先看 |
|---|---|---|
| 协议能力 | 协议、安全与 flow 组合 | 未知协议或不支持字段 |
| 传输设置 | 承载方式及附属参数 | 路径、名称与握手错误 |
| 本地策略 | 监听端口、标签和 DNS | 端口冲突与路由引用 |
升级客户端和升级内核也不是始终同一个动作。不同发行方式可能把内核随包提供,或通过客户端功能管理。应以实际安装包和界面说明为准,不建议混用来源不明的内核文件。升级前保留配置导出,升级后核对关键连接与路由行为;出现问题时记录变化范围,区分是解析器、配置生成还是内核执行发生了变化。
开源属性意味着代码和实现可以被研究与改进,不等于所有分支使用相同许可证、相同发布节奏或相同功能清单。转发与再分发时应按各组件实际许可要求处理。对于日常选型,最有用的记录是“客户端、实际内核、所需协议特性”三项,而不是笼统写成“V2Ray 已安装”。这份记录也能让后续故障描述更准确。
订阅格式:导入成功不等于字段完整
地址、内容与内部配置是三件事
订阅地址只是取得内容的入口,地址结尾不决定返回格式。一次请求可能得到分享链接列表、经过 base64 编码的列表、原生 JSON,或者错误页面。客户端取得内容后还要识别格式、解析字段,再转换为自己的配置模型。因此,浏览器能打开地址仅说明请求获得了响应,不能证明返回的是当前客户端能够识别的服务器资料。
base64 是编码方式,不是加密协议,也不自动赋予内容安全性。常见订阅把多条分享链接连接成文本后再编码,解码之后仍需按每条链接对应的规则解析。重复编码、缺少换行、混入网页标签或字符集处理错误,都可能影响识别。用户不应把私人订阅上传到在线解码工具;订阅地址本身可能包含访问凭据,应按敏感信息保存。
分享链接并没有统一的字段语法
常见 VMess 分享链接会携带经过编码的结构化资料,VLESS 和 Trojan 链接常采用地址与查询参数组合,SS 又存在不同分享形式。它们的协议前缀相似,不代表查询参数可以互相照搬。名称通常只是备注,改变名称不会改变远端能力;传输路径、服务器名称和流控则可能直接影响连接,转换时不能一并丢弃。
解析器还需要认识扩展字段。某个客户端可能保留了协议主体,却忽略不认识的安全参数,最终表现为列表存在但连接失败。导入后至少展开一次服务器编辑页面,核对协议、传输、安全类型和关键附属字段。若发现数据缺失,优先寻找适合目标客户端的原始格式,而不是反复更新同一份已经丢字段的转换结果。
原生 JSON 不一定适合订阅分组入口
原生 JSON 可以是一整套运行配置,也可以只是部分出站资料。完整配置可能包含本地监听端口、DNS、路由规则和多个出站,导入行为与普通服务器订阅不同。部分客户端会将其作为自定义配置管理,不能期待它自动拆成常规列表中的多个服务器。导入前应确认入口说明,避免把完整配置当成逐条节点资料处理。
完整配置还可能覆盖原先的本地行为。例如订阅列表通常由客户端统一生成监听与路由,而自定义 JSON 可能自行指定这些内容。如果导入后系统代理失效,需要检查实际监听端口是否仍与系统设置一致。若启用了额外的路由标签,也要确认其引用的出站存在。不要仅因 JSON 语法合法,就认定它适合当前图形客户端的管理模式。
在 v2rayN 中,可从订阅分组管理进入“订阅分组设置”,保存地址后执行对应更新操作。若提供“更新当前订阅(不通过代理)”,它表示这次取得订阅内容不走已有代理路径,不代表返回内容变成其他格式。已有连接正常而直接更新失败时,可检查客户端支持的更新方式;完全没有可用连接时,则需要先确认直接访问订阅入口是否可达。
订阅更新后没有服务器,应先看请求是否成功,再看内容是否可解析,最后检查是否被分组筛选隐藏。返回登录页、额度说明或错误文本,与真正的格式不兼容是不同问题。更新后只有个别条目失败,则更应关注对应协议字段,而不是删除全部分组。向他人描述时可提供脱敏后的错误类型和协议组合,不要公开完整订阅地址或认证资料。
格式转换只能在信息足够时保留语义,不能凭空补全服务端参数。从完整配置导出简单链接时,复杂路由和 DNS 通常无法跟随;从链接重建 JSON 时,也无法恢复原来没有携带的本地策略。更多例子见base64、原生 JSON 与分享链接的转换边界。转换完成后仍需重新核对关键字段并做连接验证。
路由与参数:协议可用之后再分流
先区分本地入口与远端出站
本地 SOCKS 或 HTTP 监听用于接收应用请求,远端出站用于连接服务器。两者端口可以完全不同,不能把服务器端口填进应用的本地代理设置。界面常见的本地端口只是约定示例,实际值必须以客户端当前监听为准。若本地端口被其他程序占用,内核可能无法启动,此时再正确的远端协议资料也不会被使用。
下面展示一段真实的入站配置片段,用于说明字段关系,不是可独立连接服务器的完整配置。它只监听本机回环地址,应用需要连接同一设备的对应端口。不要为解决应用配置问题,随意把监听地址改成所有网络接口;那会改变其他设备访问本地代理的边界。远端协议和认证资料应由完整出站另行提供。
{
"inbounds": [
{
"tag": "local-socks",
"listen": "127.0.0.1",
"port": 10808,
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true
}
},
{
"tag": "local-http",
"listen": "127.0.0.1",
"port": 10809,
"protocol": "http",
"settings": {}
}
]
}
domainStrategy 控制路由匹配时的解析行为
路由中的 domainStrategy 决定在匹配规则过程中怎样对待目标域名。AsIs 优先保持原始目标形式,不为了 IP 规则主动把域名转成地址;IPIfNonMatch 在域名规则未匹配时尝试解析,再继续进行 IP 相关匹配;IPOnDemand 则会在匹配需要 IP 信息的规则时触发解析。三者影响的是匹配过程,不是直接决定请求一定走代理还是直连。
这些取值也不应与出站自身或其他模块中名字相近的策略混为一谈。选择前先看字段位于哪个配置对象,再读其含义。若应用最初只提供了 IP,路由就未必拥有可直接匹配的域名。嗅探有时可以从连接内容补充域名线索,但不是对所有协议与流量都有效,也不能保证恢复应用原本使用的完整域名信息。
DNS、规则顺序和目标形式共同影响结果
常见路由按顺序寻找满足条件的规则,较宽泛的条件放在前面,可能让后面的精细规则没有机会生效。域名规则和 IP 规则还依赖当前可用的目标形式。排查“规则写了却没走”时,应先确认请求实际呈现为域名还是 IP,再看哪条规则先匹配,最后检查目标出站标签,而不是一开始就扩大所有规则范围。
内核 DNS 与操作系统 DNS 的作用范围也可能不同。应用可能自行解析,内核可能为路由判断再次解析,远端服务器还可能解析最终目标。改动一个 DNS 地址不能证明所有请求都采用同一路径。若域名可以访问而某个 IP 规则不符合预期,应检查解析发生的位置、返回的地址族及缓存,再决定是否调整 domainStrategy。
安卓分应用代理控制哪些应用进入或绕过 VPN 路径,内核路由则决定进入后的流量如何转发。开启绕行模式时,应用列表的含义可能从“包含”变成“排除”,应以界面说明为准。修改后需要按客户端要求重新建立 VPN,才能让系统应用新的范围。测试时选一个明确的应用和目标,避免同时改变应用名单、DNS 与域名规则。
推荐按顺序验证:本地监听已建立,应用请求确实进入,协议连接正常,最后再添加分流。出现问题时临时回到已验证的简单策略,然后逐条恢复规则。有关分流、DNS 与代理模式的常见现象可查常见问题。这样能把“入口没接入”“远端连不上”和“路由没命中”分成三个独立问题,不必在协议字段里反复试错。
使用场景与排错:把选型落实到核对顺序
桌面优先确定客户端,再核对协议组合
桌面使用优先从 v2rayN 开始,在下载页按操作系统和设备架构选择对应安装包。安装包的界面类型与远端协议是两项选择:Windows 的桌面版和经典 WPF 版属于界面与发行形式差异,不代表需要分别购买或创建不同协议入口。已有订阅时先导入并验证一条连接,再处理界面习惯与本地分组。
安卓若使用 Xray 特性明确的配置,应选择 v2rayNG;若现有资料面向 V2Fly 并且功能相符,可考虑 v2flyNG。不要因为两款应用都能识别相同前缀,就忽略配套安全参数。长时间后台使用还需确认 VPN 权限、省电策略和分应用范围。权限被系统收回产生的断连,不应该通过更换 UUID 或改变加密方法解决。
现有资料决定可选范围
只有一套有效服务资料时,优先把它配置正确,而不是按通用排名选择另一种协议。服务端提供多个入口时,再比较客户端支持、资料完整程度、真实应用表现和维护成本。对需要经常迁移设备的人,格式是否通用、关键字段能否完整导入,可能比少量协议开销更重要。对需要特定 Xray 功能的人,内核能力则是不可跳过的条件。
局域网管理、网页浏览与持续传输对连接的要求不同。网页使用常涉及许多短请求,实时应用更关注连接稳定与 UDP 路径,长时间传输更依赖线路持续容量。协议名称无法替代对业务的验证。选择一项实际任务,在相同网络条件下完成,再检查断开重连与网络切换后的恢复情况,比只看列表中的一次测试结果更接近使用需求。
按失败阶段定位,不按猜测更换参数
第一步看内核是否启动。若提示配置解析失败、未知字段或端口被占用,先解决本地问题。第二步看能否连接服务器地址与端口;连接超时可能涉及地址、路由或远端监听,尚不能证明密码错误。第三步检查安全握手,重点看系统时间、服务器名称、证书与 REALITY 参数。最后才检查代理认证和目标转发。
如果日志显示连接已建立,但应用没有数据,应确认请求是否真正进入客户端,再核对 DNS、路由目标与远端访问能力。某个网站失败而其他网站正常,通常需要围绕目标域名和应用行为缩小范围,不宜直接重装客户端。如果只有 UDP 相关业务异常,应检查本地入口、协议支持与服务端转发能力,而不是用一次 TCP 成功作为全部正常的证明。
| 现象 | 先检查 | 暂不急于调整 |
|---|---|---|
| 内核启动失败 | 字段支持、本地端口、配置结构 | 远端密码与线路 |
| 安全握手失败 | 时间、名称、安全参数 | 分应用名单 |
| 只有部分应用失败 | 代理入口、应用范围、UDP | 全部订阅内容 |
| 更新后个别入口失效 | 变化字段与解析结果 | 整套系统网络设置 |
需要协助时,保留与一次失败操作对应的日志片段,记录客户端、实际内核、协议、传输、安全机制以及失败阶段。删除订阅凭据、密码、用户标识和其他可关联个人账户的信息,截图也要检查隐藏区域与完整地址栏。只描述“连不上”会迫使排查从头开始;明确到“安全握手失败”就能排除大量无关设置。
最终可把选择收敛为三个问题:服务端提供了什么完整组合,当前内核能否原样表达,真实应用在目标设备上是否稳定工作。三个答案明确后,再优化路由与后台行为。第一次连接的操作顺序仍以上手教程为主;反复出现的具体症状查常见问题;需要理解设计差异时回到本手册对应章节。分开处理操作、原理与排错,配置更容易维护。