回滚按迁移进度分层进行。目标是只撤回本教程新增或修改的内容,保留当前仍工作的 Desktop 会话、其他 SSH Host、代理客户端和 Codex 状态。
- 保存所有 Desktop 与 VS Code 工作;
- 在远端项目中记录
git status --short和未提交差异; - 找到操作前的精确 SSH 与 VS Code Server 环境备份;
- 用
diff -u检查备份与现状; - 若存在与本教程无关的并发修改,不要整文件覆盖,改为人工最小编辑。
仓库不提供自动回滚脚本,也不会结束任何进程。
这是最简单且最安全的回滚。
保存并关闭显示 SSH: codex-vscode 的窗口。不要操作 Desktop 会话。由于新版禁用 ControlPersist,SSH 连接正常结束后其转发应随之消失;如果端口仍在,先确认占用者。
在服务器上只删除这对标记之间由本教程加入的行:
# BEGIN CODEX_VSCODE_PROXY
...
# END CODEX_VSCODE_PROXY
如果文件在操作前不存在且现在只包含该标记块,可在确认无其他内容后由你人工处理。不要删除整个 ~/.vscode-server,不要改全局 shell 初始化文件。
在 Mac 的个人 SSH 配置中,只删除 Host codex-vscode 和 Host codex-shell 的新增块。每个块在下一个 Host 或 Match 指令前结束。不要改 Desktop Host。
- 本地 User Settings:移除本次新增的
remote.SSH.remotePlatform映射或恢复旧值; - Remote Settings:恢复本次改变的
http.proxy、http.proxySupport; - 若为特定错误加入了
extensions.supportNodeGlobalNavigator,恢复原值。
同名字段若在迁移前已经存在,应恢复旧值而不是直接删除。
只在维护窗口中执行:
-
保存并正常结束 Desktop 工作;
-
比较当前 SSH 配置与迁移前备份:
diff -u "$HOME/.ssh/config.backup.YYYYMMDD-HHMMSS" "$HOME/.ssh/config"
-
仅恢复 Desktop Host 的原始行;不要恢复无关 Host 的旧版本;
-
运行
ssh -G,确认 Desktop 的RemoteForward、连接复用设置和端口与迁移前记录一致; -
正常重连 Desktop 并验收;
-
再按“情形 A”撤回 VS Code 与维护别名。
若精确备份确认只包含本次变更且期间没有其他合法改动,才可以考虑整文件恢复;默认仍推荐最小编辑。
配置回滚不会自动结束已经运行的旧 master。若它仍承载工作,保留它。只有同时满足以下条件时才考虑优雅结束:
- 已保存所有依赖会话;
- 已确认 socket 的精确路径与 Host 归属;
ssh -S /exact/path/to/socket -O check your-current-host返回预期连接;- 你明确准备结束该连接。
随后才可使用同一精确路径执行 -O exit。不要使用通配路径,不要批量终止 SSH。
ssh -G codex-desktop 2>/dev/null | awk '
$1 == "remoteforward" ||
$1 == "controlmaster" ||
$1 == "controlpath" ||
$1 == "controlpersist"
'
ssh -G codex-vscode 2>/dev/null | awk '$1 == "remoteforward"'
ssh -G codex-shell 2>/dev/null | awk '$1 == "remoteforward"'OpenSSH 会为未知名字产生默认有效配置,所以命令退出成功不代表 Host 块仍存在。重点是新增别名不再解析出本教程的转发。
ss -lnt | awk '$4 ~ /127\.0\.0\.1:17890$|127\.0\.0\.1:17892$/'端口仍在不代表可以结束占用者;它可能属于未正常关闭的目标连接或其他合法服务。先识别来源。
在两个客户端、项目文件和原连接都验收完成前保留备份。备份可能包含真实地址、用户名、私钥路径和个人 Host,不得加入 Git、公共 issue、截图或发布包。是否归档或删除由你自行决定,仓库不会自动处理。
回滚不需要:
- 结束全部 SSH 进程;
- 退出 Codex 登录或删除 Codex 状态;
- 删除整个 VS Code Server 目录;
- 重置 EasyTier、Clash 或系统代理;
- 覆盖后来新增的其他 SSH Host;
- 删除私钥、
known_hosts或代理配置。
若 Desktop 在回滚前已异常,先保存证据并回到 故障排查,不要继续扩大修改。