跳转至

HANDOFF — 项目交接快照

1. 这份文件怎么用

本文件由 SessionStart Hook 自动注入到每次会话,是被动阅读的交接档:读完第 2、3 节就应知道「现在到哪一步、下一步做什么」。

事实档位标注约定:【已确认】=有实测证据;【未验证】=说法未经证实;【待决策】=尚无定论。

历史过程、实验细节、脚本源码、证据片段一律不放本文件,归 vnc-server-deploy/docs/SOP.md。

2. 当前状态与在做什么

一句话:hpc-submit(192.168.31.28)的 TigerVNC 多用户远程桌面已上线并验证通过,9 个 LDAP 用户全部可用;桌面锁屏治理已闭环(9 用户全覆盖,策略由部署工程交付),本主题无进行中的工作项。

本轮(2026-09-27)完成:在 hpc-submit 部署 TigerVNC 1.15 + Xfce4 多用户 VNC,按 EDA 行业标准的系统级 vncserver@.service 模板 + 静态 display 映射模型实现;配套 LDAP 增量同步器与 systemd 定时器,新用户自动接入。

关键事实 值
端口↔用户 :1=5901 rain01、:2=5902 rain02、:3=5903 rain03、:4=5904 cloud01、:5=5905 cy01、:6=5906 david01、:7=5907 lws01、:8=5908 cq01、:9=5909 ldapadmin 【已确认】
VNC 密码规则 <user>@<port>,VncAuth 只取前 8 字符(如 cy01 → cy01@5905 实际生效 cy01@590)【已确认】
监听方式 0.0.0.0:590N 内网直连,未加 localhost 限制【已确认】
桌面环境 Xfce4(session=xfce),分辨率 1920x1080 depth 24,alwaysshared【已确认】
开机自启 9 个 vncserver@:N.service 均 enabled【已确认】
LDAP 新用户 vnc-ldap-sync.timer 每 10 分钟增量同步,自动分配下一空闲端口、建家目录、生成密码、启服务【已确认】
幂等 重复执行第二次「变更 0 项,全部已就绪」【已确认】
端到端 端口握手返回 RFB 003.008;Xfce 会话进程正常【已确认】
会话崩溃恢复 崩溃后服务静默变 inactive(非 failed);残留锁文件不阻挡重启;靠 sync timer 自愈(延迟 ≤10 min),或人工 systemctl restart 秒级恢复【已确认】
资源占用 9 会话约 1.3 GB(Xvnc 820 MB + xfce4-session 515 MB),可用内存 12.6 GB【已确认】
家目录 6 个 LDAP 用户(rain02/rain03/cloud01/david01/lws01/cq01)家目录由本次部署新建【已确认】
桌面锁屏 9 个用户的屏保与空闲锁屏均已关闭(/saver/enabled、/lock/enabled 均 false);部署工程已交付系统级默认,新用户与新会话默认不锁屏【已确认】

3. 未完成事项

# 事项 下一步 在哪能拾起
1 人工端到端确认:仅完成协议层握手与进程级验证,未用图形客户端实际登录过 用 VNC Viewer 连 192.168.31.28:5905,用户 cy01,密码 cy01@5905,确认看到 Xfce 桌面 结果记入 vnc-server-deploy/docs/SOP.md 第 6.3 节
2 回滚未实际演练:回滚路径仅设计验证,未真跑 业务低峰期执行一次 python3 deployer.py rollback --force 后再部署回来 RUNBOOK 第 6 章「演练记录」
3 firewalld 当前 inactive:若日后启用,VNC 将全部不可达 启用时先放行 firewall-cmd --add-port=5901-5909/tcp --permanent && firewall-cmd --reload SOP 第 4 章影响范围
4 SELinux 当前 Permissive:切 Enforcing 后 ~/.vnc 上下文可能不匹配 切换前批量 restorecon -RFv /home/<user>/.vnc RUNBOOK 第 8.6 场景
5 内网明文口令风险【待决策】:密码规则可预测、VncAuth 强度弱 如需加固,切 SSH 隧道模式(append localhost 到 defaults 后重启会话) RUNBOOK 第 9 章
6 LDAP 绑定口令已存在于 /etc/sssd/sssd.conf:本次未新增凭据文件,但同步器依赖该文件 轮换时改该文件 → systemctl restart sssd → 触发一次同步验证 RUNBOOK 第 9 章「轮换」
7 会话崩溃自愈有最长 10 分钟延迟【待决策】:单元无 Restart=,且 vncsession 崩溃时退出码为 0,on-failure 类策略也不会触发 若需秒级自愈,用 drop-in 加 Restart=always;副作用是用户主动 logout 后会被立即拉起,需权衡 SOP 第 8 章风险表、RUNBOOK 第 8.7 场景
8 rain01 的 LDAP 账户口令仍处遗忘状态:本次只绕过锁屏,未重置口令;日后 sudo、登录其它节点仍会受阻 由 LDAP 管理员在目录侧重置(ldappasswd / ipa passwd rain01),本机 root 无法代办 RUNBOOK 第 8.8 场景、SOP 第 9.1 节

