防止被偷流量
VPS 的流量是按量计费或有上限的,被别人白用就是真金白银的损失。自建节点的流量通常有两种被偷法:
- 服务器被当成免费中继。 REALITY 和 ShadowTLS 会把认证失败的连接原样转发给伪装目标。如果伪装目标在 Cloudflare 这类 CDN 后面,别人就能借你的服务器访问整个 CDN,流量全算你的。没有密码的公网 SOCKS5 也是同样的道理。
- 链接或订阅泄露。 分享链接、订阅地址落到别人手里,别人就能直接用你的节点。
防止被当成免费中继
创建前检测伪装目标。 创建 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. 客户端订阅 重置令牌,旧链接立即失效。见 订阅。
多人使用就用多用户。 每个人有自己的凭据和订阅地址,出问题只处理这一个人,不用把所有人的节点都换掉:
bashpsm user token 用户名 # 换一个新的订阅地址,旧地址立刻失效 psm user update 用户名 --disable # 停用这个人见 多用户。
节点凭据泄露了就换掉。 用
psm node update换新的 UUID 或密码,再重新导出链接:bashpsm node update xray reality my-reality --uuid "$(cat /proc/sys/kernel/random/uuid)"
及时发现异常
- 流量配额和提醒:给节点或用户设每月流量上限,用到 90% 时 Telegram 提醒,用满自动暂停。流量突然暴涨,第一时间就能知道。见 流量配额与到期。
- 借出去的节点设到期时间:到期自动停用。
- Telegram 每日体检报告:每天看一眼流量和服务状态,见 Telegram 机器人。
检查清单
- REALITY 伪装目标不在 CDN 后面,创建时没有出现共享 CDN 前端的警告。
- 能挂 443 的节点都挂到 443 复用上。
- 不开没有密码的公网 SOCKS5。
- 订阅只发给信任的人;多人使用就用多用户,每人一个订阅。
- 给节点或用户设流量配额,打开 Telegram 提醒。