VSCodium 的 reh 与 reh-web 归档:远程服务器与浏览器访问组件完全指南 📅 发布时间:2026/9/19 7:30:04 👁 浏览次数: VSCodium 的 reh 与 reh-web 归档远程服务器与浏览器访问组件完全指南【免费下载链接】vscodiumbinary releases of VS Code without MS branding/telemetry/licensing项目地址: https://gitcode.com/gh_mirrors/vs/vscodium导读VSCodium 在发布桌面客户端的同时还同步产出了一类容易被忽略、但对远程开发至关重要的归档产物rehRemote Host与reh-webWeb Host。前者是支撑 Remote-SSH、Remote-WSL 等远程扩展的服务器端组件后者是codium serve-web命令在本地启动的浏览器访问服务器。本文以 docs/others.md 中的官方解释为主线结合本仓库的构建脚本与补丁源码系统讲解这两个组件的定位、区别、构建方式与产物命名规则帮助读者理解 VSCodium 远程开发体系的全貌并能正确下载、部署与排查相关归档。rehRemote Host远程 SSH/WSL 的服务器组件按照官方文档 docs/others.md 的定义Remote Hostreh是用于远程 ssh/wsl 的服务器组件它运行在一台远程计算机上并通过 VSCodium 使该远程计算机变得可访问。也就是说reh解决的是客户端与服务器分离的场景客户端本地安装的 VSCodium 桌面应用负责渲染界面、提供编辑交互服务器reh部署在远程机器云服务器、开发机、WSL 子系统等上的无头headless服务负责承载扩展、语言服务、终端等后端能力连接通道客户端通过 SSHRemote-SSH 扩展或 WSL 分发Remote-WSL 扩展与 reh 通信本地窗口打开的文件、终端、调试会话实际都执行在远程机器上。用户在本地 VSCodium 中按下 Remote-SSH: Connect to Host 时客户端会先在远程主机上安装或下载对应的 reh 归档解压后启动其中的服务进程再把工作区 UI 投射回本地窗口。这正是 reh 被称为Remote Host的原因——它让远程计算机成为开发的主机而本地只保留一个遥控器。reh-webWeb Hostcodium serve-web的浏览器访问服务器官方文档对 reh-web 的解释是Web Hostreh-web是命令codium serve-web的服务器组件它在本机运行使 VSCodium 可以通过浏览器访问。与 reh 的跨机器远程不同reh-web面向的是无客户端场景运行位置默认在本地机器上运行也可以手动部署到任何主机使用方式执行codium serve-web后服务会监听一个本地端口用户用任意浏览器打开该地址即可获得完整的编辑器体验典型价值在没有图形界面的服务器、嵌入式设备或希望开箱即用不安装桌面应用的场景中通过浏览器即可编写代码。reh-web与 reh 共享绝大部分后端逻辑差异主要在于前端承载方式reh 面向的是桌面客户端通过 VS Code 专有远程协议通信而 reh-web 直接把基于 Web 的编辑器前端web UI打包进服务器由浏览器直接加载。reh 与 reh-web 的对比维度rehRemote Hostreh-webWeb Host官方定位远程 ssh/wsl 的服务器组件codium serve-web的服务器组件运行位置远程计算机被连接方本地或任意部署主机通过浏览器访问访问方式本地 VSCodium 桌面客户端连接浏览器直接打开典型命令/扩展Remote-SSH、Remote-WSLcodium serve-web前端承载桌面客户端渲染 UI服务器内置 Web UI产物命名app-reh-os-arch-version.tar.gzapp-reh-web-os-arch-version.tar.gz简言之reh 让远程机器可被编辑器访问reh-web 让编辑器可被浏览器访问二者是 VSCodium 无桌面 UI 场景下的两块基石。仓库源码佐证两种归档的真实构建流程构建入口Linux 与 Alpine 平台VSCodium 仓库为两种归档提供了独立的构建与打包脚本build/linux/package_reh.sh面向 glibc 系 Linuxx64、arm64、ppc64le、riscv64、loong64、s390xbuild/alpine/package_reh.sh面向 musl 系 Alpine Linuxx64、arm64。在 build/linux/package_reh.sh 中可以看到两种产物由开关变量分别控制# 构建 rehRemote Host if [[ ${SHOULD_BUILD_REH} ! no ]]; then echo Building REH npm run gulp minify-vscode-reh npm run gulp vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci ... tar czf ../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz . fi # 构建 reh-webWeb Host if [[ ${SHOULD_BUILD_REH_WEB} ! no ]]; then echo Building REH-web npm run gulp minify-vscode-reh-web npm run gulp vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci ... tar czf ../assets/${APP_NAME_LC}-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz . fiAlpine 平台的流程与之对称见 build/alpine/package_reh.sh仅构建目标名不同vscode-reh-alpine-x64-min-ci/vscode-reh-alpine-arm64-min-ci并且会先应用 patches/alpine/reh/00-build-docker.patch——该补丁通过docker run ... node:version-alpine从官方 Alpine Node 镜像中提取 node 二进制以满足 musl 环境的依赖要求。归档内的验证与校验两个脚本在打包前都会运行 glibc 兼容性校验脚本verify-glibc-requirements.sh例如EXPECTED_GLIBC_VERSION${EXPECTED_GLIBC_VERSION} \ EXPECTED_GLIBCXX_VERSION${GLIBCXX_VERSION} \ SEARCH_PATH../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH} \ ./build/azure-pipelines/linux/verify-glibc-requirements.sh打包完成后还会为每个归档生成 SHA-256 与 SHA-1 校验和文件*.sha256、*.sha1这解释了 Release 页面上每个 tar.gz 旁的校验文件来源。用户在下载归档后可用校验和验证完整性。远程服务器下载地址的注入Remote-SSH / Remote-WSL 在远程主机上需要下载 reh 归档该下载地址在构建期被注入到产品元数据中。补丁 patches/00-remote-add-url.patch 在build/gulpfile.reh.ts与build/gulpfile.vscode.ts中注入了如下模板json.serverDownloadUrlTemplate https://github.com/!!ASSETS_REPOSITORY!!/releases/download/!!RELEASE_VERSION!!/!!APP_NAME_LC!!-reh-${os}-${arch}-!!RELEASE_VERSION!!.tar.gz;即远程扩展下载的正是*-reh-os-arch-version.tar.gz归档与上文构建产物命名严格对应。可以推断${os}与${arch}在远程主机上被动态替换为实际平台值从而精准命中对应架构的 reh 包。CLI 对 reh-web 的下载依赖codium serve-web本身由 CLIRust 编写的code二进制驱动它会按需下载并运行 reh-web 归档。补丁 patches/40-cli-use-reh-archive.patch 在cli/src/update_service.rs中给出了下载 URL 的完整拼装逻辑let download_url format!( {}/download/{}/{}-reh-web-{}-{}-{}.tar.gz, download_endpoint, release.name, app_name, release.platform.os(), release.platform.arch(), release.name, );对应关系一目了然codium serve-web下载的正是*-reh-web-os-arch-version.tar.gz与官方文档中 Web Host 是codium serve-web的服务器组件 的定义完全吻合。同时该补丁还允许通过环境变量VSCODE_CLI_APP_NAME、VSCODE_CLI_DOWNLOAD_ENDPOINT、VSCODE_CLI_UPDATE_ENDPOINT等定制下载源实际取值见 build_cli.shexport VSCODE_CLI_APP_NAME$( echo ${APP_NAME} | awk {print tolower($0)} ) export VSCODE_CLI_BINARY_NAME$( node -p require(\../product.json\).serverApplicationName ) export VSCODE_CLI_UPDATE_ENDPOINThttps://raw.githubusercontent.com/VSCodium/versions/refs/heads/master由此可见reh 与 reh-web 并非孤立的额外文件而是被深度集成进 CLI 下载链路reh-web与远程扩展下载链路reh的正式分发物。如何获取与使用这些归档获取方式两种归档都随每次 VSCodium Release 一并发布命名遵循统一模板vscodium-reh-os-arch-version.tar.gzvscodium-reh-web-os-arch-version.tar.gz其中os与arch的组合覆盖 x64、arm64、armhf 以及仓库支持的 ppc64le、riscv64、loong64、s390x 等架构Linux 平台参见 build/linux/package_reh.sh 中各架构的构建分支Alpine 平台参见 build/alpine/package_reh.sh。每个归档都配套.sha256与.sha1校验文件可用于下载后的完整性校验。使用方式reh无需手工部署。在本地 VSCodium 中通过 Remote-SSH / Remote-WSL 连接远程主机时客户端会自动下载、解压并启动对应平台的 reh 归档。若需手动部署可将归档上传到远程机器解压按官方远程扩展的指引配置启动参数。reh-web在已安装 VSCodium CLI 的机器上直接运行codium serve-web服务启动后用浏览器访问命令输出的本地地址即可获得完整的 VSCodium 编辑器界面。其底层下载、解压与启动 reh-web 归档的流程由 CLI 自动完成见上文 patches/40-cli-use-reh-archive.patch 中的下载逻辑。平台与依赖注意事项Linux reh/reh-web 归档针对特定 glibc 版本构建构建脚本中声明了GLIBC_VERSION与GLIBCXX_VERSION并强制通过verify-glibc-requirements.sh校验因此旧版 glibc 的发行版可能无法直接运行这是部署到老旧服务器时最常见的坑Alpinemusl用户应选用alpine平台标记的归档而非通用linux标记因为两者依赖的 libc 不同riscv64 等新架构需要额外的 Node.js 构建源见 build/linux/package_reh.sh 中对riscv-forks/node-riscv仓库的引用并非所有架构都有现成官方 Node 预编译产物。总结一句话概括二者的分工reh 把远程机器变成可开发的主机reh-web 把编辑器变成可浏览器访问的网页。在本仓库中这两类归档由 build/linux/package_reh.sh 与 build/alpine/package_reh.sh 构建通过 patches/00-remote-add-url.patch 接入远程扩展的下载链路通过 patches/40-cli-use-reh-archive.patch 接入codium serve-web的下载链路。理解了这两条链路也就理解了 VSCodium 在没有桌面客户端参与时如何依然提供完整的远程与浏览器开发能力。【免费下载链接】vscodiumbinary releases of VS Code without MS branding/telemetry/licensing项目地址: https://gitcode.com/gh_mirrors/vs/vscodium创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考