惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
Jina AI
Jina AI
The Cloudflare Blog
V
Visual Studio Blog
博客园_首页
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
博客园 - Franky

Kerry的学习笔记

OpenAI ChatGPT - 使用政策违规及停用警告 - Kerry的学习笔记 Codex 找不到 codex-code-mode-host.exe 的解决办法 - Kerry的学习笔记 Codex 桌面版迟迟没有 GPT-6 Astra?我踩了两个 CLI 的坑 - Kerry的学习笔记 Perplexity 忘记取消订阅自动续费后怎么退款? - Kerry的学习笔记 机场测速周报(第 3 期): SS-ID 继续领先,寰宇云恢复 - Kerry的学习笔记 机场测速周报(第 2 期): SS-ID 本期表现最佳 - Kerry的学习笔记 8 月上半月机场测速汇总 - Kerry的学习笔记 奶昔(Nexitally)机场怎么样?使用一个月后的感受 - Kerry的学习笔记 网站被黑以及恢复记录 - Kerry的学习笔记 再聊机场客户端 - 多代理客户端会打架 - Kerry的学习笔记 闲聊下机场客户端和订阅阅后即焚 - Kerry的学习笔记 我做了一个机场测速观察站 - Kerry的学习笔记 我让 Codex 自己缓解了一下它的 SSD 高频写入问题 - Kerry的学习笔记 没想到奈云也出事了 - Kerry的学习笔记 Claude 本轮封号潮好迷 - Kerry的学习笔记 记一次 Claude 桌面端连不上的排查 - Kerry的学习笔记 我的 Claude 稳定使用经验 - Kerry的学习笔记 如何为 Shadowrocket 使用 IPRoyal 代理 - Kerry的学习笔记 寰宇云机场怎么样? - Kerry的学习笔记 如何稳定使用 Claude, ChatGPT, Gemini(静态IP + Clash) - Kerry的学习笔记 ChatGPT 可以生成分层的 PSD?感觉还差了点 - Kerry的学习笔记 使用机场客户端的正确姿势:避免那些“灵异”现象的小经验 - Kerry的学习笔记 别卷机场了,eSIM 才是真的香! - Kerry的学习笔记 Google Play 账号快速换区 - Kerry的学习笔记 写在机房拔线后 - Kerry的学习笔记 Codex 登录报错 token exchange failed - Kerry的学习笔记 Gmail 停止支持 POP3了,但我们可以设置邮件转发 - Kerry的学习笔记 小旋风机场怎么样? | 小众 Trojan 专线机场 - Kerry的学习笔记 XX-AI 机场怎么样? | 中转&专线机场 - Kerry的学习笔记 【2026年8月】机场优惠码汇总 - Kerry的学习笔记
Windows 上几个代理客户端互相打架,我做了个网络接管守卫 - ...
Kerry · 2026-09-03 · via Kerry的学习笔记
Windows 上几个代理客户端互相打架,我做了个网络接管守卫 - 截图 3 科学上网

这篇文章大约需要5分钟阅读。

我电脑上装过不少代理客户端。Clash Verge、FlClash、龙猫云、全球云轮流开,单独用都没什么,切换多了以后就开始打架。

最典型的是关掉 Clash Verge 后,Windows 系统代理跟着被撤了。龙猫云界面还亮着“已连接”,浏览器却已经断网。更棘手的一次是龙猫云走系统代理时,Clash Verge 突然拉起 TUN,底层路由被直接接管,网络瞬间瘫痪,前台界面依然显示一切正常。

为了系统处理这种“开关看着都对,实际根本上不了网”的状态冲突,我把之前的“断网急救”重构成了“网络接管守卫”。

网络接管守卫 v0.6.8

  • 解决痛点:多客户端争抢系统代理、TUN 在底层接管流量、客户端退出后残留失效代理。
  • 运行平台:Windows 10 / 11 x64,主程序是单文件便携版,无需预装 .NET。
  • 项目地址Kerrynotes/network-rescue
  • 直接下载GitHub Releases 最新版

急着救急的朋友可以直接下载试用。如果你也遇到过类似的玄学断网,下面是我这次踩坑摸出来的逻辑和重构思路。

客户端里的开关,不等于系统的真实状态

这次重构最重要的认知是:绝对不能迷信单个客户端界面的“已开启”。

从用户点击开关到流量真正走通,中间隔着好几层独立状态:

  • UI 界面是否存活;
  • Core 核心进程是否在运行;
  • 本地代理端口是否正常监听;
  • Windows 系统代理到底指向谁;
  • TUN 虚拟网卡与活动路由是否生效;
  • 经由这条链路能否真实访问外网。

其中任何一层断档,都会演变成“看起来开着,实际不能用”。

系统代理本质上只是 Windows 给应用程序立的一块“路牌”。后退出的客户端顺手把路牌拔了,还在运行的客户端并不会自动把它插回去。

TUN 则在更底层通过虚拟网卡和路由接管流量。它并不是一个简单的“数字优先级”,但对被活动 TUN 路由覆盖的流量来说,实际路径应该优先按 TUN 判断。一个客户端使用系统代理、另一个客户端建立 TUN 时,还可能形成跨客户端的混合链路。这个时候界面继续显示“系统代理客户端正在接管”,就很可能已经是误报。

