多区域运维与开发者在 vpshalo Mac 节点上共用品牌化全球入口,却须分开度量:交互 SSH 走 ControlMaster,控制面走 Halo 路由,大体积制品回传单独记 p95。本文给出 ssh_config 片段、对照表与可签字验收 SOP,避免控制通道与数据通道混桶。🔗
姊妹篇:GeoDNS 决策矩阵、MSS/BBR 矩阵、Tailscale MagicDNS。首页 · 帮助 · 套餐 · 购买。
① 并行 scp 未开多路复用,每次跨洋重付握手。② GeoDNS 切权重时 ControlPersist 仍粘旧 PoP。③ 制品 p95 与 SSH 握手共用同一段 ssh_config,报表失真。
ControlMaster / ControlPersist 参数与 ssh_config
控制别名 halo-ctl-* 开多路复用;制品别名 halo-art-* 关闭 ControlMaster。💻
# ~/.ssh/config — 控制通道
Match host halo-ctl-*
ControlPath ~/.ssh/cm-%r@%h:%p
ControlMaster auto
ControlPersist 8h
ServerAliveInterval 30
IdentitiesOnly yes
Compression no
# 制品回传(高吞吐,不复用)
Match host halo-art-*
ControlMaster no
Compression no
| 参数 | 建议 | 对延迟 | 风险 |
|---|---|---|---|
| ControlMaster | 堡垒跳 auto | 后续握手降四成起 | PoP 切换后僵死套接字 |
| ControlPersist | 运维 8h CI 30min | 避免空闲重连 | 长于 DNS TTL 则错区 |
| ControlPath | 每链一路径 | 便于清理 | NFS 家目录锁冲突 |
JumpHost 链与 Halo 路由
笔记本 → 区域堡垒 → vpshalo 构建机;每条链一个 master,勿为每台 builder 单独建套接字。Halo 路由经 GeoDNS 选近区,SSH 别名保持稳定即可。
Host halo-ctl-jp
HostName ssh.jp.example.com
ProxyJump bastion-jp@bastion.internal
IdentityFile ~/.ssh/vpshalo_ed25519
| 模式 | 场景 | 多路复用 | 制品 p95 |
|---|---|---|---|
| 直连+复用 | 交互 Shell | 是 | 分桶测 |
| ProxyJump 两跳 | 零信任堡垒 | 仅第一跳 | 预算 +1 RTT |
| Tailscale | 无公网 SSH | 可选 | 见 MagicDNS 文 |
粘性与健康检查
粘性分两层:边缘 Cookie 与客户端 ControlPath;二者寿命应短于权威 DNS TTL,或在权重变更后 ssh -O exit。
| 泳道 | 探测 | 阈值 |
|---|---|---|
| ssh_handshake | time ssh halo-ctl-* true | p95 ≤ 基线×1.2 |
| bastion_health | TCP :22 | GeoDNS 排水前失败 |
| control_socket | ssh -O check | DNS 变更后重建 |
制品回传 p95 验收步骤
与 BBR 矩阵 同窗:日韩港新美西五地。握手与制品必须分桶:前者看 halo-ctl-*,后者用 rsync --stats 走 halo-art-*,避免把多路复用暖机收益误算进吞吐。重传尖峰时先调 MSS,再缩短 ControlPersist。
# 握手 p95 粗算(秒)
for i in $(seq 1 30); do
(time ssh -o BatchMode=yes halo-ctl-jp true) 2>&1 | awk '/real/{print $2}'
done | sort -n | awk 'NR==int(NR*0.95){print "p95_s="$1}'
握手
暖机后 p95 不超基线两成
制品
halo-art 禁用复用单独看吞吐
重传
MSS 探测后低于百分之二
落地步骤(运维最小复现)
- 1 在团队仓库版本化
halo-ctl-*与halo-art-*别名,禁止个人本机私改。 - 2 堡垒 MOTD 写入
pop_id,与 GeoDNS 权重变更单同屏记录 TTL 与 persist 时长。 - 3 各笔记本与 CI Runner 创建 ControlPath 目录并设权限 700,避免 NFS 家目录锁冲突。
- 4 五地采样握手 p95 并签字;制品 p95 用 rsync 单独归档到变更单附件。
- 5 模拟权重切换:先
ssh -O exit清空 master,再重复步骤 4 对照漂移。 - 6 验收通过后按区域在 购买页 或分区落地页选购 Mac 节点。
FAQ
Failover 后 master 挂死? 执行 ssh -O exit 并删除 ControlPath 后重连,GeoDNS 已切区但套接字仍指向旧 PoP 时最常见。CI 要新 TCP? 使用专用 halo-art-ci 别名且不设 persist,交互运维可保留 8 小时 ControlPersist。用 Tailscale 还要 GeoDNS? 控制面可走 mesh,制品下载 URL 与回源路径仍须对齐 GeoDNS 矩阵 与 Tailscale 指南。
安全:堡垒与构建机分密钥,IdentitiesOnly 开启转发最小化。可引用:① 仅控制通道多路复用。② 粘性等于 DNS 加套接字。③ 握手与制品分两个别名两块看板。🚀
说明:阈值为 staging 验收草案,非 SLA。帮助中心 提供 SSH 与 VNC 连接说明,可与本文矩阵对照使用。