Files
dsh_ai1net_server/dsh-server-docs/ops/接续包_覆盖网络线_20260916.md
T
admin 04776af4b1 docs: 工作区根项目文档批量入仓(04-调整方案 113–128 / 交接单 T09–T21 / ops / archive)
起因:用户 2026-09-17 明确「所有文档都要同步,都放在开发仓库 docs 对应文件夹下」。
判据:工作区根 *.md 中在仓库(git ls-files --quotepath=false)搜不到的那些。

入仓 33 份(一律复制,工作区根原件保留不动,避免引用断链):
- 04-调整方案/113–128(16 份 · 原子占号后落盘):覆盖网络 传输方案取舍 / 应用场景与待完善清单 /
  插件化vs改内核 / 问题逐条推演 / 参数表与观测口径;会合中继拆分取证与改造方案;
  集群化改造方案 Manager-Worker;跨节点迁移与节点自举;项目代码分层范式与迭代风险评估;
  搬运与共享重建方案 guest w47→w106;方案规划方法提炼;文档无效信息审计报告;
  会话接续机制复盘与修复;会话接续规范;dsh 客户端化部署方案;dsh 桌面客户端开发方案
- 交接单/archive/交接单-已完成/T09–T21(13 份 · 覆盖网络线已完成单归档)
- ops/(2 份运行态指针:接续入口 / 接续包 · 覆盖网络线)
- archive/(2 份临时与内部简报)

已排除(无需重复入仓):覆盖网络线 10 份方案正文已入档案 103–112(文件名不同)。

登记:INDEX.md §二 新增 04-113–128 共 16 行 + §四 追加 T09–T21 说明 + 机器摘要行刷新
(⛔ 未跑 docs-index-stats.py --write:该脚本会按 \r\n 归一化全文件行尾,故改为字节级单行替换);
README.md 追加 1 条入仓指针;docs-manifest.json 复跑 scripts/docs-manifest.py 刷新。

验收:工作区根 47 份 .md —— 同名已入仓 8 / 本次内容一致 29 / 已知改名映射 10 / 未入仓 0;
git status 待提交清单只含本次新增与登记 3 件(未涉 src/ 与 relay 代码面)。
2026-09-17 18:24:19 +08:00

67 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 接续包 · 覆盖网络线 · 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 [email protected] '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 <ip>`(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」(已撤销)。