订阅分组与服务器过滤
把订阅地址与连接配置分开管理
打开 v2rayN 的“订阅分组设置”,先建立独立分组,再填写订阅地址。分组负责保存更新来源、备注及过滤条件,服务器条目负责保存导入后的协议参数。修改分组备注不会改变远端连接信息;更新订阅也不等于切换当前服务器。完成更新后,仍要确认主窗口当前使用的是哪一条记录。
给分组命名时使用用途与来源描述,例如“日常使用”或“兼容测试”。不要把订阅地址直接写进备注、截图或共享文档。地址中的路径和查询参数可能承担访问授权作用。需要排查时只记录地址类型、返回状态与错误文本,隐藏具体内容;复制地址时保留原有编码,不要自行删去看似重复的参数。
首次更新先关闭过滤条件,确认能够获得服务器列表,再逐步增加限制。把“地址返回内容为空”与“内容存在但被筛掉”分开判断。前者需要检查订阅是否有效、网络是否可达及响应格式;后者需要检查过滤表达式。直接反复刷新不能修复错误的过滤条件,还可能掩盖真正的返回信息。
按字段和匹配方式缩小范围
使用服务器过滤前,先看设置项说明:它匹配的是服务器备注、协议类型,还是其他字段;表达式是普通文本、包含匹配,还是正则表达式。不同界面不能假定规则一致。若字段明确支持正则,可用下面的表达式匹配备注中的测试或备用标记;它只是匹配条件,是否保留这些记录由过滤项的语义决定。
(测试|备用)
不要一开始就组合复杂的排除条件。先以一条已知备注测试,再测试另一条不应匹配的备注,最后检查空备注。正则中的圆括号、竖线和句点有特殊含义;需要匹配字面句点时写成反斜线加句点。大小写是否敏感应以当前字段实现为准,不能仅凭界面上显示的字母形态推断。
如果订阅来源使用不同命名方式,优先为每个分组分别设置过滤,而不是把所有名称塞进同一个表达式。远端调整备注后,旧条件可能突然筛掉全部记录。更新前记下一个应当保留的名称特征,更新后检查它是否仍存在。不要以“列表数量变化”单独判断服务是否异常,来源本身也可能调整内容。
处理更新覆盖与连接参数差异
订阅记录通常由远端数据重新生成。需要长期修改传输参数时,先确认客户端是否提供独立保存或复制为手动记录的功能;复制后放进单独分组,并明确它不再自动继承订阅更新。不要直接修改一条订阅记录后,就假定下一次刷新一定会保留改动。先做一次受控更新,观察字段是否被覆盖。
遇到“导入成功但无法连接”,核对协议、服务器地址、端口、传输方式以及 TLS 相关字段。导入成功只表示客户端能够识别格式,不代表当前内核支持全部特性。v2rayNG 与 v2flyNG 的内核家族不同,不能只凭外观相似就互换配置。先确认协议需求,再决定使用哪款客户端。
订阅更新失败时,先保存当前仍可用的配置,不要立即清空全部分组。依次检查地址完整性、系统时间、证书错误与更新是否通过代理。具体分支见v2rayN 订阅更新失败排查。修正来源后,再恢复过滤条件,避免同时更改地址和筛选逻辑。
最后执行一次最小验证:更新一个分组,选择一条已知用途的记录,启动内核,再确认日志没有配置解析错误。验证通过后再启用自动更新。这样能够把订阅格式、过滤条件和连接参数三个问题拆开,不会因为一次批量操作而失去可用基线。
路由规则实战
按命中顺序组织规则
先确认请求已经进入客户端,再分析路由。系统代理、应用内代理或 TUN 入站负责接收请求,路由只处理内核已经接收到的连接。一个未使用系统代理的应用,不会因为新增域名规则就自动被接管。测试规则前,先用一个明确配置代理的应用作为样本,排除接管范围带来的干扰。
在 v2rayN 中打开“路由设置”,查看当前启用的预置与规则顺序。常见规则按从上到下匹配,先命中的规则决定出站。把范围窄的例外放前面,把范围宽的分类放后面。例如某个域名需要单独走代理,就不能把覆盖它的直连分类放在它前面;规则存在并不意味着它有机会执行。
同一条字段规则内部,不同字段通常需要同时满足;一个域名列表内部则可以匹配其中任意一项。不要把“域名命中或端口命中”误写成同时包含域名和端口的单条规则。需要表达两种独立条件时拆成两条,并逐条检查命中结果。修改后保存并重新加载,旧连接可能仍沿用之前建立的路径。
区分域名匹配与地址匹配
下面是 Xray 与常见 V2Ray 路由配置的字段示意,合并到已有的 routing 对象前,确认出站标签和规则资源存在。示例先处理广告分类,再处理本地域名,最后处理私有地址。这里的 block 与 direct 只是标签,必须在实际配置中有对应出站。
{
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"domain": ["geosite:category-ads-all"],
"outboundTag": "block"
},
{
"type": "field",
"domain": ["domain:localhost"],
"outboundTag": "direct"
},
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "direct"
}
]
}
}
domain: 适合匹配域名及其子域名,full: 用于完整域名匹配,regexp: 用于正则匹配。优先使用语义明确的匹配方式,只有确实需要复杂模式时才使用正则。不要把包含关系当作域名边界,否则名称相似但不相关的目标也可能命中,造成难以察觉的错误分流。
geosite: 与 geoip: 依赖运行环境提供相应数据文件,分类名称也必须存在。日志提示分类无法加载时,先检查资源与名称,不要通过删除所有规则来掩盖问题。客户端生成的配置可能采用其他资源机制,必须按实际内核格式处理,不能把不同格式的规则集地址直接混用。
| 域名策略 | 匹配行为 | 检查重点 |
|---|---|---|
AsIs | 保持目标原有形态,不为路由主动解析域名 | 域名规则是否足够覆盖 |
IPIfNonMatch | 域名规则未命中时,尝试解析后匹配地址规则 | 解析结果与地址规则顺序 |
IPOnDemand | 匹配过程遇到地址规则时按需解析 | 靠前的地址规则是否改变预期路径 |
验证默认路径与嗅探边界
没有规则命中的连接仍需要默认路径。原生配置通常会使用默认出站,客户端也可能额外生成兜底规则。不要只看规则编辑器末尾是否为空,应查看实际运行配置。尤其在增加自定义出站后,出站排列变化可能改变未命中请求的去向;通过显式兜底规则表达意图通常更容易查阅。
“启用流量嗅探 sniffing”能够从支持的流量中补充域名线索,但不是任意协议的域名恢复器。是否修改目标地址还受嗅探选项影响。应用直接访问地址、使用无法识别的加密握手或复用旧连接时,日志中的目标可能仍是地址。不要为了让一条域名规则命中,就无条件扩大嗅探覆盖范围。
验证时一次只访问一个目标,查看目标名称、命中标签和错误阶段。若没有命中预期规则,先把测试规则移到更靠前的位置,确认它自身有效,再恢复正常顺序。若命中了却连接失败,则转向出站连接与 DNS 检查,不要继续改匹配条件。规则命中正确与网络可达是两项独立结论。
“全局代理”也需要区分语境:系统代理只是应用接入方式,预置路由中的全局则影响内核内的出口选择。切换全局不能保证所有程序都进入代理。需要回顾术语时查阅术语表,需要处理未接管的应用时继续阅读 TUN 章节。
DNS 配置优化
先画出实际解析链
把 DNS 分成应用、操作系统、客户端和远端出口几个位置检查。浏览器可能启用自己的安全 DNS,系统可能使用局域网解析器,内核可能维护独立缓存,代理服务器也可能解析最终目标。修改“DNS 设置”只会影响被该配置接管的查询,不能假定所有应用都会立即使用新服务器。
先确认应用提交给代理的是域名还是地址。使用支持远端解析的代理方式时,应用可以把域名交给代理;若应用先自行解析,再把地址交给客户端,域名分流就可能缺少原始信息。此时需要回到应用代理选项或接管方式检查,不能单靠增加一条域名 DNS 规则恢复全部上下文。
区分两类关键查询:代理服务器自身地址的解析,以及业务目标的解析。前者发生在建立代理连接之前,必须有能够独立工作的路径。把唯一的引导解析器设置成“只有代理建立后才可访问”,会形成启动循环。配置域名形式的加密解析服务时,也要考虑该服务名称最初如何得到地址。
按用途分配解析器
下面是内置 DNS 的简化配置片段,适用于支持这些字段的 V2Fly 或 Xray 配置。它用公共解析器处理一般查询,并把本地域名交给系统解析。示例用于说明域名条件与查询策略,不代表公共解析器在任意网络都可达;实际使用前应按网络要求替换,并确认客户端是否会覆盖这部分内容。
{
"dns": {
"queryStrategy": "UseIP",
"servers": [
"1.1.1.1",
{
"address": "localhost",
"domains": ["domain:localhost"]
}
]
}
}
内网服务通常依赖局域网 DNS 中的私有记录。把全部查询送到公共解析器后,这些记录可能不存在,或返回不适合当前网络的地址。为企业内部域名、路由器管理名称和自建服务保留明确的本地解析路径。不要把所有单标签名称都当作公共域名,也不要为解决一个内部名称而关闭整个 DNS 分流。
解析器的传输方式与查询实际走向是两回事。使用加密 DNS 能保护相应传输链路,但它是否经过代理,仍取决于内核实现、出站规则和客户端生成方式。部分本地解析模式会绕过普通路由处理;确认行为时查运行配置和连接日志,而不是根据地址字符串中是否出现加密协议判断路径。
“期望地址”一类条件用于判断返回结果是否符合规则预期,不应当成提升速度的通用开关。启用后如果合法响应被拒绝,可能触发回退查询,反而让故障更难定位。先确认基本解析成功,再增加结果约束;每加一层条件,都保留一个能够对照的域名及其预期解析范围。
分别验证地址族与缓存
同时支持 IPv4 与 IPv6 的网络,需要分别检查解析和连接。获得 IPv6 地址不代表当前出口具备可用的 IPv6 路径。若日志表现为选中地址后连接失败,应检查系统路由与出口支持,再决定是否调整查询策略。直接删除所有 IPv6 设置只能暂时改变症状,不能证明 DNS 服务原本有问题。
改变解析器后,浏览器、系统与内核可能各自保留缓存。测试时关闭旧连接,重启测试应用,并按需要刷新对应缓存。不要同时更换服务器和查询策略,否则结果变化无法归因。系统查询工具能验证系统解析链,但不一定经过内核内置 DNS,所以它与浏览器结果不同并不必然表示配置未生效。
排错时保留一条简单解析路径作为对照。先关闭复杂回退与结果过滤,确认基础查询能够完成,再恢复域名分类、地址族偏好和加密传输。若本地名称正常而外部名称失败,检查外部解析器可达性;若查询完成但目标连不上,返回路由章节检查出站,不要继续叠加解析服务器。
最后检查 DNS 日志的隐私影响。调试记录可能包含访问的完整域名,长期保存会形成详细活动记录。完成验证后恢复日常日志级别,分享错误信息时隐藏内部名称和订阅关联信息。DNS 优化的目标是路径明确、结果可解释,而不是配置尽可能多的上游。
TUN 模式
区分系统代理与虚拟网卡接管
系统代理只影响遵循相应设置的应用。TUN 模式通过虚拟网络接口接收系统流量,再交由用户态网络栈或转发组件处理,适合需要接管更多应用的场景。它会涉及系统路由、接口权限及 DNS 接管,影响范围比普通代理更大。启用前先确认系统代理模式下的基础连接已经可用。
v2rayN 的“TUN 模式设置”属于客户端管理层,不应直接理解为 V2Fly 或 Xray 原生配置中的同名对象。具体由哪个组件创建接口、怎样生成配置,应查看客户端运行信息。不同内核的 TUN 入站格式也不同,不能把另一种内核的字段粘进 V2Ray JSON 后期待自动转换。
先保存当前可用设置,退出其他正在接管系统路由的工具,再按客户端提示授予所需权限。首次启用只验证基本接管,不同时加入 FakeDNS、自定义网段和复杂进程规则。若权限不足,应修正授权与启动方式,不要通过反复切换开关期待虚拟接口自行出现,也不要长期使用不必要的高权限。
检查路由、排除项与平台差异
确认默认路由接管方式,并为代理服务器自身的连接保留正确出口。若服务器连接又进入同一个 TUN 接口,就会形成回环,表现为连接反复建立或超时。客户端可能通过接口绑定、路由排除或其他方式避免回环;修改自定义路由前先弄清现有机制,不要删除看似多余的排除项。
访问局域网设备时,检查私有地址是否直连,以及系统是否仍有通往本地网段的路由。内核中的直连规则只能决定收到流量后的出口,系统路由则决定流量首先送到哪里,两者都要正确。打印设备、网络存储和远程管理连接应分别测试,不能只用浏览器访问一个网页证明局域网仍然正常。
| 平台 | 检查位置 | 常见边界 |
|---|---|---|
| Windows | 网络适配器、路由表、客户端权限提示 | 安全软件或其他虚拟网卡影响接管 |
| macOS | 系统网络设置、授权提示、运行日志 | 接口创建与路由修改需要相应权限 |
| Linux | TUN 设备、路由规则、服务运行权限 | 桌面会话与后台服务权限环境不同 |
| Android | VPN 授权、分应用代理、后台限制 | 客户端通常通过系统 VPN 接口接管 |
Android 上使用 v2rayNG 或 v2flyNG 时,系统 VPN 授权与桌面客户端的虚拟网卡管理并不完全相同。检查分应用代理名单,确认测试应用包含在接管范围中。若选择了仅代理所选应用,新安装的程序未必自动加入;若选择排除模式,也要检查是否误排除了实际使用的浏览器或后台服务。
企业网络工具、容器网络和虚拟机软件可能维护自己的路由。接管后某些地址失联时,先比较启用前后的目标网段与接口选择,再决定增加排除项。不要把所有私有网段都笼统导入代理,也不要为了一个容器地址而关闭全部接管。规则越明确,恢复网络时越容易确认影响范围。
处理 UDP、MTU 与退出恢复
网页打开只证明部分 TCP 路径可用,不能证明 UDP 也已经正常。实时通信、部分名称解析和使用 UDP 的应用还依赖出站能力、远端支持与本地防火墙。出现应用特定故障时,先确认它使用的传输协议,再查看相应日志,不要把所有情况都归因于虚拟网卡创建失败。
若小请求正常、大响应卡住,可把路径 MTU 作为排查分支,但不要直接照抄他人的固定数值。先排除 DNS、握手与出站错误,再在客户端提供的范围内小幅调整,并保持其他设置不变。每次变更后重新建立连接,记录现象是否一致;没有证据时恢复默认值,避免引入新的性能问题。
退出 TUN 时先使用客户端的正常关闭流程,再检查系统代理与 DNS 是否恢复。异常退出后不要立刻删除全部网络接口,应先重开客户端完成清理,必要时按系统网络设置恢复。macOS 的授权与网络权限问题可继续查阅macOS 安装与权限处理步骤,移动端后台问题则应单独检查电池策略。
FakeDNS
理解虚拟地址与域名映射
FakeDNS 不直接返回目标的真实地址,而是从专用地址池分配虚拟地址,并保存域名与地址的对应关系。应用随后连接该地址时,接管组件通过映射恢复原始域名,再进行路由和出站处理。它主要解决地址形态流量中的域名识别问题,不是一个可以独立替代完整 DNS 链的公共解析服务。
配置是否成立取决于闭环:查询必须进入 FakeDNS,返回的虚拟地址必须被同一套接管链收到,映射必须仍然存在,入站还需要执行正确的域名恢复。缺少任何一环,都可能出现“解析有结果但完全打不开”。因此,先验证普通 DNS 与 TUN,再增加 FakeDNS,避免在尚未稳定的接管链上叠加映射。
不要把路由中的虚拟地址直接送向真实网络。它们不是目标服务器的位置,通常也无法在普通网络中访问。若日志持续尝试连接地址池中的地址,优先检查映射恢复与接管范围,而不是寻找能够访问该地址的代理服务器。只有恢复原始域名后,后续域名规则与远端解析才有正确的输入。
对齐内核支持与入站配置
下面展示支持 FakeDNS 的 Xray 配置要素,分别对应地址池、DNS 服务器和目标入站的嗅探对象。它们需要合并到同一份实际运行配置中的正确位置,不是三个可随意追加的顶层对象。客户端若已经生成这些部分,应使用其对应设置,避免重复声明或覆盖其他必需选项。
{
"fakedns": [
{
"ipPool": "198.18.0.0/15",
"poolSize": 65535
}
],
"dns": {
"servers": ["fakedns"]
}
}
{
"sniffing": {
"enabled": true,
"destOverride": ["fakedns"]
}
}
第二段是入站内部的 sniffing 对象,不应直接作为完整入站替换原配置。若当前入站还需要 HTTP 或 TLS 嗅探,应按内核文档合并列表,而不是机械删掉原有内容。不同内核对虚拟地址与嗅探的实现可能不同;在 v2flyNG 中操作前,先确认所用内核和客户端确实提供相应支持。
示例地址池是虚拟用途网段,但仍需检查本机与所在网络是否已经使用它。实验环境、其他代理组件或网络测试工具可能有相同用途。地址重叠会使路由含义不明确。不要任意选择一个看似空闲的公网网段;如果客户端允许修改,应遵循该实现的地址池要求,并同步检查路由排除项。
地址池容量影响能够保留的映射数量,不等于可连接服务器数量,也不是速度参数。容量过小可能在域名较多时更快淘汰旧映射;随意放大则可能增加资源占用。先使用实现提供的合理默认值,只有日志与复现条件指向映射淘汰时再调整,不能仅凭一个应用打开缓慢就认定容量不足。
处理缓存与绕行应用
启用或停用 FakeDNS 后,应用和系统可能继续使用旧缓存。若应用还持有虚拟地址,而对应映射已因重启消失,就会出现间歇失败。测试切换时关闭相关应用连接,清理对应解析缓存,再重新发起请求。不要只重启内核而让浏览器长时间复用先前的地址与连接,这会把新旧两种状态混在一起。
应用自带的加密 DNS 可能绕开预期查询入口;固定地址访问则根本没有域名查询过程。这两类流量不能自动获得 FakeDNS 映射。处理时先识别应用实际行为,再决定是否调整应用 DNS、代理方式或接管范围。不能因为其他应用正常,就断定异常应用一定使用了相同的解析链。
对局域网名称和依赖真实地址的应用保留普通 DNS 路径。部分服务会把解析结果传给另一个未被接管的进程,那个进程可能无法使用虚拟地址。发现此类边界时,应对目标名称设置明确的解析例外,而不是扩大虚拟地址的系统可见范围。跨进程传递地址的行为需要结合应用结构判断。
回退时按顺序恢复普通解析、停用虚拟映射,再清理旧缓存并重建连接。如果回退后仍访问虚拟地址,先处理缓存残留,不要继续修改服务器配置。FakeDNS 的价值在于保留可路由的域名信息;当普通域名入站已经满足需求时,没有必要仅为增加配置复杂度而启用它。
多订阅管理
用分组建立清晰的更新边界
为不同来源建立独立订阅分组,再按用途设置备注和过滤条件。来源相同但用途不同,也可以先在管理层区分,但要注意重复更新与重复记录。分组不是连接的叠加器,多添加一个订阅不会自动提升当前连接能力;真正生效的仍是当前服务器、路由规则和配置中的出站选择。
区分“来源身份”“展示名称”和“连接参数”。两条记录的备注相同,可能指向不同服务器;备注不同,也可能只是同一连接被换了名称。去重时检查协议、地址、端口及关键传输参数,不要仅按名字删除。若客户端提供去重功能,先了解比较字段,并在执行前保留可恢复的配置副本。
自动更新的目标是跟随来源变化,不是持续刷新列表。按订阅变化频率和使用习惯设置合理间隔,避免多个来源同时更新时难以识别错误。排错期间先暂停相关分组的自动更新,保持测试环境固定;确认问题解决后再恢复,防止远端变化刚好发生在本地参数验证过程中。
把更新路径与使用路径分别验证
订阅更新可能使用直连,也可能通过当前代理,具体取决于客户端选项。若当前代理依赖某个订阅,而该订阅又只能经过当前代理更新,需要提前准备可行的恢复路径。不要把尚未验证的服务器设为唯一更新通道,再删除最后一条可用记录,这会把管理平面与连接平面同时锁住。
测试更新路径时一次只操作一个分组。记录更新方式、错误阶段及是否能保留旧记录,再切换另一条路径作对照。证书错误先检查系统时间和网络环境,不应直接关闭证书验证。网络认证页面、被替换的响应或错误的重定向都可能导致导入失败,客户端显示的空列表只是结果,不是原因。
更新完成后重新检查当前服务器归属。远端删除或替换记录后,客户端可能保留旧选择,也可能要求重新选择。不要假设“更新成功”意味着当前连接已经使用最新参数。观察主窗口所选记录,重新建立连接,再查看日志中的目标地址与配置来源,确认实际使用的对象。
| 操作 | 主要影响 | 操作后检查 |
|---|---|---|
| 更新一个分组 | 该来源生成的服务器记录 | 过滤结果、当前选择、关键参数 |
| 修改分组过滤 | 导入后的可见或保留范围 | 已知目标是否被误排除 |
| 切换当前服务器 | 后续新建连接的代理出口 | 是否需要重建应用连接 |
| 删除订阅来源 | 后续更新能力与关联记录 | 当前记录是否仍可管理和恢复 |
手动记录与订阅记录分开放置。手动记录适合保存经过确认的特定参数,但它不会自动收到来源修正,必须承担维护责任。记录修改原因和涉及字段,不在备注中保存凭据。若只是临时测试,验证结束就删除测试副本,避免几个月后无法判断哪条才是仍受来源维护的配置。
安排备份、迁移与敏感信息保护
备份客户端配置前,了解导出范围:可能包含订阅地址、服务器认证信息、自定义路由与界面设置。将备份视为敏感资料,保存在有访问控制的位置。用于求助的材料应另行制作,只保留错误信息与必要字段,不能直接把完整导出文件上传到公开讨论区,也不要展示含授权参数的二维码。
迁移到另一设备时,先安装对应平台的客户端,再按最小范围导入。v2rayN 的桌面管理配置不能假定能被 Android 客户端直接读取;通用订阅内容与客户端私有设置也不是同一种数据。先恢复一个来源并验证连接,再迁移路由、DNS 和接管设置,避免把旧设备专属路径与权限配置一并带入。
若怀疑订阅地址已经泄露,应通过来源提供的管理方式更换授权,再更新本地记录。只改分组备注不会改变旧地址的访问能力。替换后确认各设备都已更新,停用旧的自动任务和缓存副本。客户端无法替订阅来源撤销访问权限,管理动作必须发生在实际签发地址的一侧。
建立稳定维护节奏:先验证来源,再验证过滤,最后验证连接。多个分组同时异常时优先检查公共依赖,例如系统时间、网络和当前代理;只有一个分组失败时再聚焦地址与返回格式。相关现象也可在FAQ中按安装配置与故障排查分类查阅,避免把来源问题误判为整个客户端损坏。
自定义出站
用标签连接路由与出口
出站定义连接如何离开内核,路由通过标签选择出站。标签只是配置内部的引用名称,不具备特殊能力。把一个出站命名为 direct 并不会自动让它直连,真正决定行为的是协议及其设置。先检查出站对象,再检查路由引用;拼写一致只是配置正确的必要条件,不是充分条件。
图形客户端通常会生成当前服务器对应的代理出站,以及直连和阻断出站。需要增加自定义对象时,先确认客户端提供的是“追加片段”“替换完整配置”,还是专门的自定义配置入口。把局部片段导入完整配置入口会缺少入站等必需部分;反过来,整份配置塞入追加区域也可能产生重复定义。
下面是原生 V2Ray 或 Xray 配置中常用的直连、阻断出站片段,可用于理解标签结构。合并前检查是否已经存在相同标签。示例没有提供代理服务器认证信息,也不是完整客户端配置;代理出站应由已验证的服务器记录生成,避免在手写过程中漏掉传输与安全参数。
{
"outbounds": [
{
"tag": "direct",
"protocol": "freedom",
"settings": {}
},
{
"tag": "block",
"protocol": "blackhole",
"settings": {}
}
]
}
先做单路由测试,再增加组合
增加出站后,先用一条明确且范围较小的规则引用它。选择可控的测试目标,确认内核能够启动、标签存在、规则命中,再考虑扩大范围。不要直接替换全部默认流量;一旦配置有误,所有应用同时失败会减少对照信息,也可能让订阅更新和求助页面一起失去连接。
直连出站同样涉及解析与系统网络。它不代表跳过防火墙,也不保证使用某个物理接口。若需要绑定接口或指定发送地址,应确认当前内核提供的对应选项与系统权限,并验证地址是否属于本机。复制另一台设备的接口名称或地址,通常会导致连接失败,而不是获得同样的路径。
代理链并不等于放置多个代理出站。只有配置了明确的转交关系,连接才会经过多个阶段;普通路由一般只是选择其中一个出口。建立链路前确认每一段单独可用,再确认各段的域名解析、传输协议与认证要求。任何一段失败都会影响整条链,日志也需要按阶段读取,不能只看最后的超时。
尤其检查 UDP 与复用行为。某个出站能承载网页连接,不代表它适合所有数据报流量;某个协议支持复用,也不代表开启后对所有应用都有益。先保留默认设置,只有明确观察到连接建立开销或兼容问题时再做对照实验。不要把 Mux 当作无条件提速开关,也不要把多个内核的复用字段混用。
处理默认出站、循环与兼容性
没有显式兜底规则时,默认出站可能受对象顺序影响。插入新对象后,即使原有规则没有变化,未匹配流量也可能改走其他路径。修改前记录默认行为,修改后专门测试一个不会命中前置规则的目标。需要稳定表达默认意图时,使用当前内核支持的兜底方式,不依赖偶然的排列顺序。
避免出站互相引用形成循环,也避免出站的连接再次被本机代理入口接收。前者发生在内核配置的转交关系中,后者可能来自系统代理、TUN 或应用代理设置。两种情况都可能表现为重复连接和超时。排查时先画出每一步的下一跳,直到真实网络出口,任何回到起点的箭头都需要解释。
切换内核前保存配置,并逐项核对协议、传输、安全选项和资源格式。V2Fly 与 Xray 共享部分配置概念,但不是所有扩展都兼容;v2rayNG 与 v2flyNG 也不能只凭名称接近就视为相同运行环境。若内核报告未知字段,先按实际支持范围修正,不要简单删除错误行后忽略它原本承担的功能。
维护自定义配置时,把每个标签的用途写在外部记录中,避免在严格 JSON 中加入注释导致解析失败。保存时检查括号、逗号、字符串引号与重复键。每次只改一个逻辑单元,成功启动后再验证网络;语法通过不代表出口可达。需要重新选择客户端时返回下载页核对平台与内核用途。
撤销自定义出站时,先移除或改写引用它的规则,再删除对象,最后检查默认路径。只删除出站却保留标签引用,会让配置在启动或匹配阶段失败。完成回退后重建测试连接,并确认客户端已重新使用预期的配置生成方式,防止界面恢复而运行文件仍停留在旧状态。
配置验证与分层回退
保存能重复使用的验证基线
开始进阶调整前,保留一套已确认能工作的组合:当前客户端、所用内核、服务器记录、系统代理状态、路由预置与 DNS 方式。这里只需记录用途和关键选项,不必保存敏感地址到公开文档。基线的作用是对照,不是保证未来一直可用;来源变化后应重新验证,并注明哪些条件发生了改变。
按层修改:先订阅与服务器,再路由,再 DNS,最后接管和虚拟映射。每层验证通过后再进入下一层。若同时切换内核、启用 TUN、增加 FakeDNS 并替换规则,失败时几乎无法从现象判断起点。进阶配置的效率来自缩小变量,而不是一次填写尽可能多的参数。
建立固定测试集合:一个应该直连的目标,一个应该走代理的目标,一个局域网服务,以及实际出现问题的应用。每次使用同一组对象,并确认没有复用旧连接。测试结果应记录是否进入客户端、是否完成解析、命中哪个出站及失败阶段,不记录凭空推算的速度或仅凭体感得出的结论。
沿连接生命周期定位失败阶段
先看内核是否正常启动。配置解析错误、资源加载失败或监听端口占用,都发生在真正建立外部连接之前。此时更换服务器不会解决问题。检查最近修改的对象和日志首个错误,优先修复最早的失败点;后面的重试信息往往只是连带结果,不要被重复出现的末尾提示带偏。
启动成功后确认应用流量是否进入。没有对应入站记录时,检查应用代理设置、系统代理状态、TUN 路由与分应用名单。只有看到请求进入,才继续检查域名解析和规则命中。某些日志级别不展示每次连接,需要临时提高详细程度,但不要把“没有显示”直接当作“肯定没有发生”。
请求进入后,区分解析错误、连接错误与握手错误。解析超时指向解析器路径;目标连接失败可能涉及地址、端口、出口与防火墙;TLS 报错还需要检查服务器名称、系统时间和证书链。不要用关闭验证绕过错误,因为那会改变连接的安全条件,却没有解释原始配置为什么失败。
| 观察结果 | 优先检查 | 暂不更改 |
|---|---|---|
| 内核无法启动 | 配置语法、资源、端口占用 | 远端服务器选择 |
| 应用请求未进入 | 代理入口、接管范围、应用设置 | 域名分类规则 |
| 解析有结果但出口错误 | 规则顺序、默认出站、域名恢复 | 订阅地址 |
| 规则正确但握手失败 | 协议参数、时间、传输与证书 | 已验证的匹配条件 |
| 退出后系统仍异常 | 代理残留、DNS、虚拟接口与路由 | 全部服务器记录 |
只有部分应用异常时,检查它是否使用独立 DNS、固定地址、UDP 或不同的代理协议。只有后台异常时,检查系统休眠、网络切换和后台限制。Android 的持续运行问题可参考v2rayNG 电池优化与后台策略。不要把应用生命周期问题当成所有连接参数都需要重填。
按最小范围回退并整理证据
按最近修改的逆序回退。先撤销新增规则或自定义片段,再恢复解析方式,最后退出 TUN。涉及 FakeDNS 时同时处理虚拟地址缓存;涉及系统代理时检查系统实际状态。回退一项后立刻复测,若现象恢复,就把问题范围限定在该项及其依赖,不要再继续删除其他可用设置。
如果正常退出后网络仍未恢复,先查看系统代理是否指向已经关闭的本地端口,再检查 DNS 与默认路由。不要直接清空所有网络配置,这会连带影响固定地址、企业网络和虚拟机环境。优先使用客户端正常清理流程,必要时按操作系统设置逐项恢复,始终保留原值以便对照。
把最终有效的修改写成短记录:调整了哪个设置项,为什么调整,验证了哪些目标,怎样撤销。不要只保存一份无法解释来源的配置文件。后续客户端界面或内核行为改变时,这份记录能够帮助重新建立配置,而不是要求所有旧字段永远维持同样语义。
完成排错后恢复日常日志级别,删除临时测试记录,并重新启用确有需要的自动更新。基础流程回到快速上手复核;概念边界查术语表;常见现象查FAQ。保持一条明确、可验证、可回退的配置路径,再逐步扩展其他用途。