4. 红线与命令速查

红线(禁止操作)

  • 不要手工编辑 /etc/tigervnc/vncserver.users —— 由 vnc-ldap-sync 维护;手工删行会导致该用户被重新分配新端口,密码规则随之变化。要排除某用户,改 /etc/vnc-ldap-sync.conf 的 exclude_users。
  • display 号不回收、不重排 —— 密码内嵌端口,重排会使全部密码失效。
  • stop/restart 会话会终止该用户桌面进程 —— 未保存的 EDA 设计工作会丢失,操作前须确认用户知情。
  • 不删除 6 个新建的用户家目录 —— 已归用户使用,不可逆。
  • 不手工改 /etc/sssd/sssd.conf 的 LDAP 连接段 —— 影响全节点认证。
  • 部署类变更走 deployer.py(幂等 + 备份 + 回滚),不要手工覆盖 /etc/tigervnc/ 配置。

命令速查(在目标机以 root 执行)

/usr/local/sbin/vnc-ldap-sync status                       # 全量状态总览(预期全 done)
cat /etc/tigervnc/vncserver.users                          # display -> user 映射
systemctl status vncserver@:5.service --no-pager           # 单个会话
systemctl restart vncserver@:5.service                     # 重启单会话(会中断用户桌面)
systemctl start vnc-ldap-sync.service                      # 立即同步 LDAP 新用户
ss -tlnp | grep -E ':59[0-9][0-9]'                         # 端口监听
tail -50 /home/cy01/.vnc/hpc-submit:5.log                  # 会话日志
journalctl -u vnc-ldap-sync.service -n 30 --no-pager       # 同步器日志

部署侧(本地工程目录 vnc-server-deploy/):

python3 deployer.py precheck     # 只读环境预检查
python3 deployer.py drift        # 只读漂移检测(0 无漂移 / 1 有漂移 / 2 探测失败)
python3 deployer.py verify       # 只读后置验证
python3 deployer.py deploy       # 部署(幂等;--dry-run 预演)

5. 文档地图

文件 管什么
vnc-server-deploy/docs/RUNBOOK.md 服务日常使用与排障:速查表、配置管理、备份恢复、故障处置场景、安全加固、容量水位
vnc-server-deploy/docs/SOP.md 本次变更的完整档案:背景、目标、影响范围、分步操作、验证、回滚、风险、决策记录与实测证据
vnc-server-deploy/backup/README.md 备份台账:每个备份文件的原路径、产生原因、回滚动作、可删时机
vnc-server-deploy/deployer.py 部署编排器(precheck / plan / deploy / verify / drift / rollback)
vnc-server-deploy/assets/vnc-ldap-sync 用户同步器源码(落地到 /usr/local/sbin/vnc-ldap-sync)
vnc-server-deploy/assets/xfce4-screensaver.xml Xfce 系统级锁屏策略模板(禁用屏保与空闲锁屏,落地到 /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/)
vnc-server-deploy/config/defaults.yaml、site.yaml 配置分层:基线 + 站点覆盖(LDAP 凭据不在此,取自 /etc/sssd/sssd.conf)

来源:/home/rain/Documents/services/vncserver/docs/HANDOFF.md | 最后更新:2026-09-27 17:43(由 build/sync.py 同步,请勿在站点侧修改)