sing-box Windows 系统代理怎么开?按客户端与配置逐步设置
简答:sing-box Windows 系统代理最快的做法是:先启动正在使用的配置,再在图形客户端开启 System Proxy;纯命令行则优先使用带 HTTP 能力的 mixed 入站,并确认 Windows 代理已经指向实际监听地址。若只有 SOCKS 入站,或 HTTP 入站的自动设置字段未被当前版本确认支持,就到 Windows“设置→网络和 Internet→代理”手动填写地址和端口。
定义:sing-box Windows 系统代理,是让 Windows 的系统代理设置指向 sing-box 本地 HTTP 代理入站;它主要影响读取系统代理的应用,不等同于接管所有 TCP、UDP 或 ICMP 流量。
先判断你正在使用哪一种 Windows 方式
本文是 Candytally(糖果云)的第三方使用指南,不代表 sing-box 或任何相关服务的官方页面。sing-box 官方将 Windows 图形客户端列为 sing-box for Desktop,支持 Windows 10 及以上系统,并可管理本地或远程配置;官方客户端列表也说明,未列出的项目属于第三方图形客户端,界面和功能应以其当前版本为准。查看 sing-box for Desktop 官方说明 查看官方图形客户端列表。
| 你当前看到的界面 | 对应场景 | 应先看哪一步 |
|---|---|---|
| 官方 sing-box for Desktop | 有配置列表、启动状态和图形化网络选项 | 核对活动配置,启动内核,再查找 System Proxy 或系统代理 |
| 第三方 GUI.for.SingBox 等图形界面 | 可以导入配置并启动 sing-box 内核 | 区分“启动内核”和“开启系统代理”两个动作,按钮名称按当前版本核对 |
| 命令提示符或 PowerShell 运行 sing-box.exe | 直接运行命令行内核和 JSON 配置 | 核对入站类型、监听地址、端口和当前 Windows 代理状态 |
| 只有 TUN 开关 | 主要通过虚拟网卡接管流量 | 先确认是否真的需要 TUN,不要把 TUN 开关误当成系统代理开关 |
官方桌面客户端、第三方 GUI 和纯命令行的菜单名称不统一。本文中的“系统代理”“System Proxy”或“Set Proxy”只是识别方向,具体入口不能脱离当前客户端版本和实际配置文件判断。
首屏三步:先让一个浏览器请求经过 sing-box
- 确认运行的是正确配置:在客户端中找到“当前配置”“活动配置”“运行配置”或同义标记。配置列表里存在文件,不代表它就是正在运行的文件。
- 确认有可用的 HTTP 代理入口:
mixed入站同时提供 SOCKS 和 HTTP 服务,官方文档明确列出 Windows 的set_system_proxy,可在启动时设置系统代理并在停止时清理。查看 mixed 入站官方字段说明。 - 启动后再验证:图形客户端先启动内核,再打开系统代理;命令行先启动配置,再到 Windows 代理页面核对地址和端口。打开浏览器访问普通网页,同时观察 sing-box 日志或连接记录。
如果配置只有 SOCKS 入站,不能把 SOCKS 地址直接当成 Windows 的 HTTP 系统代理。若使用单独的 HTTP 入站,本文不把 set_system_proxy 当成所有版本都适用的通用写法;先以当前版本官方文档和配置校验结果为准,无法确认自动设置时,直接使用 Windows 手动代理方式更稳妥。Microsoft 的手动代理设置需要填写代理服务器名称或 IP 地址及端口。查看 Microsoft Windows 代理设置步骤。
官方桌面客户端:启动、核对活动配置、开启系统代理
- 确认最低前置条件:官方 sing-box for Desktop 的 Windows 要求是 Windows 10 及以上,并区分 x64、x86 和 arm64 架构。安装包和具体界面以官方当前发布页面为准,不要把第三方 GUI 的按钮截图当作官方客户端界面。核对官方桌面客户端要求。
- 导入或选择配置:添加本地 JSON 或远程配置后,查看哪一份被标记为活动、默认或运行中。若同时存在“配置文件”和“运行配置”,以启动状态对应的配置为准。
- 先启动内核:点击 Start、启动、运行或同义按钮,等待状态显示为运行中。启动失败时先看日志,不要先修改 Windows 系统代理。
- 开启系统代理:在客户端主界面或托盘菜单中查找 System Proxy、系统代理或同义开关。开启后回到 Windows“设置→网络和 Internet→代理”,确认手动代理状态、服务器地址和端口已经写入。
- 验证浏览器:打开浏览器访问一个普通网页,观察 sing-box 的连接记录。若没有记录,优先检查浏览器是否使用独立代理、Windows 代理是否真的开启,以及客户端运行的是否是刚才修改的配置。
官方页面能核实客户端定位和系统要求,但不同版本的按钮位置仍可能变化。因此,找不到完全相同的“System Proxy”文字时,应按“活动配置→启动内核→检查入站→核对 Windows 代理”的顺序排查,而不是继续猜菜单。
第三方图形界面:分别处理启动内核和系统代理
如果使用 GUI.for.SingBox 一类第三方图形界面,通常要完成两个动作:第一步启动 sing-box 内核,第二步单独打开系统代理。第三方界面的菜单名称、托盘入口和配置状态显示方式不能按某一篇教程截图统一判断。
- 在配置列表中确认选中的文件就是准备运行的文件。
- 点击启动内核,等待运行状态出现,并查看日志是否有 JSON 解析失败、监听失败或端口占用。
- 再查找 System Proxy、Set Proxy、系统代理或托盘中的同义开关。
- 开启后到 Windows 代理页面核对服务器和端口。
- 用浏览器发起请求,同时观察连接记录;没有记录时先不要同时修改节点、规则、DNS 和 TUN。
如果第三方界面能启动内核,却没有系统代理开关,可以使用 Windows 手动代理。配置文件修改前先备份,修改后用官方的 sing-box check 检查配置;该命令和 JSON 配置结构见官方配置文档。查看官方配置结构与检查命令。
纯命令行:mixed、HTTP 和 SOCKS 要分开处理
命令行方式的关键不是运行了 sing-box.exe,而是配置里是否存在正在监听的 HTTP 代理入口。下面只说明判断关系,不填入无法核实的地址或端口。
| 入站类型 | Windows 系统代理处理方式 | set_system_proxy 处理 | 排查重点 |
|---|---|---|---|
mixed | 可同时提供 SOCKS 和 HTTP,适合配合 Windows 系统代理 | 官方文档明确列出 Windows 支持,可放在该 mixed 入站对象内 | 确认字段位置、监听成功和进程运行账户 |
http | 可作为 HTTP 代理入口,但自动改写系统代理的行为要按当前版本核对 | 不要直接照抄 mixed 的结论;未确认时使用 Windows 手动代理 | 确认实际监听地址、端口和当前版本文档 |
socks | 不能直接作为 Windows HTTP 系统代理填写 | 不要把该字段随意放进 SOCKS 入站 | 改用 mixed/HTTP 入口,或手动设置可用的 HTTP 代理 |
- 复制一份原配置作为回滚备份。
- 用
sing-box check检查 JSON 结构。 - 启动指定配置,查看日志是否出现入站监听成功。
- 若使用 mixed 入站并启用
set_system_proxy: true,确认该字段位于 mixed 入站对象内,而不是顶层、outbound 或 SOCKS 入站。 - 如果系统代理没有变化,到 Windows 代理页面手动核对或填写实际监听地址和端口。
如果 sing-box 作为 Windows 服务运行,服务账户可能不是当前登录桌面用户。此时可以先在当前用户的命令提示符中直接启动做对照;直接启动有效、服务启动无效时,再核对服务账户、权限和客户端实现,不要反复修改同一份 JSON。
系统代理和 TUN 怎么选?先单独验证
| 方式 | 适合场景 | 可能不覆盖的流量 | 建议 |
|---|---|---|---|
| Windows 系统代理 | 浏览器和会读取 Windows 代理设置的常见桌面应用 | 不读取系统代理的程序,以及部分 UDP、ICMP 流量 | 排查网页访问时优先使用,容易验证和回滚 |
| TUN | 需要处理更多未主动读取系统代理的应用流量 | 实际效果取决于路由、DNS、权限和应用行为 | 系统代理确认无误后,仍有应用绕过时再单独测试 |
| Windows 手动代理 | 客户端没有自动开关,或需要临时指定 HTTP 地址和端口 | 仍主要影响读取系统代理的应用 | 记录原有设置,测试结束后关闭或恢复 |
sing-box 官方将系统代理、基于防火墙的重定向和虚拟接口区分为不同接管方式,并说明系统代理本质上是普通 HTTP 代理,主要存在应用支持范围限制;TUN 则属于虚拟接口方式。实际是否覆盖目标程序,仍取决于配置、路由、DNS、权限和应用自身行为。查看官方客户端接管方式说明。
排查时建议一次只改变一个开关:先关闭 TUN,仅测试系统代理;或者关闭系统代理,仅测试 TUN。两种方式同时开启后出现回环、无网络或规则异常,应先拆开验证,而不是继续增加配置项。
按现象排查:打不开、无请求、开启后无网络
系统代理开关打不开或立即关闭
- 确认内核已经运行,而不是只有配置文件被导入。
- 确认 mixed 或 HTTP 入站的监听地址和端口没有被占用。
- 确认
set_system_proxy只按当前版本文档放在受支持的入站对象中;对 mixed 入站优先按官方字段说明核对。 - 若通过 Windows 服务运行,改用当前登录用户直接启动做对照。
系统代理显示开启,但浏览器没有连接记录
- 打开 Windows“设置→网络和 Internet→代理”,确认服务器和端口不是旧值或空值。
- 检查浏览器是否设置了独立代理、PAC 或直连模式。
- 确认修改的配置文件就是活动配置,而不是列表中的另一份文件。
- 先访问普通网页并查看日志,不要一开始同时改 DNS、规则、节点和 TUN。
开启后浏览器完全无法上网
- 先关闭系统代理,判断 Windows 直连是否恢复。
- 检查本地入站是否监听成功,出站是否存在连接错误。
- 暂时关闭 TUN 和其他可能改写系统代理或路由的程序。
- 若关闭客户端后仍无法直连,回到 Windows 代理页面关闭手动代理;Microsoft 也将关闭手动代理列为 Windows 连接问题的检查项。查看 Microsoft 连接问题排查说明。
关闭 sing-box 后仍然走代理
- 到 Windows“设置→网络和 Internet→代理”中关闭手动代理并清除旧地址。
- 检查其他代理客户端、浏览器独立代理、PAC 脚本或 VPN 是否仍在运行。
- 如果使用了自动设置字段,是否在停止时清理取决于当前版本和客户端实现;不要只等待进程退出。
验证与回滚清单
- 配置:修改前复制原文件,修改后运行官方文档中的
sing-box check。 - 进程:确认客户端状态为运行中,日志没有配置解析、端口冲突或入站监听错误。
- 系统:确认 Windows 代理开关、服务器地址和端口与当前入站一致。
- 应用:浏览器访问普通网页,并观察 sing-box 是否出现连接记录。
- 范围:再测试一个可能不读取系统代理的程序;它没有记录不一定代表 sing-box 失效,可能需要 TUN 或应用内代理。
- 回滚:停止内核、关闭系统代理、恢复原配置;如果仍无法直连,清除 Windows 手动代理并确认没有其他程序继续接管。
本文资料核验时间为 2026 年 11 月 4 日。具体安装包、菜单名称和字段行为仍应以你当前使用的 sing-box 版本及客户端页面为准;无法从当前资料确认的版本差异,不作统一结论。
常见问题
sing-box Windows 系统代理必须使用 mixed 入站吗?
不一定,但 mixed 是本文能够直接按官方文档核对的方案:它同时提供 SOCKS 和 HTTP 服务,并明确列出 Windows 的 set_system_proxy。单独使用 HTTP 入站时,不要直接照抄 mixed 的自动设置结论;若当前版本文档未明确支持,就在 Windows 中手动填写 HTTP 代理地址和端口。
为什么 set_system_proxy: true 没有打开 Windows 系统代理?
先确认字段位于 mixed 入站对象内,配置确实正在运行,且入站监听成功。然后检查进程是否以当前登录用户运行;如果通过 Windows 服务账户启动,服务可能无法修改当前桌面用户的代理设置。还要排查端口占用、客户端实现和当前版本差异。
只有 SOCKS 入站,能直接开启 Windows 系统代理吗?
不能把 SOCKS 入站直接当作 Windows HTTP 系统代理填写。应使用提供 HTTP 能力的 mixed 入站,或确认当前版本支持的 HTTP 入站;也可以在 Windows 代理设置中填写一个实际可用的 HTTP 代理地址和端口。
系统代理和 TUN 可以同时开启吗?
是否适合同时开启取决于客户端、配置、路由、DNS 和应用行为。排查时建议先只开启一种方式,确认浏览器有连接记录后,再决定是否组合使用;出现无网络、回环或规则异常时,先分别关闭测试。
怎么判断 sing-box 使用的是哪一份配置?
不要只看配置列表里是否存在文件,同时核对当前、活动或运行配置标记。启动后查看日志中的入站、出站和监听信息,再用浏览器请求确认是否出现连接记录。修改前复制备份,避免改到未实际运行的文件。
关闭 sing-box 后 Windows 仍然无法直连怎么办?
到 Windows“设置→网络和 Internet→代理”中关闭手动代理并清除服务器地址和端口,再检查其他代理客户端、浏览器独立代理、PAC 脚本或 VPN。自动清理是否生效取决于当前版本和客户端实现,不能只等待 sing-box 进程退出。