sing-box Windows 使用教程:安装、导入配置与连接排查
简答:如果你只是想在 Windows 上使用 sing-box,优先选择官方 sing-box for Desktop;如果需要脚本化运行或查看详细日志,再使用命令行核心。先确认系统为 Windows 10+、架构匹配,并确认手上的内容是 sing-box JSON、远程订阅地址,还是其他格式,不能直接混用。本文只讲 Windows 安装、配置导入、启动和基础连接排查,不覆盖其他客户端或订阅转换服务。
定义:sing-box Windows 使用教程,是指在 Windows 系统上选择合适的 sing-box 客户端,导入兼容的 JSON 配置并验证代理、TUN 和 DNS 是否按预期工作。
先选对版本:普通用户用 Desktop,命令行用户用核心
sing-box 项目将 Windows 图形客户端列为 sing-box for Desktop,可管理本地或远程配置,并提供包括 TUN 透明代理在内的平台功能;官方文档列出的 Windows 要求是 Windows 10+,支持 x64、x86 和 arm64。官方 Desktop 说明
| 你的目的 | 建议选择 | 适用边界 |
|---|---|---|
| 首次使用、希望有图形界面 | sing-box for Desktop | 适合添加本地或远程配置、启动服务和使用 TUN;具体按钮名称以当前版本界面为准 |
| 自动化运行、脚本调用、需要命令行日志 | sing-box CLI 核心 | 需要自行准备 JSON 配置,并在终端中执行校验与启动命令 |
| 拿到的是 Clash YAML 或单节点链接 | 先确认来源是否提供 sing-box 格式 | 不能把 YAML、单节点链接或其他客户端订阅直接当作 sing-box JSON 使用 |
先试这一步:打开配置文件,用文本编辑器查看开头是否为 JSON 对象,例如以 { 开始。若文件是 YAML 缩进格式、纯链接或一长串订阅地址,先不要导入为本地 JSON。
停止条件:如果无法确认配置格式、来源或订阅凭据用途,不要把完整链接发到公开群组或第三方转换页面。浏览器能打开订阅地址,也不等于客户端能解析该内容。
Windows 安装前:确认系统、架构和下载文件
- 在 Windows 中打开“设置—系统—系统信息”,查看系统类型,区分 x64、x86 或 arm64。
- 只从 sing-box 项目文档指向的发布渠道选择 Windows 文件;不要仅凭文件名判断来源。官方 Desktop 页面将下载入口指向 GitHub Releases,核心发布页会分别列出 Windows 架构文件。sing-box 核心发布页
- 图形客户端与 CLI ZIP 不是同一种使用方式。图形客户端用于界面管理;CLI ZIP 解压后通常需要在终端中运行可执行文件。
- 下载后先保留压缩包或安装包,不要覆盖已有配置目录。若 Windows SmartScreen 或杀毒软件提示风险,先核对下载来源、文件名和校验信息,不要通过关闭安全软件来强行运行。
版本号和安装包名称会变化,本文不固定某个版本。以下载页面当前显示的文件为准;如果发布页没有与你系统架构对应的文件,应停止安装并重新核对系统架构,而不是随意下载其他架构。
准备配置:四种内容不要混为一谈
| 你手上的内容 | 通常表现 | 下一步 |
|---|---|---|
| sing-box JSON | 文本内容以 JSON 对象为主,包含 outbounds、route、dns 等字段 | 可尝试用 Desktop 导入本地文件,或用 CLI 校验 |
| 远程配置地址 | 以 http 或 https 开头的地址,访问后返回配置内容 | 在 Desktop 中添加远程配置;失败时检查地址、权限、证书和返回格式 |
| Clash YAML | 常见字段采用 YAML 缩进,不是 JSON | 不能直接当作 sing-box JSON;需要配置提供方给出兼容格式 |
| 单节点链接 | 通常是一行协议链接或编码字符串 | 不能默认当作完整 sing-box 配置;需要转换为 sing-box 可识别的完整配置 |
sing-box 官方配置文档明确说明其配置文件使用 JSON,并列出了 log、dns、inbounds、outbounds、route 等顶层结构。配置文件结构说明
安全提示:订阅地址通常包含访问凭据。导入前可以复制一份到本地备份,但不要把完整地址粘贴到截图、工单或公开代码仓库中。
图形界面导入和启动:先配置,后启用代理
- 启动 sing-box for Desktop,找到用于添加或管理配置的入口。不同版本的界面文字可能不同,优先寻找“本地配置”“远程配置”或同义选项。
- 本地 JSON:选择配置文件并保存;远程配置:粘贴配置地址并保存。保存成功只代表客户端记录了配置,不代表配置已经通过校验或代理已经启动。
- 选中刚添加的配置,先观察是否出现解析、下载或配置错误。如果界面提供日志或错误详情,优先记录第一条明确错误。
- 确认配置后再启动服务。若只需要浏览器等支持系统代理的程序,可先使用系统代理模式;若需要接管不读取系统代理的应用,再考虑 TUN。
- 启动后打开一个普通网页进行验证,同时观察客户端状态和日志。网页可访问只能说明当前测试成功,不能证明所有应用、DNS 请求或 UDP 流量都经过同一路径。
验证边界:“配置已添加”不等于“核心已运行”;“核心已运行”不等于“代理出站成功”;“浏览器能打开网页”也不等于 TUN、DNS 接管和其他应用都正常。
命令行方式:解压、check 校验、run 启动
命令行方式适合希望明确看到错误位置的用户。下面以 PowerShell 为例,路径和文件名需要替换成你实际解压后的目录;这是结构示例,不保证可直接复制运行。
- 将 CLI ZIP 解压到本地目录,例如
C:\Apps\sing-box,并把配置文件放入同一目录下的config.json。 - 在该目录空白处右键打开 PowerShell,先确认程序可执行文件能运行:
.\sing-box.exe version。 - 校验配置:
.\sing-box.exe check -c .\config.json。官方配置文档提供了check命令用于配置检查;若此处失败,不要继续启动,先修复 JSON 语法、字段版本或配置内容。官方配置检查说明 - 校验通过后再启动:
.\sing-box.exe run -c .\config.json。保持窗口打开,观察启动日志和连接错误。 - 停止时回到该窗口按
Ctrl+C。修改配置前先复制原文件,逐项改动后重新执行check。
如果命令提示找不到文件,先检查当前目录和文件名;如果提示配置错误,优先看错误指向的字段;如果启动后立即退出,再检查端口、权限、依赖文件和配置中引用的路径。
系统代理与 TUN:不要用一个现象判断全部流量
系统代理通常只影响会读取 Windows 代理设置的应用;TUN 则是另一种接管方式,可能涉及虚拟网卡、管理员权限、路由和 DNS。sing-box for Desktop 官方页面将 TUN 透明代理列为平台功能,但具体开关、权限提示和运行状态可能随客户端版本变化。官方 Desktop 功能说明
- 先不开 TUN,使用系统代理或客户端提供的基础代理开关测试配置是否能建立出站连接。
- 如果基础代理正常,再尝试启用 TUN。遇到权限提示时,按 Windows 的管理员授权流程操作;不要为了绕过权限而修改系统安全策略。
- 启用 TUN 后,观察是否出现虚拟网卡、客户端状态变化或日志中的启动错误。
- 用浏览器和一个明确不读取系统代理的应用分别测试,记录两者结果,不要只凭浏览器判断 TUN 已经接管。
- 若 TUN 启动失败,先关闭 TUN,恢复到系统代理或直连模式,再排查权限、虚拟网卡冲突和端口占用。
回滚方法:关闭 TUN,停止 sing-box,恢复 Windows 原有代理设置;如果修改过配置文件,使用备份覆盖当前文件,再重新执行配置检查。
按现象排查:从配置阶段逐层定位
| 现象 | 优先检查 | 可观察结果 |
|---|---|---|
| 配置下载失败 | 地址是否完整、网络是否可访问、返回内容是否为 sing-box JSON、是否需要授权 | 浏览器能访问不代表客户端能解析;查看客户端错误或保存返回内容后检查格式 |
| 提示 decode config 或 JSON 错误 | 配置是否真的是 JSON、是否被网页错误页替代、字段是否属于当前核心版本 | CLI 的 check 命令能否给出明确错误位置 |
| 启动失败 | 配置校验、端口占用、路径引用、权限和依赖文件 | 启动日志是否在退出前给出具体字段或端口 |
| TUN 无法启动 | 管理员权限、虚拟网卡冲突、客户端权限提示和系统网络状态 | 关闭 TUN 后系统代理是否仍能正常工作 |
| 节点或服务器超时 | 服务器地址、端口、凭据、TLS 参数、DNS 解析和本地网络 | 同一配置是否每次都失败;日志是解析失败、握手失败还是连接超时 |
| 客户端显示运行但网页打不开 | 出站选择、系统代理是否生效、浏览器代理设置、DNS 和规则 | 分别测试系统代理应用、TUN 应用和直连,避免把“进程运行”当作“代理出站成功” |
排查时建议只改一个变量:先恢复最小配置,确认核心能启动,再增加 DNS、规则、TUN 或远程规则集。日志字段只能作为优先检查线索,不能单凭一条 timeout 判断故障一定来自某个节点或某个网络。
常见问题 FAQ
sing-box Windows 应该选图形客户端还是命令行?
普通 Windows 用户优先选 sing-box for Desktop,因为它用于管理本地或远程配置并提供平台功能。需要脚本化启动、批量管理或查看终端日志时,再选择 CLI 核心。两者使用的配置仍应符合 sing-box JSON 结构。
Clash YAML 能直接导入 sing-box 吗?
不能默认直接导入。sing-box 官方配置格式是 JSON;Clash YAML、单节点链接和远程订阅地址属于不同输入形态。应先让配置提供方提供 sing-box 兼容配置,或使用你能核验隐私风险和输出格式的转换方式。
远程配置能在浏览器打开,为什么客户端仍然导入失败?
浏览器能访问只证明 HTTP 请求得到响应,不能证明返回内容是合法 sing-box JSON,也不能证明客户端能处理认证、重定向、证书或压缩内容。保存返回内容后,用文本编辑器查看格式,并用 CLI 的 check 命令验证。
sing-box 已启动,为什么某些软件仍然直连?
核心进程运行不等于所有应用流量都被接管。先确认系统代理是否开启,再判断该软件是否读取系统代理;如果需要接管这类应用,再单独测试 TUN,并记录 TUN 启动状态、DNS 状态和应用访问结果。
Windows 上 TUN 失败,应该先改 DNS 还是先改权限?
先确认客户端是否要求管理员权限、是否出现虚拟网卡或权限错误,再检查配置和网络冲突。不要一开始同时修改 DNS、规则和 TUN;关闭 TUN 后先验证基础系统代理,能缩小故障范围。
常见问题
sing-box Windows 应该选图形客户端还是命令行?
普通用户优先使用 sing-box for Desktop;需要脚本化运行、批量管理或终端日志时使用 CLI 核心。
Clash YAML 能直接导入 sing-box 吗?
不能默认直接导入。sing-box 配置使用 JSON,YAML、单节点链接和远程地址需要分别确认格式。
远程配置能在浏览器打开,为什么客户端仍然导入失败?
浏览器能访问只代表请求有响应,不代表返回内容是合法 sing-box JSON。应检查返回格式,并用 check 命令验证。
sing-box 已启动,为什么某些软件仍然直连?
核心运行不等于所有应用都被接管。先检查系统代理,再单独验证 TUN 是否启动和生效。
Windows 上 TUN 失败,应该先改 DNS 还是先改权限?
先检查管理员权限、虚拟网卡和客户端错误,再检查 DNS;不要同时修改多个配置项。
相关阅读
- 继续看 sing-box 导入订阅配置失败的排查方法
- 对比了解按日志、DNS 和节点定位连接问题
- 需要进一步排查 DNS 与 TUN 时参考这篇设置指南
- 如果你使用的是 Clash Verge Rev,可查看对应导入步骤