订阅链接里可能有什么?
不同服务商返回的格式并不相同。常见内容包括 Shadowsocks 密码、VMess/VLESS UUID、服务器域名、端口、传输参数和节点名称。有些链接本身带有长期有效的访问令牌;即使正文经过 Base64 编码,也只是编码而不是加密。
这意味着两件事:第一,别人拿到链接后可能重复下载配置;第二,任何接收该链接的服务器都可能记录它,包括反向代理、日志系统、错误追踪服务和分析平台。
“纯前端转换”为什么仍要核实?
纯前端工具理论上可以在浏览器内完成解析,不把输入发送到服务器。但页面本身仍可能加载第三方脚本、统计服务或之后更新的新代码。域名所有者、CDN 配置和构建产物也可能变化。因此,不要只依据页面上的一句“本地处理”做判断。
需要在线转换时,至少检查以下事项:
- 代码是否开源,部署页面能否对应到可审查的版本;
- 页面是否加载第三方分析、错误跟踪或广告脚本;
- 浏览器网络面板中,输入后是否出现新的外部请求;
- 是否可以下载代码后断网运行;
- 是否明确说明数据保存策略和责任边界。
本地命令行工具有什么优势?
本地工具的价值不是“命令行一定安全”,而是数据流更容易验证。JMS Doctor 只有一个 Python 文件,使用标准库读取输入;你可以先查看源码,再决定是否运行。默认诊断不会打印密码、UUID 或完整主机名,也不会修改系统代理设置。
# 隐藏输入,不让订阅 URL 进入 shell 历史
jms-doctor
# 生成默认脱敏的报告
jms-doctor --file subscription.txt --dns --json > jms-report.json
网络探测是显式开启的:只有使用 --dns 或 --tcp 时,工具才会解析或连接节点地址。TCP 检查只建立连接,不发送代理认证信息。
怎样安全地求助?
先用虚构数据复现问题。若必须分享诊断结果,应删除或遮盖订阅 URL、密码、UUID、完整域名、IP、端口组合和任何个人标识。即使 JSON 标记为不含凭据,也要人工检查节点名称,因为服务商可能把账号或地区信息写进名称。
公开 Issue 适合讨论解析器无法识别的协议结构,但样例必须使用无效的占位凭据。真实账号问题应通过服务商的私密支持渠道处理。JMS 官方条款也说明其服务是自助管理,具体应用配置与排错由用户负责,因此一份不泄露凭据的诊断报告尤其重要。
如果链接已经泄露怎么办?
- 停止继续公开传播并删除可控位置的内容;
- 在服务商控制面板查看是否能重新生成订阅或凭据;
- 无法自行轮换时,通过官方工单说明泄露范围;
- 检查公开代码历史、截图、日志和聊天记录中是否还有副本;
- 不要只依赖 URL 缩短服务——短链隐藏外观,但并没有撤销原始凭据。
在本机完成第一轮检查
JMS Doctor 免费开源,不要求上传订阅。已有账号直接使用即可。
联盟披露:第二个按钮包含 `aff=22688`。购买可能为作者带来佣金,不影响你的价格。