收敛攻坚(81/400 失败点根因与实测,见 docs/failed81_cno_seed_popzer_dpsilg_2026_08_18.md): - runner: 新增 seed_step_stab 策略链——同物理族(同 Teff/logg/logHe)CNO 邻居种子 + DPSILG=3.0 λ 算子欠松弛 + POPZER=1E-10 微布居置零(联动 POPZR2/RADZER 同值 + NITZER=1),针对 20kK He 富大气 He I/II 电离前沿布居极限环 - runner: 三级链内延拓回退(主链与 nl_direct 全败后自动触发): · 固定 ladder 步进——plan_ladder_steps 按归一化间隔选轴,Δlogg≤0.25/ΔTeff≤2.5kK,≤4 步 · 自适应 Teff 延拓——步长 1250K 起、成功 ×1.5 恢复、失败二分至 25K 折叠墙,≤48 步 · C/N 丰度轴延拓——高温域(Teff>30kK)专用,严格同族种子沿 C(优先)/N 轴 0.2 dex 起步 延拓阶段 NITER 下限提至 300(慢收敛 waypoint 迭代饥饿误判修复) - runner: 稳定化多档回退(DPSILG/POPZER 三档互补,联合回收 41/65); 域门控 Teff≤30kK——高温高金属域实测旋钮致散(17 拍爆至 4e16),域外跳过 - 梯级种子持久化: 收敛中间模型登记 ladder_seeds 随上报落 server seeds 表 (任务失败也上传,合成名 _ladder 与真实网格点零冲突),簇内相邻失败点自动复用 调度与执行: - scheduler: 策略解析新增 seed_step_stab 臂——find_exact_family_seed_from_db 严格 同物理族判定(不做 global 退化,防 ladder 中间种子 ΔTeff≤5000K 误命中), 排除本点历史已用种子实现重试轮换;链在 stab 耗尽时轮换未试过同族邻居重派 - executor: seed_step_stab 补种子下载(漏列曾致 78 任务假失败,seed_nc 无 fort.8 崩溃); Teff>30kK 域外自动降级普通种子链 收敛判据: - conv_check: 热启动豁免——首拍 max_relc<1(种子已近解)时首末比 1e3 判据数学上 不可达,豁免后交五重物理硬门槛裁决(修复 nl_ladder 0.038→6e-4 物理全过被误杀); 冷启动仍受判据门控 workflow 生命周期: - workflows/tasks: 完成 flip 增加「未消费回退链」阻塞子句——failed 点策略链未耗尽 或链尾 seed_step_stab 尚有未试过同族种子时不得置 completed(修复最后活跃点 cold 失败上报抢先 flip、still_running 守卫拦截后续策略永不派发);按 failed_stage 归因 (synspec 失败行只看 synspec 链,防 stale 审计副本永久卡死)+ json_valid 脏行防护 统计与前端: - 统计新增权威口径 tlusty_converged(不按策略拆)与 seed_step_stab_converged 分项, 前端详情页色带/概览卡消费权威总数并新增稳定化青色段(修复 stab 收敛点漏计, 生产 9137/9216 差额);M14 迁移回填历史 completed 点的 tlusty_status 文档: - 新增 failed81 POPZER/DPSILG 制胜配方根因分析、Windows 节点经跳板 RDP 运维手册; failed400 增补 ladder 生产化实现与第二轮 121 残点实测矩阵
5.8 KiB
Windows 节点远程桌面连接手册(经 Linux 跳板中转)
2026-08-20 实战总结。背景:两台 Windows 计算节点(node-fmq-dckj-02/03)与本机不直连, 必须经 Linux 跳板 node-fmq-dckj-01(dckj@100.66.1.5,Tailscale 网段)中转。 本机无节点小宝直连 Windows 的能力,所有 Windows 运维(尤其 Docker Desktop 登录自启) 都走本文的 SSH 隧道 + RDP 方案。
1. 网络拓扑与凭据
| 节点 | 地址 | 登录 | 密码 | 可达路径 |
|---|---|---|---|---|
| 跳板 dckj-01 | 100.66.1.5 | dckj | dckjzndx | 本机直连 |
| node-fmq-dckj-02 | 192.168.6.102 | fmq | 1235 | 仅经跳板 |
| node-fmq-dckj-03 | 192.168.6.103 | Administrator | dev#2dckj@zndx | 仅经跳板 |
- Windows 侧 SSH(22)和 RDP(3389)均开放,但只对跳板所在的内网段可达。
- Windows 上运行节点小宝(内网穿透工具,服务名
NodeBabyLinkService,StartMode=Auto开机自启),负责与 dckj-01 之间的 P2P 链路—— 跳板能通 SSH 本身就说明节点小宝是活的。 - ⚠️ 密码写在文档里仅图方便,机器若更换使用人请先改密;长期方案建议配 SSH 公钥。
2. 核心方案:SSH 隧道转发 RDP(无需在跳板装任何桌面软件)
原理:本机 ssh -N -L 建立经跳板的加密隧道,把远端 3389 映射到本机端口,
再用本机任意 RDP 客户端(Remmina / xfreerdp / GNOME Connections)连 localhost。
# 隧道一:本机 13389 → dckj-03 (192.168.6.103) RDP
sshpass -p 'dev#2dckj@zndx' ssh -N \
-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
-o ServerAliveInterval=30 -o ServerAliveCountMax=6 \
-o ProxyCommand="sshpass -p dckjzndx ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -W %h:%p dckj@100.66.1.5" \
-L 13389:192.168.6.103:3389 Administrator@192.168.6.103 &
# 隧道二:本机 13390 → dckj-02 (192.168.6.102) RDP
sshpass -p 1235 ssh -N \
-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
-o ServerAliveInterval=30 -o ServerAliveCountMax=6 \
-o ProxyCommand="sshpass -p dckjzndx ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -W %h:%p dckj@100.66.1.5" \
-L 13390:192.168.6.102:3389 fmq@192.168.6.102 &
然后 RDP 客户端连接:
- dckj-03 →
localhost:13389(用户 Administrator) - dckj-02 →
localhost:13390(用户 fmq)
要点:
ProxyCommand里层sshpass付跳板机密码,外层sshpass付目标机密码, 两级密码各管一段,这是双密码跳板场景的关键结构。ServerAliveCountMax=6(默认 3):节点小宝 P2P 链路偶发抖动,放宽容忍避免隧道被误杀。- 验证隧道:
timeout 3 bash -c '</dev/tcp/127.0.0.1/13389' && echo OK。 - 隧道断了(症状:RDP 卡死、后台 ssh 报 "Timeout, server not responding")直接重跑上面命令即可。
3. 经跳板执行远程命令(非交互,运维日常)
rwin() { # rwin <win-02|win-03> "命令"
case "$1" in
win-02) h=fmq@192.168.6.102; p=1235 ;;
win-03) h=Administrator@192.168.6.103; p='dev#2dckj@zndx' ;;
esac
sshpass -p "$p" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
-o ProxyCommand="sshpass -p dckjzndx ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -W %h:%p dckj@100.66.1.5" \
"$h" "$2"
}
# 用例:rwin win-03 "docker ps"
scripts/fetch_results.sh / scripts/deploy.sh 已原生支持跳板:profile 里加
REMOTE_PROXY_JUMP=dckj@100.66.1.5 即自动 -o ProxyJump(win-01/win-02 两个 profile 已配好)。
4. 重要经验:Windows 节点重启后的恢复顺序
Docker Desktop 是 GUI 程序,必须有所属用户的交互桌面会话才能启动引擎。
从 SSH 远程 Start-Process 'Docker Desktop.exe' 无效——进程落在无桌面的 SSH 会话里,
GUI 初始化不了,引擎 named pipe(dockerDesktopLinuxEngine)不会创建,
docker ps 报 "unable to start" / "cannot find the file specified"。
正确的恢复链:
- 确认节点小宝活着(能 SSH 进去即活着;服务
NodeBabyLinkServiceAuto 自启,一般不用管)。 - 建隧道、RDP 登录对应账户的桌面(必须是与 Docker 数据同账户的桌面, dckj-03 的 Docker 挂在 Administrator 下,登录别的用户如 gaoyuqi 没用)。
- 登录后 Docker Desktop 自动启动(两台均已开 AutoStart),任务栏鲸鱼图标静止即就绪。
dcts-node容器配了 restart 策略,引擎就绪后自动恢复运行,无需手动 compose up。- 验证:
rwin win-03 "docker ps"看到dcts-node Up,再看看板心跳上线。
诊断命令速查(经 rwin 执行):
# 开机时间(判断是否重启过)
(Get-CimInstance Win32_OperatingSystem).LastBootUpTime
# 节点小宝服务状态
Get-CimInstance Win32_Service | Where-Object {$_.Name -match 'NodeBaby'} | Format-List Name,State,StartMode
# Docker 引擎是否就绪
docker ps
# 当前桌面会话归属(判断该登录哪个账户)
quser
5. 本次事故时间线(2026-08-20)
- 两台 Windows 于 14:52 左右重启;节点小宝 Auto 自启正常(开机 16 秒内拉起), 网络链路一直通。
- Docker Desktop 虽配了 AutoStart,但因 Administrator/fmq 未登录桌面(Docker Desktop 依赖登录会话),引擎未启动,节点掉线。
- 远程 Start-Process 反复失败 → 查日志发现 backend 未被拉起 →
quser发现桌面会话 属于第三方用户且已断开 → 定位根因。 - 经 SSH 隧道 RDP 登录桌面后,Docker 引擎启动、
dcts-node容器自动恢复。
治本方向(未做,待定):给两台 Windows 配置 Administrator/fmq 自动登录
(注册表 AutoAdminLogon,密码明文存储需评估安全),彻底摆脱重启后必须人工 RDP。