server_config: 密钥体系改为每节点独立(VLESS UUID/REALITY 密钥对/short_id、SS 密码)

2026-09-10 起 jp/us/ru/aq 四节点已落实独立密钥;SNI 仍全节点统一。
旧「全套共用一套」表述同步修正(0 节/6.2/6.3)。
This commit is contained in:
RRRosmontis
2026-09-10 10:12:31 +08:00
parent efa7e25f66
commit 63837eb9d8
+10 -7
View File
@@ -45,11 +45,14 @@
| 兼容旧客户端 | sing-box | Shadowsocks | Shadowrocket 2.x 等不支持 REALITY 的客户端 | | 兼容旧客户端 | sing-box | Shadowsocks | Shadowrocket 2.x 等不支持 REALITY 的客户端 |
| Telegram 专用 | mtg | MTProto Fake TLS | Telegram 内置代理,抗封锁 | | Telegram 专用 | mtg | MTProto Fake TLS | Telegram 内置代理,抗封锁 |
**核心密钥体系(全套节点共用一套):** **核心密钥体系(2026-09 起改为每节点独立):**
- VLESS+REALITY:统一 UUID、统一 REALITY 私钥/short_id/SNI(SNI 用 `<伪装SNI域名>`,选一个高流量、TLS 指纹稳定的知名站点域名) - VLESS+REALITY:每节点**独立** UUID、REALITY 密钥对、short_id;SNI 仍全节点统一(用 `<伪装SNI域名>`,选一个高流量、TLS 指纹稳定的知名站点域名)
- Shadowsocks:统一密码,方法 `aes-256-gcm` - Shadowsocks:每节点**独立**密码,方法 `aes-256-gcm`
- MTProto:每台**独立 secret**(Fake TLS 类型,fronting 到 `<伪装SNI域名>`) - MTProto:每台**独立 secret**(Fake TLS 类型,fronting 到 `<伪装SNI域名>`)
> 独立化的目的:单节点密钥泄漏/被污染时不波及其余节点,且换钥粒度更小。
> 代价是订阅/nodes.json 必须逐节点维护,改任一项后必须做端到端验证(见 6.3、第 10 节)。
--- ---
## 1. 端口与服务规划 ## 1. 端口与服务规划
@@ -253,13 +256,13 @@ install -m 755 sing-box-$SINGBOX_VER-linux-amd64/sing-box /usr/local/bin/sing-bo
### 6.2 配置 ### 6.2 配置
完整配置见 [sing-box/config.json](sing-box/config.json)。要点: 完整配置见 [sing-box/config.json](sing-box/config.json)。要点:
- **VLESS+REALITY**:统一 UUID、统一私钥/short_id/SNI,flow `xtls-rprx-vision`;REALITY handshake server 用 `<伪装SNI域名>:443` - **VLESS+REALITY**:每节点独立 UUID/密钥对/short_id,SNI 全节点统一,flow `xtls-rprx-vision`;REALITY handshake server 用 `<伪装SNI域名>:443`
- **Shadowsocks**:`aes-256-gcm` + 统一密码,独立端口(兼容不支持 REALITY 的老客户端) - **Shadowsocks**:`aes-256-gcm` + 每节点独立密码,独立端口(兼容不支持 REALITY 的老客户端)
- 无 SOCKS5 inbound(已按需移除;如需可在 inbounds 追加 `type: socks`) - 无 SOCKS5 inbound(已按需移除;如需可在 inbounds 追加 `type: socks`)
### 6.3 REALITY 密钥生成 ### 6.3 REALITY 密钥生成
首次部署生成一套(**全套节点共用**): **每台节点独立生成一套**(互不共用):
```bash ```bash
# 生成私钥/公钥(sing-box 1.13+ 内置 reality 密钥生成) # 生成私钥/公钥(sing-box 1.13+ 内置 reality 密钥生成)
@@ -271,7 +274,7 @@ openssl rand -hex 8
sing-box generate uuid sing-box generate uuid
``` ```
> 私钥只放服务端配置;公钥给客户端订阅。UUID/short_id 全节点一致。 > 私钥只放服务端配置;公钥给客户端订阅。UUID/密钥对/short_id 每节点独立。
**公钥必须推导验证,禁止手抄。** 订阅/节点配置里的 `public_key` 与服务端 **公钥必须推导验证,禁止手抄。** 订阅/节点配置里的 `public_key` 与服务端
`private_key` 必须严格配对(X25519 推导),曾发生手抄错一个字符导致全节点 `private_key` 必须严格配对(X25519 推导),曾发生手抄错一个字符导致全节点