TL;DR:发配置前,先把它当成密码文件处理。server、UUID、password、token、订阅 URL、Reality privateKey、面板地址都要看一遍。截图也算配置,二维码更危险,因为你肉眼看不出里面有什么。

排障时最容易发生的泄漏,不是把密码明文写在正文里,而是顺手贴了完整 YAML、JSON、订阅链接、Dashboard 截图或二维码。别人确实能帮你看问题,但也可能直接拿到可复用的连接信息。

哪些字段必须处理

类型常见字段建议写法
服务器server, address, host, sniexample-redacted.com203.0.113.x
端口port, server_port保留范围即可,如 443 可保留,专用端口可写 xxxxx
凭据uuid, password, token, pskredacted-uuid / redacted-password
订阅subscribe, url, token, code删除完整查询参数
RealityprivateKey, shortId, publicKeyprivateKey 全删,shortId 至少部分隐藏
面板API 地址、登录路径、cookie不公开,必要时只描述面板类型
本机信息用户名、路径、设备名改成通用路径

privateKey 这个字段要特别小心。它不应该出现在客户端配置、公开日志或截图里。如果你在客户端看到 privateKey,先停下来确认是不是拿错了服务端配置。

URL 比 YAML 更容易漏

订阅 URL 常把凭据放在查询参数里。比如:

https://example.com/sub?token=REDACTED&user=REDACTED

发给别人排障时,不要只把域名打码后保留整串参数。参数本身可能就是访问凭据。更安全的写法是:

https://example.com/sub?...redacted

如果问题和 URL 编码有关,可以保留参数名,删除参数值:

https://example.com/sub?token=<redacted>&type=clash

这样别人还能看出格式,不会拿到有效凭据。

YAML 和 JSON 脱敏示例

错误示例不要照搬。下面只展示脱敏后的结构:

proxies:
  - name: demo-node
    type: vless
    server: example-redacted.com
    port: 443
    uuid: redacted-uuid
    tls: true
    servername: sni-redacted.example
    reality-opts:
      public-key: redacted-public-key
      short-id: redacted-short-id

sing-box JSON 也一样:

{
  "type": "vless",
  "tag": "demo-node",
  "server": "example-redacted.com",
  "server_port": 443,
  "uuid": "redacted-uuid",
  "tls": {
    "enabled": true,
    "server_name": "sni-redacted.example"
  }
}

保留字段名和层级,删除可复用的值。别人排查语法时需要结构,不需要你的真实账号信息。

截图检查经常被忽略

截图里可能有这些东西:

  • 顶部标题栏里的订阅名称。
  • 侧边栏里的完整服务器名称。
  • 日志里的用户目录路径。
  • 二维码或分享按钮生成的完整链接。
  • 浏览器地址栏里的面板 token。
  • Dashboard 请求 URL。

二维码最麻烦。你截图后看不出内容,但别人一扫就能得到完整链接。公开排障时,二维码应该直接裁掉或打满码。

日志可以保留哪些信息

可以保留:

  • 错误类型,如 parse errortimeoutunknown field
  • 客户端版本和 core 版本。
  • 系统版本。
  • 配置结构片段。
  • 发生错误的字段名。

应该删除或替换:

  • 完整订阅 URL。
  • 服务器真实域名和 IP。
  • UUID、password、token。
  • privateKey、cookie、Authorization header。
  • 本机用户名和团队内部路径。

分享前做一次反向测试

脱敏后问自己两个问题:

  1. 陌生人能不能用这段内容直接导入客户端?
  2. 陌生人能不能据此找到你的服务端、面板或账号?

只要答案可能是能,就继续删。排障需要的是错误上下文,不是完整凭据。

最后检查表

  • 完整订阅 URL 已删除或参数值已清空。
  • UUID、password、token、cookie、Authorization header 已替换。
  • Reality privateKey 没有出现在客户端片段里。
  • server、SNI、真实 IP 已脱敏。
  • 二维码、标题栏、地址栏已裁掉或打码。
  • 日志里的本机用户名和内部路径已替换。
  • 脱敏后仍保留客户端版本、core 版本、错误字段和配置层级。

相关阅读