← 返回 穿梭VPN是什么?功能、使用方法与注意事项 首页

sing-box配置文件怎么编辑?从备份到启动验证的完整步骤

更新于 2026-10-20 · transocks.cyou

简答:sing-box 配置文件通常是 JSON。最快做法是:先确认当前内核版本和实际加载路径,备份原文件,使用支持 JSON 的编辑器修改,然后运行 format 和 check,最后重启客户端或 systemd 服务并查看日志。Remote Profile 不要当成本地文件长期手改,先另存为 Local 或修改远程配置源。

定义:sing-box 配置文件是用 JSON 描述日志、DNS、入站、出站和路由等运行参数的文件,不等同于单条节点链接、Clash YAML 或 Base64 节点列表。

30 秒速查:先判断配置类型,再决定编辑方法

如果你只是想尽快改一个字段,先按下面顺序操作:本地 JSON 先备份,再执行 format 和 check;Remote Profile 先确认 URL 更新来源,长期自定义时另存为 Local;Linux systemd 先运行 systemctl cat sing-box,确认服务实际使用的配置目录。sing-box 官方文档明确使用 JSON 配置,并提供 check、format 和 merge 命令,具体写法可核对官方配置文档。

配置类型与编辑方式速查
类型你看到的内容适合怎么改主要风险
Local设备上的完整 JSON复制备份后,用 JSON 编辑器修改语法错误或字段与内核版本不匹配
RemoteURL、远程 Profile 或订阅地址查看内容;要长期自定义则另存为 Local,或修改远程配置源自动更新可能覆盖本地改动
iCloudiOS 或 macOS 的 iCloud Profile在官方图形客户端的编辑器中修改可能误改了另一个本地副本
单条节点链接一行分享链接先导入或转换为完整配置不能直接当作完整 JSON 启动
Clash YAML 或 Base64 列表YAML 文本或编码字符串转换后逐项核对生成的 JSON格式转换可能丢失规则、DNS 或路由设置

官方图形客户端规范把 Profile 分为 Local、iCloud 和 Remote:Local 是本地配置,iCloud 以 iCloud 作为更新来源,Remote 以 URL 作为更新来源,并支持自动更新;官方说明给出的 Remote 默认更新间隔为 60 分钟。编辑入口和按钮名称可能随版本变化,请以当前版本界面为准,可查看官方图形客户端通用说明。

按设备找到配置:入口、常见路径与覆盖风险

不同系统的“配置文件在哪里”并没有一个统一答案,关键是区分命令行运行、官方图形客户端和第三方封装。当前官方客户端列表包括 Android、Apple 平台、Windows 和 Linux 的 sing-box 图形客户端;因此,不能再把 Windows 或 Linux 一概写成“没有官方 GUI”。可先查看官方图形界面客户端列表。

设备与安装方式对照
设备客户端或安装方式常见配置位置编辑入口是否可能被覆盖
Windows官方 sing-box for Desktop 或命令行图形客户端的 Local Profile;命令行以启动参数为准打开配置或 Profile 列表,选择 Local 后进入编辑器;命令行直接打开实际路径Local 通常不会因远程更新覆盖;Remote 可能覆盖
macOS官方 Apple 平台客户端、Homebrew 或命令行Local 或 iCloud Profile;命令行以启动参数为准在 Profile 列表中选择 Local 或 iCloud;iCloud 文件位于 iCloud 的 sing-box 文件夹iCloud 和 Remote 都存在更新来源
Android官方 Android 客户端或 Termux图形客户端 Profile;Termux 以启动命令为准在 Profile 页面选择 Local;Remote 先确认自动更新设置Remote 可能覆盖手工改动
iOS官方 Apple 平台客户端Local 或 iCloud Profile在 Profile 页面选择目标配置,再打开编辑器iCloud 和 Remote 可能从外部来源更新
Linux包管理安装、手动安装或 systemd官方包常见配置文件为 /etc/sing-box/config.json;服务单元通常以 -C /etc/sing-box 加载配置目录先用 systemctl cat sing-box 查看 ExecStart,再编辑实际路径服务启动参数和目录中的多个配置文件会影响实际加载内容

