TL;DR:发配置前,先把它当成密码文件处理。server、UUID、password、token、订阅 URL、Reality privateKey、面板地址都要看一遍。截图也算配置,二维码更危险,因为你肉眼看不出里面有什么。
排障时最容易发生的泄漏,不是把密码明文写在正文里,而是顺手贴了完整 YAML、JSON、订阅链接、Dashboard 截图或二维码。别人确实能帮你看问题,但也可能直接拿到可复用的连接信息。
哪些字段必须处理
| 类型 | 常见字段 | 建议写法 |
|---|---|---|
| 服务器 | server, address, host, sni | example-redacted.com 或 203.0.113.x |
| 端口 | port, server_port | 保留范围即可,如 443 可保留,专用端口可写 xxxxx |
| 凭据 | uuid, password, token, psk | redacted-uuid / redacted-password |
| 订阅 | subscribe, url, token, code | 删除完整查询参数 |
| Reality | privateKey, shortId, publicKey | privateKey 全删,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 error、timeout、unknown field。 - 客户端版本和 core 版本。
- 系统版本。
- 配置结构片段。
- 发生错误的字段名。
应该删除或替换:
- 完整订阅 URL。
- 服务器真实域名和 IP。
- UUID、password、token。
- privateKey、cookie、Authorization header。
- 本机用户名和团队内部路径。
分享前做一次反向测试
脱敏后问自己两个问题:
- 陌生人能不能用这段内容直接导入客户端?
- 陌生人能不能据此找到你的服务端、面板或账号?
只要答案可能是能,就继续删。排障需要的是错误上下文,不是完整凭据。
最后检查表
- 完整订阅 URL 已删除或参数值已清空。
- UUID、password、token、cookie、Authorization header 已替换。
- Reality privateKey 没有出现在客户端片段里。
- server、SNI、真实 IP 已脱敏。
- 二维码、标题栏、地址栏已裁掉或打码。
- 日志里的本机用户名和内部路径已替换。
- 脱敏后仍保留客户端版本、core 版本、错误字段和配置层级。