要确认某次测试请求确实使用了直连策略,必须先确认内核运行模式是 direct。手册写明:rule 为规则匹配,global 为全局代理且需要在 GLOBAL 策略组选择代理/策略,direct 为全局直连;该项有默认值,默认为规则模式。配置未写 mode、值为 rule、或值为 global 时,都不能把随后的请求记成全局直连。global 下即使所选出口看起来像直连,语义上仍是全局代理模式。
适用条件
本确认步骤适用于:已经把 mode 写成 direct 并完成加载;需要证明这次成功或失败可以记在“全局直连”名下;避免把规则匹配到 DIRECT 出站与运行模式直连混为一谈。全局配置章节定义的是运行模式字段,并没有把规则里的直连出站等同于 mode: direct。规则模式下个别连接走直连,与全局直连不是同一条件,也不能用来证明测试请求“确实使用了直连策略”。
核对清单
第一,读取内核实际加载的配置,确认存在 mode: direct。只检查磁盘上另一份未加载文件无效。第二,明确排除 global:只要仍处于该模式,请求就不是全局直连。第三,用日志证明内核在工作且你能看到一般运行信息。将 log-level 设为 info 或 debug;日志仅在控制台和控制页面输出。silent 无法用于确认,error 过窄。不要用臆造的日志原文当证据,以“级别足够且有运行输出”为下限。第四,证明测试流量进入了该内核。allow-lan 为 false 时其他设备不能经代理端口进入;bind-address 不是测试机所连地址时,请求可能从未到达该进程。本机测试也要排除绕过内核的系统直连,否则“看起来直连成功”不能证明 mode 已生效。第五,本次确认中保持 interface-name、routing-mark、ipv6 不变,避免把出站接口问题当成模式未切换。
profile.store-selected 只储存 API 对策略组的选择,不代表运行模式被存成直连。下次启动仍以配置中的 mode 为准。外部控制器可用于确认进程仍在监听,但文档同时说明 Unix socket、Windows namedpipe 以及 DOH 路径不验证 secret;能打开控制页面只说明 API 或界面可达,不能单独当成已经是 direct。
判断依据与失败时下一步
可成立的判断依据是三者同时成立:加载配置中 mode 为 direct;测试连接经过该内核入站;日志级别足以观察运行。缺任何一项,都不能声称测试请求确实使用了直连策略。若文件已是 direct 但行为仍像按规则分流,优先怀疑加载的不是刚编辑的那份配置。若行为像全局代理,检查是否仍为 mode: global 以及 GLOBAL 策略组是否已选择出站。若完全没有内核日志,先排除 log-level: silent,再确认进程是否在运行。确认失败时不要靠改规则“制造直连”,那只会回到规则匹配;应只修正 mode 并重新加载,再重复清单。