Linux 的包管理资料列出了 /etc/sing-box/config.json 这一配置文件位置,官方服务单元则使用 -D /var/lib/sing-box -C /etc/sing-box run 启动。安装方式不同、手动部署或容器运行时路径可能不同,所以不要只凭教程猜路径,应以本机服务单元为准。可核对官方打包配置和官方 systemd 服务单元。

完整编辑流程:确认版本、备份、格式化、检查

下面流程适用于本地 JSON。菜单名称以当前版本界面为准;如果你编辑的是 Remote Profile,先导出或另存为 Local,否则后续自动更新可能把手工修改覆盖。

  1. 确认 sing-box 内核版本:命令行先执行下面的命令;图形客户端则在 Core 或关于页面查看当前 sing-box 版本。官方图形客户端规范要求 Core 区域显示当前 sing-box 版本。
sing-box version

字段变化较快,尤其是 DNS、路由和协议字段。确认版本后,应回到对应版本的官方配置页面,不要直接复制旧教程中的字段。

  1. 确认实际配置路径:普通命令行要看启动命令里的 -c、-C 和 -D;Linux systemd 先执行:
systemctl cat sing-box

-c 指定配置文件路径,-C 指定配置目录,-D 指定工作目录。官方变更记录显示,-c 支持多次传入,-C 可加载目录中的配置文件;这一能力在 sing-box 1.2-beta10 的变更记录中已有说明,可核对官方变更记录。如果服务单元使用 -C /etc/sing-box,不要只编辑某个不在该目录中的 JSON。

  1. 先备份:复制原文件,例如保存为 config.backup.json。备份文件不要上传到公开仓库、论坛或截图中。订阅 URL、密码、UUID、私钥、服务器地址和访问令牌都应视为敏感信息。
  2. 用 JSON 编辑器打开:键名和字符串使用英文双引号;对象使用大括号,数组使用方括号;同级项目之间用英文逗号分隔;最后一项不要多写逗号。标准 JSON 不要直接写 // 或块注释,也不要让编辑器把英文标点替换成中文标点。
  3. 只改目标字段:log 用于日志,dns 用于 DNS,inbounds 表示入站,outbounds 表示出站,route 表示路由。顶层字段和配置结构可在官方配置引言中核对。
  4. 先格式化:不需要工作目录时可以省略 -D;如果配置依赖相对路径,再填写实际目录,例如当前目录用 -D .。
sing-box format -w -c config.json
sing-box format -w -c config.json -D .
  1. 再检查:把 config.json 换成你实际的配置文件路径。不要把 config_directory 这样的占位符原样复制。
sing-box check -c config.json
sing-box check -c config.json -D .

如果你使用的是 Windows 命令行,可将命令中的 sing-box 换成 sing-box.exe。format 主要整理 JSON 格式,check 用于读取并检查配置;两者都通过后,才进入重启步骤。

结构示意:理解 JSON 层级,不要把它当成节点订阅

下面是一个不含真实服务器、账号和节点信息的结构示意,用来观察括号、数组和 tag 的层级。它不是订阅模板,也不能替代与你的内核版本对应的完整配置;复制后仍应先执行 check。

{
  "log": {
    "level": "info"
  },
  "inbounds": [
    {
      "type": "mixed",
      "tag": "mixed-in",
      "listen": "127.0.0.1",
      "listen_port": 2080
    }
  ],
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct"
    }
  ],
  "route": {
    "final": "direct"
  }
}

这里的 inbounds 是本机接收流量的入口,outbounds 是流量发往何处的出口,route.final 指定没有被其他规则匹配时使用的出口。实际使用代理节点时,还需要根据当前版本文档添加有效的出站、DNS 和路由设置;不要把单条分享链接直接粘贴到 outbounds 数组外面,也不要把 Clash YAML 当作 JSON。

重启、查看日志与实际验证

通过 check 只说明配置能够被检查程序读取,不等于服务已经加载了这份文件。修改后要确认以下五项:配置检查无错误、重启使用了同一路径、日志没有持续报错、当前客户端选中了正确 Profile、实际访问结果符合预期。

Linux systemd 可以执行:

sudo systemctl restart sing-box
sudo journalctl -u sing-box --output cat -e
sudo journalctl -u sing-box --output cat -f

