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