Skip to content

本地代理、系统代理与节点测速

本页说明 ZNet Sink 如何准备本地代理入口、接管系统代理、打开代理终端,以及如何展示节点和 URLTest 的测速结果。

本地代理入口

订阅同步后,客户端需要一条可供桌面应用连接的本地入站。对于订阅生成的配置,ZNet Sink 按以下规则处理:

  1. 如果配置已经包含完整可用的 mixedhttpsocks5 本地入站,保留用户配置;
  2. 如果本地入站存在但缺少监听地址或端口,补全为客户端管理的 Mixed 入站;
  3. 如果配置只有 TUN 或完全没有本地代理入站,添加一个 loopback Mixed 入站;
  4. 新生成的受管入口默认使用 127.0.0.1:7890

Mixed 入口同时供 HTTP 和 SOCKS5 客户端使用。代理端口可以在“设置 → 常规”中调整;修改后,客户端会同步受管配置和系统代理目标。

自定义配置中完整且可用的本地入站不会被强制改成 7890。

系统代理

开启系统代理前,客户端会确认内核正在运行且本地代理端口已经监听。关闭代理或退出客户端时,只恢复 ZNet Sink 接管前保存的系统设置。

Windows 上会保存原始 ProxyServer、绕过列表和自动配置地址,恢复时不会把原来按协议拆分的代理地址压缩成新的格式。ZNet Sink 自己启用代理时使用 Windows 接受的单一 主机:端口 形式,由 Mixed 入站同时处理 HTTP 和 SOCKS5 请求。

如果系统代理状态与预期不符,先检查:

  • 当前配置中的本地入站地址和端口;
  • 内核是否实际监听该端口;
  • 是否存在其他应用同时修改系统代理;
  • Windows 的绕过列表或 PAC 是否来自接管前的旧设置。

系统代理主要覆盖遵循操作系统 HTTP/HTTPS 代理设置的 TCP 应用。它不等同于 TUN,也不会自动接管所有 UDP、WebRTC 或 DNS 流量。

统一绕过规则

在“设置 → 网络”编辑“绕过规则”,系统代理与 TUN 共用这一份策略,规则模式和全局模式均生效:

  1. 按需启用“自动绕过局域网”,覆盖本机、常用私有网段、链路本地地址及本地域名,保留系统原有 VPN 路由。
  2. 每行填写一个自定义 IP、CIDR 或域名,例如 192.168.50.0/24intranet.example.com*.example.com;留空表示没有自定义规则。
  3. 保存并等待运行配置应用完成。TUN 页的“管理绕过规则”会打开同一编辑入口。

客户端把可精确表达的例外写入系统代理,将 IP/CIDR 加入 TUN 排除范围,并通过内核 route.bypass 保证模式无关的直连。系统代理无法精确表达的 CIDR 由内核执行,不会扩大成更宽网段;因此“直连”不保证流量完全绕过内核进程。配置自带的 TUN 排除仍叠加保留。

域名规则需要代理请求、受管 DNS 映射或支持的嗅探提供主机名。应用自己使用加密 DNS/ECH 且只暴露 IP 时,不能保证域名绕过生效,应使用已知目标网段。

首次迁移会合并旧系统代理绕过和 TUN 排除设置,此后以统一策略为准,删除的规则不会从旧字段重新出现。运行内核必须声明 route_bypass_v1;网段变更可能重建受管 TUN 并中断连接,失败时按既有配置事务恢复。

TUN 与系统代理

系统代理服务遵循操作系统代理设置的应用,TUN 接管进入虚拟网卡的流量,两者可以同时开启。查看连接的入站 tag 可以确认请求实际走了哪条路径。

TUN 来源、运行中修改、网络切换和停止确认见 TUN 接管与网络切换。当前客户端已提供 DNS 配置及 DNS 劫持;先保存有效 DNS 设置,再按 DNS 与 Fake-IP启用。

打开代理终端

Windows 托盘菜单中的“打开终端”会:

  1. 启动或连接当前内核;
  2. 等待本地代理端口可用;
  3. 打开可见的 PowerShell 终端;
  4. 为该终端进程注入代理环境变量。

注入值如下:

变量
HTTP_PROXY / HTTPS_PROXYhttp://<host>:<port>
ALL_PROXYsocks5h://<host>:<port>
NO_PROXYlocalhost,127.0.0.1,::1

客户端同时设置大写和小写变量,以兼容不同命令行工具。该功能只影响新打开的终端及其子进程,不会修改全局用户环境变量。

节点与 URLTest 测速

节点页会把单节点探测、策略组快照和本地历史合并为当前显示结果:

ZNet Sink 节点管理页面,展示 Selector 与 URLTest 策略组及节点延迟
客户端真实界面,演示数据 · 选择策略组后可查看当前出口、节点能力和探测延迟
  • URLTest 组使用内核返回的成员快照和当前选中项;
  • 客户端会继续用运行时策略快照校准 URLTest 当前选中项,避免 UI 长期保留旧选择;
  • 当 URLTest 作为另一个组中的节点卡片出现时,单点测速只探测它当前实际生效的出站,不递归重测全部成员;
  • 手动刷新 URLTest 卡片时,会通过策略探测路径刷新当前生效结果;
  • 手动等待期间到达的新鲜定时结果也可以完成本次等待;
  • 本地先显示的超时可以被随后到达的有效结果替换;
  • 嵌套 URLTest 卡片使用自身策略组的历史,不沿用父组的旧值;
  • 批量测速会去重父组中已经由 URLTest 负责探测的成员;
  • 进度数字按本次实际目标数量计算,不再把策略组展开数量误当作单点目标;
  • 即使批量完成事件丢失,全部成员的终态或看门狗超时也会清除加载状态。

策略组等待时间会根据成员数量调整,并设置上限。大量节点不应使用固定的短超时判断失败。探测失败会归一化为可读错误,同时保留原始 IPC 请求、响应和错误供复制排查。

Windows 不稳定支持区域旗帜 emoji,因此节点卡片使用旗帜图片渲染已识别国家/地区,避免显示为字母或方框。

历史记录的作用域

延迟历史同时绑定:

  • 当前配置;
  • 配置中的节点和策略组结构;
  • 被探测的节点或策略 tag。

切换配置后,不会把同名节点或 URLTest 组在上一份配置中的历史直接合并到新配置。配置首次加载过程中产生的临时作用域会在身份稳定后迁移,避免悬浮历史消失。

排查顺序

测速结果长时间不更新时:

  1. 确认当前配置和内核运行状态一致;
  2. 检查应用日志中的 probepolicy.probe.completed 和超时记录;
  3. 在诊断详情中复制对应的 policies.probediagnostics.probe_outbound 或查询帧;
  4. 确认切换配置后页面已加载新的策略快照;
  5. 避免连续点击父组、子 URLTest 和全部成员;
  6. 等待一次完整批次结束后再重试。

本地代理无法使用时,先在“设置 → 常规”确认代理端口;TUN 异常时同时确认“设置 → TUN”的来源和权限状态,再检查故障排查

ZeroDeNet