Skip to content

防止被偷流量

VPS 的流量是按量计费或有上限的,被别人白用就是真金白银的损失。自建节点的流量通常有两种被偷法:

  1. 服务器被当成免费中继。 REALITY 和 ShadowTLS 会把认证失败的连接原样转发给伪装目标。如果伪装目标在 Cloudflare 这类 CDN 后面,别人就能借你的服务器访问整个 CDN,流量全算你的。没有密码的公网 SOCKS5 也是同样的道理。
  2. 链接或订阅泄露。 分享链接、订阅地址落到别人手里,别人就能直接用你的节点。

防止被当成免费中继

创建前检测伪装目标。 创建 REALITY 节点(包括 XHTTP 的 REALITY 层)时,PSM 会用 Cloudflare、Fastly、Akamai 的域名去伪装目标的 IP 上握手:能拿到这些域名的有效证书,就说明目标是多家网站共用的 CDN 前端,PSM 会明确警告。mihomo 的 ShadowTLS 握手目标也做同样的检测。

命中时自动开启回落限速。 伪装目标被判定为共享 CDN 前端时,Xray 和 mihomo 的 REALITY 节点会自动打开"回落限速":每条回落连接传输超过 1 MiB 后,限速到 256 KiB/s。这只是兜底:限速按单条连接计算,别人循环重连就能绕过。真正的解决办法是换一个不在 CDN 后面的伪装目标,选法见 协议怎么选。sing-box 的 REALITY 没有回落限速,这种情况下 PSM 会建议把节点挂到 443 复用上。

443 复用下,未知域名直接断开。 节点挂在 443 端口复用 上时,Nginx 只转发你配置过的域名,其他域名的连接直接断开。别人没法用任意域名把你的服务器当跳板,能被回落的只剩你配置的那一个伪装域名。

SOCKS5 不裸奔。 SOCKS5 默认只在本机监听;要开到公网,PSM 强制设置用户名和密码。它是明文协议,密码只能挡住随手扫描,所以最好保持默认的本机监听。

防止链接和订阅被盗用

  • 凭据随机生成。 UUID、密码、密钥都由 PSM 随机生成,不会有弱口令。

  • 在线订阅不可猜测。 地址是 48 位随机令牌的路径,只走 HTTPS,目录不可枚举,默认 30 天有效;怀疑泄露了,在主菜单 22. 客户端订阅 重置令牌,旧链接立即失效。见 订阅

  • 多人使用就用多用户。 每个人有自己的凭据和订阅地址,出问题只处理这一个人,不用把所有人的节点都换掉:

    bash
    psm user token 用户名             # 换一个新的订阅地址,旧地址立刻失效
    psm user update 用户名 --disable   # 停用这个人

    多用户

  • 节点凭据泄露了就换掉。psm node update 换新的 UUID 或密码,再重新导出链接:

    bash
    psm node update xray reality my-reality --uuid "$(cat /proc/sys/kernel/random/uuid)"

及时发现异常

  • 流量配额和提醒:给节点或用户设每月流量上限,用到 90% 时 Telegram 提醒,用满自动暂停。流量突然暴涨,第一时间就能知道。见 流量配额与到期
  • 借出去的节点设到期时间:到期自动停用。
  • Telegram 每日体检报告:每天看一眼流量和服务状态,见 Telegram 机器人

检查清单

  1. REALITY 伪装目标不在 CDN 后面,创建时没有出现共享 CDN 前端的警告。
  2. 能挂 443 的节点都挂到 443 复用上。
  3. 不开没有密码的公网 SOCKS5。
  4. 订阅只发给信任的人;多人使用就用多用户,每人一个订阅。
  5. 给节点或用户设流量配额,打开 Telegram 提醒。

基于 AGPL-3.0 许可发布 · 仅用于合法用途,请遵守当地法律法规