Clash Verge 报错 sysproxy exe run failed:Windows 系统代理排查方法
简答:这个报错通常表示客户端写入 Windows 系统代理失败,不等于节点或订阅失效。先在 Windows 代理页手动关闭残留代理,再检查进程、服务模式、运行库和错误码;旧构建与新构建的组件形态可能不同。
定义:“sysproxy exe run failed”是客户端调用 Windows 系统代理读写组件失败时出现的提示,主要影响系统代理开关,不足以单独证明节点、订阅或线路故障。
先做 30 秒自救:确认是不是系统代理残留
这个报错首先指向系统代理开关调用失败,不等于节点或订阅已经失效。若现在网页无法打开,先打开 Windows“设置”→“网络和 Internet”→“代理”,关闭“使用代理服务器”;Windows 10 和 Windows 11 都可从代理设置页管理自动检测、脚本和手动代理。Microsoft:Use a proxy server in Windows
- 完全退出客户端;如果退出时报“无法安全停止内核”,先不要反复点击系统代理。
- 在 Windows 代理页面手动关闭手动代理,保存当前状态。
- 重新打开客户端,只测试一次系统代理开关。
如果手动关闭后可以恢复普通联网,而客户端开关仍报错,优先排查 sysproxy、服务模式、权限和依赖组件;如果 Windows 代理已开启但浏览器仍无法联网,则还要检查本机监听端口、浏览器代理路径、内核和 DNS,不能只修 sysproxy。
本文与 Clash Verge Rev 项目及开发者无隶属关系,内容基于公开项目页面和 Microsoft 文档整理。目标词中的“Clash Verge”可能指不同发行版;本文主要按 Clash Verge Rev 的公开资料说明,若你的界面或版本名称不同,应以实际发行版说明为准。
| 现象 | 优先判断 | 第一动作 | 正常标准 |
|---|---|---|---|
| 点击客户端系统代理时报 sysproxy exe run failed | 系统代理写入链路失败 | 手动关闭 Windows 代理并记录错误码 | Windows 代理值能按预期改变,客户端不再弹错 |
| 系统代理已开启但浏览器打不开 | 端口、内核、规则或 DNS 可能异常 | 检查监听端口和浏览器代理地址 | 浏览器使用的协议、地址、端口与客户端一致 |
| 退出客户端后仍无法联网 | Windows 仍保留手动代理 | 检查 WinINet 用户代理值 | 关闭 ProxyEnable 后恢复直连 |
| 只在重启或关机时弹窗 | 退出阶段的服务或组件调用异常 | 记录完整错误码和触发时间 | 重启后不再弹出相同提示 |
错误码速查:先按第一动作处理
| 错误码 | 可核对含义 | 第一动作 | 结论边界 |
|---|---|---|---|
0xc0000022 | STATUS_ACCESS_DENIED,访问被拒绝 | 检查安全软件隔离、文件权限和服务权限 | 不等于一定由 Windows 更新造成 |
0x8007007F | 错误码 127,对应 ERROR_PROC_NOT_FOUND,找不到指定过程 | 检查运行库、组件隔离、服务和残留进程 | 不能仅凭此码确认是 Visual C++ 缺失 |
0xc0000142 | STATUS_DLL_INIT_FAILED,DLL 初始化失败 | 检查依赖组件、启动环境和服务退出阶段 | 不要误写成 0xc00000142 |
0xc0000022 和 0xc0000142 的含义可在 Microsoft 的 NTSTATUS 表中核对;0x8007007F 的低位错误码 127 可在 Microsoft Win32 错误码表中核对。Microsoft:NTSTATUS Values Microsoft:System Error Codes (0-499)
公开案例只能作为排查线索。例如 Issue #2410 记录了 Windows 11 23H2、Verge 2.0.2、0xc0000022 和 sysproxy exe run failed 同时出现;Issue #4045 记录了 Windows 24H2、Verge v2.3.1 以及无法关闭系统代理的情况。这些页面分别对应单个报告,不能推导所有 Windows 版本或所有客户端版本都会复现。GitHub Issue #2410:软件无法启用和关闭系统设置里的代理开关 GitHub Issue #4045:系统代理无法关闭,显示 sysproxy exe run failed
第一步:核对发行版、客户端版本和组件形态
先在客户端的“设置”或“关于”页面记录完整版本,再按 Win+R 输入 winver,记录 Windows 版本和内部版本号。不要只写“最新版”,因为公开资料中的问题涉及不同构建和不同系统版本。
如果你使用的是 Clash Verge Rev,可在项目 Releases 页面查看当前发布列表;截至 2026-10-24,页面将 Clash Verge Rev v2.5.8 标为 Latest。是否升级应以发布页说明、当前配置备份和实际兼容性为准。Clash Verge Rev Releases
还要查看安装目录是否存在 sysproxy.exe。sysproxy-rs 项目自述为“用于设置和读取系统代理的 Rust 库”,支持 Windows、macOS 和 Linux。公开 Discussion #8154 的回复还提到,较新的构建可能通过 sysproxy-rs 处理系统代理;因此,找不到旧文件时不能直接认定为安装损坏,也不要从陌生网站下载同名文件。sysproxy-rs 项目仓库 GitHub Discussion #8154:Windows 系统代理写入失败 0x8007007F
- 目录中存在 sysproxy.exe:检查文件是否仍在、是否被安全软件隔离,以及双击运行时是否出现相同错误码。
- 目录中没有 sysproxy.exe:不要自行补文件,先核对当前发行版和 Releases 页面说明。
- 使用 AutoBuild:把构建类型记录下来;公开 Discussion 仅说明提问者尚未测试 AutoBuild,不能把 AutoBuild 视为必然修复方案。
第二步:清理残留进程,再检查服务模式
先关闭客户端中的系统代理、TUN 和正在运行的内核;如果开关本身报错,直接退出托盘程序。打开任务管理器→“详细信息”,只结束能够确认属于该客户端的 clash-verge、verge-mihomo 或相关残留进程,不要按名称结束陌生进程。
重新启动后,进入客户端设置中与“服务模式”有关的页面。若页面提供“卸载服务模式”,先卸载,再重启 Windows;重启后返回同一页面重新安装。不同构建的菜单名称可能不同,不要把服务名、注册表项或安装路径写死。成功标准是:设置页显示服务已安装或运行,启动内核时不再出现无法安全停止或服务连接失败,系统代理开关可以改变状态。
如果仍报错,记录服务模式当前状态、客户端构建类型和 Debug 日志。Issue #4918 记录过 Windows 10 IoT LTSC 2021 环境在关机或重启时出现 sysproxy 弹窗,并伴随服务通信相关日志;该案例只能说明退出阶段也可能触发问题,不代表所有系统都需要相同处理。GitHub Issue #4918:关机或重启时系统弹窗 sysproxy 报错
第三步:分别检查 WinINet 用户代理和 WinHTTP 代理
Clash Verge 控制的系统代理通常需要先核对 Windows 用户代理值。请在普通命令提示符中运行以下命令,目的只是读取当前用户的代理配置:
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer
判定标准:ProxyEnable 为 0x0 表示用户代理关闭,为 0x1 表示开启;ProxyServer 应与客户端当前显示的地址和端口一致。若客户端已退出但仍为 0x1,可回到 Windows 代理页面手动关闭,不要先删除注册表项。
netsh winhttp show proxy 检查的是WinHTTP代理,不是上面那组 WinINet 用户代理值。Microsoft 文档说明,netsh winhttp用于配置和查看 Windows HTTP 代理;两者结果不同并不自动表示 sysproxy 失败。Microsoft:Netsh.exe commands
如果确实要重置 WinHTTP,请在管理员命令提示符中确认组织网络或办公软件不依赖该配置后再运行:
netsh winhttp reset proxy
重置后用 netsh winhttp show proxy复查,正常应显示直连或 DIRECT。该命令不会替代对 WinINet 用户代理的检查。
第四步:处理运行库、安全软件和文件隔离
如果错误码为 0x8007007F,或旧版目录中的 sysproxy.exe无法启动,可以把 Microsoft Visual C++ Redistributable 列为排查项,但这不是仅凭错误码得出的官方确认原因。Microsoft 的运行库页面说明,修复具体应用时应参考应用厂商要求;页面提供受支持的运行库下载入口。Microsoft:Latest Supported Visual C++ Redistributable Downloads
- 打开 Microsoft 官方页面,优先核对应用需要的架构;64 位 Windows 不等于所有应用都使用 x64。
- 安装或修复运行库后重启 Windows,再启动客户端。
- 检查 Windows 安全中心“保护历史记录”和第三方安全软件隔离区,确认没有删除或阻止
sysproxy.exe、客户端主程序或内核文件。 - 如果临时关闭安全软件后才恢复,应立即恢复防护,并按安全软件文档设置合规例外,不要长期裸奔。
判定标准是:运行库安装程序成功完成,没有新的隔离记录,客户端组件仍存在,系统代理开关可以改变状态。若仍失败,保留错误码和日志,不要连续重复安装。
第五步:按 Windows 版本和临时方案做对照
| 环境记录 | 公开资料能证明什么 | 建议动作 | 不能推断什么 |
|---|---|---|---|
| Windows 10 | Issue #4918 报告过 Windows 10 IoT LTSC 2021 的关机阶段 sysproxy 弹窗 | 重点观察服务退出、重启阶段和残留进程 | 不能推断所有 Windows 10 都有同一问题 |
| Windows 11 23H2 | Issue #2410 报告过手动代理正常、客户端开关失败 | 先用 Windows 代理页手动切换,再查权限和组件 | 不能把 2.0.2 案例当作当前版本结论 |
| Windows 11 24H2 | Issue #4045 报告过更新后无法关闭代理 | 记录版本、客户端构建和错误日志,核对 Releases | 单个 Issue 不足以证明更新是普遍原因 |
| 未确认版本 | 无法进行可靠版本对照 | 先运行 winver并记录内部版本号 | 不要直接归因于 Windows 更新 |
如果只是临时恢复联网,可使用 Windows 代理页手动关闭代理;如果客户端支持 TUN,也可以在保持同一配置和同一节点的前提下,关闭系统代理后单独开启 TUN 做对照。TUN 能工作而系统代理仍失败,只能说明故障更集中在系统代理写入链路,不能证明线路、订阅或 DNS 一定正常。
修复后的验收清单
- 用户代理值:用
reg query确认ProxyEnable与预期一致,ProxyServer地址和端口没有残留。 - WinHTTP 值:用
netsh winhttp show proxy单独确认 WinHTTP 状态,不把它当作 WinINet 结果。 - 端口监听:把客户端当前显示的端口替换到下方命令中,运行
netstat -ano | findstr ":端口号";若看到LISTENING,记录行末 PID,再在任务管理器“详细信息”中核对该 PID 是否属于客户端内核。没有监听或 PID 不匹配,说明端口链路仍未正常。 - 开关验证:客户端关闭系统代理后,Windows 代理页的手动代理也应关闭;重新开启后,两个位置的状态应一致。
- 退出验证:退出客户端后,不应继续保留无法访问的本地代理地址;重启或关机一次,不再出现 sysproxy 弹窗。
- 日志留存:若仍失败,提交客户端完整版本、Windows 版本和内部版本号、错误码、是否使用服务模式、是否存在
sysproxy.exe、触发动作及 Debug 日志。
资料边界与后续处理
公开资料目前能够确认的是:sysproxy-rs用于设置和读取系统代理;GitHub Issue 与 Discussion 记录了若干特定版本、系统和错误码组合;Microsoft 文档分别说明了 Windows 代理、WinHTTP、运行库和错误码。它们不能替代对你本机日志、安装来源、服务状态和安全软件记录的核验。
如果升级客户端,先备份配置,再从项目 Releases 页面核对 Stable、AutoBuild 或其他构建的说明。不要因为某个单独案例中出现了 v2.3.1、v2.5.7 或某个 Windows 版本,就直接认定自己的故障原因相同。
常见问题
sysproxy exe run failed 是不是节点或订阅失效?
不一定。它首先表示客户端写入或读取 Windows 系统代理失败。先在 Windows 代理页手动切换,再用 reg query 检查 ProxyEnable 和 ProxyServer;如果手动代理正常,优先排查组件、服务、权限和安全软件。
安装目录没有 sysproxy.exe,是不是文件丢失?
不能直接这样判断。sysproxy-rs 是用于设置和读取系统代理的 Rust 库,不同构建的组件形态可能不同。先核对客户端发行版和 Releases 页面,不要从陌生网站下载同名文件。
0x8007007F 是否一定要安装 Visual C++ 运行库?
不是。Microsoft 将错误码 127 定义为 ERROR_PROC_NOT_FOUND,即找不到指定过程。运行库缺失、组件被安全软件隔离、服务或内核状态异常都可能进入排查范围,修复后仍要重新验证。
0xc0000022 应该怎么处理?
Microsoft 将其列为 STATUS_ACCESS_DENIED。先检查相关文件权限、Windows 安全中心保护历史记录、第三方安全软件隔离区和服务模式;不要仅凭这个错误码认定是 Windows 更新造成。
0xc0000142 和 0xc00000142 有什么区别?
本文采用 Microsoft NTSTATUS 表中的正确写法 0xc0000142,对应 STATUS_DLL_INIT_FAILED。0xc00000142 多了一位数字,不应作为该错误码的检索或排查写法。
Windows 代理页手动关闭后,客户端还需要修复吗?
如果只是临时恢复直连,手动关闭可以绕过客户端开关故障;但它不会修复客户端组件、服务模式或内核问题。后续仍应按版本、进程、代理值、运行库和安全软件顺序排查。
相关阅读
参考资料
- GitHub Issue #2410:软件无法启用和关闭系统设置里的代理开关
- GitHub Issue #4045:系统代理无法关闭,显示 sysproxy exe run failed
- GitHub Discussion #8154:Windows 系统代理写入失败 0x8007007F
- GitHub Issue #4918:关机或重启时系统弹窗 sysproxy 报错
- sysproxy-rs 项目仓库
- Clash Verge Rev Releases
- Clash Verge Rev GitHub 项目主页
- Microsoft:Use a proxy server in Windows
- Microsoft:NTSTATUS Values
- Microsoft:System Error Codes (0-499)
- Microsoft:Netsh.exe commands