解耦状态:引入“三个接管者”

为了准确还原链路,新版界面废弃了笼统的“当前客户端”,拆分成三个概念:

  • 首选接管者:用户明确指定、希望默认保持的主力客户端;
  • 临时接管者:首选客户端退出时,用于兜底维持联网的健康客户端;
  • 实际接管者:综合系统代理、活动 TUN、网卡、路由表及监听端口,判定出的真实流量出口。
解耦状态:引入“三个接管者” - 截图 1

例如日常以龙猫云为主。龙猫云退出后,守卫检测到后台的 Clash Verge 链路健康,可以由 Clash Verge 临时接管网络,但不会擅自改掉原来的首选设置。等龙猫云重新启动并连续两次被识别到后,再自动尝试切回。

如果同时出现多个健康候选,又缺乏明确的仲裁依据,软件不会自作聪明,而是直接提醒用户手动选择。我的目标不是让界面看起来干净,而是尽量保持联网,同时尊重用户已经做出的选择。

系统代理守卫:验证健康,拒绝盲目硬写

当系统代理被其他客户端篡改或关闭时,守卫不会立刻强写注册表。它会先核验首选客户端的监听端口与进程归属,再通过这个代理访问多个外网目标。只有多数目标验证成功,才恢复 Windows 系统代理指向,避免把流量引向一个已经失效的端口。

针对两个客户端同时开启 Proxy Guard 导致的循环争抢,新版也去掉了之前容易被误解为卡死的“静默暂停”逻辑。现在 60 秒内连续纠正 3 次,就会进入“需要用户处理”并弹窗,直接提示用户关闭另一个客户端的系统代理或 Proxy Guard。

告警后软件继续观察网络状态,不会不声不响地罢工。网络稳定 90 秒后,争抢告警会自动解除。

系统代理守卫:验证健康,拒绝盲目硬写 - 截图 2

双 TUN 仲裁:不能靠杀进程解决

双 TUN 是最棘手的部分。

早期版本用了一个很直接的方案:发现非目标 TUN 后,清理对应的 Core 进程或系统服务。真实测试很快就翻车了,龙猫云会被直接终止,甚至后续重新打开都受到影响。

这个方向明显不对。网络守卫只是一个仲裁工具,没有权力替用户结束另一个正常软件,更不能为了维持自己的“独占状态”,直接阻止其他客户端启动。

所以 Helper 服务在 v2 中彻底重做,只保留两类操作:

  • 精准隔离:只有现有证据能够唯一确认网卡归属时,才按精确网卡索引执行可恢复隔离;
  • 无损复原:用户切回对应客户端时,按照隔离记录重新核对网卡身份并恢复。

结束客户端进程、停止客户端服务和旧的通用 TUN 清理能力,都已经从新版 Helper 服务与高权限脚本中移除。

一旦遇到网卡名称重叠、Core 归属不唯一或者未知 TUN,软件只报警,不动系统网络。我宁愿它少自动处理一步,也不能为了修一个问题,又顺手制造一个更大的问题。

目前的能力与适配边界

现在这套机制主要能处理这些场景:

  • 实时识别系统代理、活动 TUN、端口、Core 和实际连通性;
  • 系统代理被改、被关时,先验证目标链路再自动写回;
  • 识别“界面显示系统代理,实际流量已经被另一个 TUN 接管”;
  • 首选客户端退出时临时使用健康代理,恢复后再尝试切回;
  • 持续争抢、双 TUN、未知 TUN、混合链路和连续恢复失败时主动报警;
  • 对能够唯一确认归属的非目标 TUN 执行可恢复隔离;
  • 自动仲裁期间不结束任何客户端 UI、Core 或服务。

目前通过 client_adapters.json 配置了 10 个客户端的识别规则:Clash Verge、Clash Party、FlClash、肥猫云 Lite、龙猫云 Lite、全球云、玖壹 officeXNB、青云梯 Lite、SpeedCat Lite 和 V2Cloud。

这里说的是“识别规则已经适配”,不是保证这些客户端未来每一个版本都不会变化。如果客户端更新后改了进程名、配置字段、监听端口或者虚拟网卡名称,规则仍然需要跟着更新。

运行与使用注意

  • 权限需求:普通系统代理监控与恢复不需要管理员权限;如果要自动仲裁已确认归属的非目标 TUN,需要在界面中安装 Helper v2 服务并放行一次 UAC。
  • 交付与验证:正式版由 GitHub Actions 从 v0.6.8 标签重新构建,内置 27 项自检全部通过,Release 页面附带 SHA256SUMS.txt
  • 范围边界:软件负责把“到底是谁在接管网络”理清楚,不负责账号登录、订阅更新、节点切换或者线路质量判断。

双活动 TUN、睡眠恢复、Wi-Fi 重连和不同客户端版本,仍然需要继续积累真机样本。后面如果又碰到新的组合,我再根据日志补规则。