Files
dsh_ai1net_server/归档/交接单-20260924-归档/接续包_覆盖网络线_20260916.md
T
admin 7bd1151c67 chore(工作区): 归档交接单 27 件 + 新增 CODEBUDDY §9 工作区卫生
交接单按归属约定(正文落文档库、工作区只放指针)归档至
归档/交接单-20260924-归档/,含逐件判定 README:
- 16 件已被文档库正式版取代(T09–T21 + 覆盖网络-24/25/26)
- 4 件主题已被覆盖网络线入口汇总
- 7 件历史接续包/规划件

CODEBUDDY §9:收口清本棒 tmp、tmp 保留期 7 天、禁「待清理」中间态、
工作区入库只放文档与文件、不保留脚本副本、>60 KB 单文件须逐个判。
2026-09-24 07:58:57 +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」(已撤销)。