# 接续包 · 覆盖网络线 · 2026-09-16 18:3x(**v3**) > **用法**:新会话**只读这一份** —— ⛔ 不许先 Glob/Grep 全库摸底、⛔ 不许"再确认一下待办"。 > **v3 改了什么**:① 上次自动接续(17:03)**跑了 9 次调用 / 1.5 分钟 / 零产物** ⇒ **「下一步」已从"两件事混装"改成单一机械动作**(根因见「给下一棒」);② 全文压到 3KB 内;③ 传输选型结论已更新(**撤销"首选 frp"**)。 ## 接续点 · 覆盖网络线 · 2026-09-16 18:3x - **来源会话**:`408636f2`(覆盖网络线:规划复核 → 落地执行 → 收口)| **结束原因**:水位 **42 万**强制收口 - **原目标**(用户原话):①「查看覆盖网络任务的相关文档,规划落地步骤方案,检查方案确认有误调整,准备执行」②「有稳定可行的落地步骤方案了吗,确认是最佳落地方式就开始执行,保证每一步完成后项目都保持可用,逐步交付」③「覆盖网络的功能开发完成了吗」④「重新创建接续会话 看看是否有改善」 - **基线**:HEAD=`640813e` | 远端 master=`640813e`(15:0x 实测,**未复验**)| 全局锁=**已释放** | ⚠️ 工作区 **13 改 + 1 新增**,**未 commit(未授权)** - **产物**: 1. `交接单_覆盖网络落地执行_20260916.md` —— **§8 = P1/P2/P3 执行记录 + 全部实测证据** 2. `覆盖网络_传输方案取舍_开放端口与自研relay_20260916.md` —— §7 成熟件对照 / **§8 撤销 frp + 六条判据 + R0** 3. `会合中继拆分_取证与改造方案_20260916.md` —— §9 第二轮勘误 4. 技能 `dsh-decision-method` **v2.8.0**(新增 §4.6 选型判据轴;三副本 md5 一致) - **校验命令**(只读、≤30s): ```bash ssh root@47.77.182.89 'md5sum /opt/dshs/lib/supervisor/spawn.js; grep INSTANCE_PORT /etc/dshs-worker.env; PGPASSWORD=dshs_cluster_2026 psql -h 127.0.0.1 -p 15432 -U dshs -d dshs -At -c "select id,via from dsh_hosts order by id"' ``` **期望**:`e75427d06fa94cadac800e1570cec273` + `DSHS_INSTANCE_PORT_BASE=20000` / `SPAN=1000` + `w-106|manager-ssh`、`w-47|local`。**不符 ⇒ 停下只报告,⛔ 不许照文字硬做。** ## 给下一棒(⛔ 先读这段:上次为什么零产物) 上次(17:03)自动化会话 **9 次调用 / 1.5 分钟 / 零产物**。根因 = **旧「下一步」把两件事(补判据表 + 测链路画像)混成一句话,且没给可交付的产物路径** ⇒ 会话做完开机四步就无从下手。**本次已改成单一机械动作(见下),照做即可闭合。** ## 下一步(**唯一动作 = R0-b 链路画像测量**,全程只读) **要产出**:本机 ↔ 47 ↔ 106 的 **RTT / jitter / 带宽**实测,写进 `覆盖网络_传输方案取舍_开放端口与自研relay_20260916.md` 的新 **§9**(含命令原文 + 数字)。 命令骨架: 1. 本机 → 47 / 106:`ping -n 20 `(jitter 取 `mdev` 或手算标准差) 2. 下载带宽:`curl -o /dev/null -w '%{speed_download}\n' http://<47或106>/<一个 ~50MB 文件>`(无现成文件就先在 47 临时生成,用完删) 3. 47 ↔ 106 互联:在 47 上 `ping -c 20 106.54.21.172` + 同样方式测一次 TCP 吞吐 4. 记 **NAT / 公网可达性**结论:从本机能否直连 106 的 19000(决定"打洞"可行性) ⛔ 只做测量 + 写 §9;**不装任何 relay、不改配置、不开端口**。**工具调用 ≤ 8 次**。 ## 未完成 1. **R0-b 链路画像** ← **= 下一步,唯一动作** 2. **R0-a 判据打分表**(把 §8.2 那六条补成可打分版)→ 排 R0-b 之后 3. **功能本体 0/3**:presence / 游戏服放 L1 / 块级内容寻址 —— 一个都没开工 4. **S5(443/TCP 兜底)** 未做;**relay 实现未定**(P4 SSH 版判不做) 5. **本机(客户端类型节点)三项验证** 未做 6. **未 commit**(13 改 + 1 新增;红线:未授权不得 commit/push) 7. ⏳ 待用户裁决:「自动接续」通道留不留(18:2x 已问,**未答**) ## 关键决定(勿推翻) 1. **S3 不回环别名、不 `portMap`** —— 实测被 sshd 静默改写;改用**实例端口区间隔离**(`w-47`=20000+ / `w-106`=21000+,避开 OS 临时段 32768-60999)—— **已上线** 2. **S2 只加 `via`**(不加 `address`);`via` 省略时 `COALESCE` 不覆盖旧值;回填 `w-47=local` / `w-106=manager-ssh` 3. `proxy.ts:109` = **发给上游 dsh 的 `Host` 头**,⛔ 永不可改(连接目标 `:136-137`) 4. **控制面已在 PG** ⇒ 不存在"改造为 PG" 5. **worker 永远只拨出、不开入站端口**;**relay 实现未定**(撤销 frp:`CVE-2026-40910` 影响 ≥0.53.0 / dashboard 默认弱口令 / **`proxyBindAddr` 默认绑公网** / 单一静态 token + frpc 明文存 / 服务端默认不强制 TLS) 6. ⛔ **P4(SSH 版中继 + 新开 32023)判不做** ## 回滚点 - **P1**:`/opt/dsh/backups/lib-pre-S0-20260916-1555.tgz` → `systemctl stop dshs` → 还原 `lib` → `start dshs` - **P2**:`via` 列有默认值 ⇒ 旧代码读 `endpoint` 不受影响,**列可留着不删** - **P3**:删 `/etc/dshs-worker.env` 的 `DSHS_INSTANCE_PORT_BASE/SPAN` ⇒ 回 `listen(0)`(**零代码回滚**) ## ⛔ 不要重做 **P1(47 对齐 `640813e`)/ P2(`via` 列 + 回填)/ P3(端口区间隔离)均已完成并验收** —— 证据在交接单 §8。 **也不要**再论证「S3 用回环别名」(已实测证伪)、「需要改造为 PG」(已经是 PG)、「首选 frp」(已撤销)。