官方包管理文档列出了 systemd 的重启、历史日志和实时日志命令,可核对官方包管理与服务管理说明。如果重启后配置像是没有生效,先再次运行 systemctl cat sing-box,确认 ExecStart 的 -C、-c 和 -D,再对同一份配置运行 check。

Windows、macOS、Android 和 iOS 的图形客户端则要回到 Profile 列表,确认当前选中的是刚编辑的 Local 或 iCloud 配置,再停止并重新启动服务或 TUN。官方图形客户端的 Dashboard 用于查看运行状态、连接和流量等信息;如果配置使用了 Selector 或 URLTest,也要确认当前选择的出站组符合预期,可参考官方图形客户端通用说明。

错误关键词与排查顺序
错误关键词或现象优先检查处理方法
invalid character、unexpected end引号、逗号、括号和中文标点恢复备份,分段修改,再执行 format 和 check
unknown field字段属于其他版本或其他客户端删除未经确认的字段,按当前内核版本文档核对
outbound not found 或找不到出站route.final、规则引用的 tag 与 outbounds 中的 tag逐字检查名称、大小写和连字符是否完全一致
规则不生效规则顺序、匹配条件和 final先保留最少规则测试,再逐条恢复复杂规则
DNS 失败或域名无法解析dns.servers、DNS 规则和引用的 tag先确认基础配置能启动,再单独检查 DNS 链路
TUN 无法启动或权限错误系统授权、客户端权限和平台支持先关闭 TUN 验证基础配置,再根据当前系统提示处理权限
保存后重新出现旧内容正在编辑 Remote Profile改用 Local 副本,或修改远程配置源后再更新

本文是独立使用指南,不代表 sing-box 或相关服务的官方页面;具体客户端界面、订阅内容和账号信息请以对应官方说明为准。

常见问题

sing-box配置文件怎么编辑?

先确认配置是本地 JSON,再备份原文件,用 JSON 编辑器修改;保存后运行 sing-box format 和 sing-box check,确认无错误后重启客户端或服务。

sing-box远程订阅可以直接改吗?

不建议把远程订阅当成本地文件长期手改。Remote Profile 以 URL 为更新来源,可能自动更新并覆盖本地修改;需要长期自定义时,应使用本地副本或修改远程配置源。

sing-box配置保存后无法启动怎么办?

先恢复备份,再检查英文双引号、逗号和括号;随后运行 sing-box check。若语法通过,再检查字段是否属于当前版本、路由引用的 tag 是否存在,以及 DNS 和 TUN 权限。

sing-box的-c、-C、-D分别是什么?

-c 用于指定配置文件,-C 用于指定配置目录,-D 用于指定工作目录。Linux systemd 场景要确认服务实际传入的参数,避免检查了错误文件。

常见问题

sing-box配置文件怎么编辑?

先确认配置是本地 JSON,再备份原文件,用 JSON 编辑器修改;保存后运行 sing-box format 和 sing-box check,确认无错误后重启客户端或服务。

sing-box远程订阅可以直接改吗?

不建议把远程订阅当成本地文件长期手改。Remote Profile 以 URL 为更新来源,可能自动更新并覆盖本地修改;需要长期自定义时,应使用本地副本或修改远程配置源。

sing-box配置保存后无法启动怎么办?

先恢复备份,再检查英文双引号、逗号和括号;随后运行 sing-box check。若语法通过,再检查字段是否属于当前版本、路由引用的 tag 是否存在,以及 DNS 和 TUN 权限。

sing-box的-c、-C、-D分别是什么?

-c 用于指定配置文件,-C 用于指定配置目录,-D 用于指定工作目录。Linux systemd 场景要确认服务实际传入的参数,避免检查了错误文件。

相关阅读

参考资料

  1. sing-box 官方配置引言:JSON结构、check、format与merge
  2. sing-box 官方图形客户端通用说明:Local、iCloud、Remote与Core版本信息
  3. sing-box 官方图形界面客户端列表:Android、Apple、Windows与Linux
  4. sing-box 官方变更记录:-c、-C与多配置加载
  5. sing-box 官方包管理与systemd服务管理说明
  6. sing-box 官方打包配置:/etc/sing-box/config.json
  7. sing-box 官方systemd服务单元:-D与-C启动参数