当前位置:首页 > 文章列表 > 文章 > 软件教程 > VS Code Remote Tunnels 怎样让隧道在后台持续运行

VS Code Remote Tunnels 怎样让隧道在后台持续运行

来源:17golang原创 2026-11-04 11:39:35 0浏览 收藏

VS Code Remote Tunnels 想在远程机器上“后台持续运行”,要先分清两个问题:code tunnel service install 负责把隧道安装成服务,code tunnel --no-sleep 负责避免远程机器因睡眠而中断。两者不是同一个开关。

官方地址:https://code.visualstudio.com/docs/remote/tunnels

最稳妥的顺序是:先确认隧道能正常连接,再安装服务;只有远程机器会自动休眠时,才在启动命令中加入 --no-sleep。最后从客户端 Remote Explorer 重新连接,确认左下角远程指示器已经进入远程状态。

先确认你操作的是远程主机

Remote Tunnels 的服务安装应该在“被连接的远程机器”上执行,而不是在日常使用的客户端上执行。如果把命令装在客户端,服务可能运行正常,但远程主机仍然不会出现在隧道列表中。

  1. 在远程开发机打开 VS Code,或进入已经安装 VS Code CLI 的远程 shell。
  2. 先用一次性的隧道连接确认登录账户、机器名称和目标文件夹都正确。
  3. 在客户端打开命令面板,运行 Remote Explorer: Focus on Remote View,记下列表中的远程主机名称。

如果你使用命令行,可以先查看帮助来确认当前 CLI 支持的服务命令。下面的命令只是入口说明,输出内容以当前本机安装的 CLI 为准。

# 在远程开发机确认 tunnel 子命令和服务入口
code tunnel --help

# 仅用于查看当前可用参数,不会自动安装后台服务
code tunnel service --help

继续条件:你能明确这台机器就是要被远程访问的主机,并且已经知道客户端会在哪个 Remote Explorer 条目中寻找它。

用 code tunnel service install 安装后台服务

确认主机后,在远程机器执行服务安装命令。官方文档把 service install 作为让 tunnel 以服务方式运行的入口;安装过程可能要求当前用户完成授权或确认服务条款,按终端提示完成即可。

# 在远程主机安装 tunnel 服务,让它不依赖每次手动打开桌面窗口
code tunnel service install

# 查看服务相关命令,便于后续卸载或排查
code tunnel service --help
远程开发软件界面中安装 Remote Tunnels 服务并显示已安装状态的操作示意图
图1:Remote Tunnels 服务安装入口与已安装状态的原创界面说明图,不是 VS Code 实际截图。

安装完成后不要马上关闭所有窗口就宣布成功。先回到客户端刷新 Remote Explorer,确认同一台远程机器仍然出现在隧道列表中;如果列表消失,优先回到远程主机检查授权和服务状态。

机器会休眠时再加上 no-sleep

服务安装和机器休眠是两层问题。即使 tunnel 服务已经安装,远程操作系统进入睡眠后,网络和进程仍可能暂停。官方文档提供 --no-sleep 选项,用于让启动隧道的命令阻止远程机器进入睡眠。

# 启动隧道并阻止远程机器因空闲进入睡眠
code tunnel --no-sleep

# 需要查看其他 tunnel 参数时使用帮助,不要把 --no-sleep 当成网络权限开关
code tunnel --help

如果你的远程主机本身由系统策略统一管理,是否允许阻止睡眠还要遵循组织策略。--no-sleep 不能修复账号授权失败、网络不可达或服务未安装等问题。

远程开发软件界面显示隧道在线、保持唤醒已启用和服务状态的结果示意图
图2:隧道在线与保持唤醒状态的原创结果示意图,不是运行截图。

继续条件:远程主机在预期的工作窗口内保持唤醒,Remote Explorer 中的隧道条目仍显示可连接;不要只根据命令没有报错来判断成功。

从客户端重新连接并核对可见状态

  1. 在客户端按 Ctrl+Shift+P(macOS 使用 ⇧⌘P)打开命令面板。
  2. 运行 Remote Explorer: Focus on Remote View,找到刚才的远程机器。
  3. 运行 Remote Tunnels: Connect to Tunnel,选择对应隧道。
  4. 连接后观察左下角的远程指示器,再打开一个远程文件夹。

验收状态不是“列表里有一个名称”这么简单,而是客户端完成连接后,远程指示器进入远程状态,远程文件夹可以打开,且编辑器使用的是远程主机上的环境。这样才能排除服务条目存在但连接没有真正建立的情况。

停止、卸载和回退怎么做

临时停止隧道时,按启动它的终端中的 Ctrl+C 即可。若已经安装成服务,不再需要后台运行,可以在远程主机执行卸载;如果还要移除这台机器与 tunneling 的关联,再执行 unregister。

# 临时停止当前前台 tunnel,先在运行它的窗口按 Ctrl+C
# 下面命令用于移除已安装的 tunnel 服务
code tunnel service uninstall

# 确认不再需要这台机器出现在隧道关联列表后再执行
code tunnel unregister

回退时建议一次只改变一个因素:先卸载服务,再从客户端重新连接;如果仍然异常,再检查授权、网络和远程主机是否休眠。不要为了“让列表看起来干净”直接删除所有账户关联。

常见现象和对应处理

现象优先判断处理方向
服务安装后客户端找不到主机命令是否在远程主机执行确认远程主机的授权与 tunnel 服务状态,再刷新 Remote Explorer。
退出 VS Code 后连接中断是否只有桌面会话在维持隧道检查服务安装是否完成,必要时改用 code tunnel CLI 入口。
夜间或空闲后无法连接机器是否进入睡眠在允许的情况下使用 code tunnel --no-sleep,并同时检查主机电源策略。
卸载后仍显示旧机器服务卸载与机器注销是两件事先等待客户端刷新;确认不再使用后,再执行 code tunnel unregister。

最后按这张清单确认

  • 服务安装命令是在远程开发机上执行的。
  • 只有需要避免系统睡眠时才使用 --no-sleep。
  • 客户端通过 Remote Explorer 重新连接,并能打开远程文件夹。
  • 临时停止用 Ctrl+C,永久回退用 service uninstall,注销机器前确认不再需要它。

这样配置后,Remote Tunnels 的“后台运行”就变成了可拆开的三个状态:服务是否安装、机器是否保持唤醒、客户端是否完成远程连接。遇到问题时逐层看状态,比反复重启客户端更容易定位。

相关问题

安装服务后还需要一直开着 VS Code 桌面窗口吗?

服务安装的目的就是减少对桌面窗口的依赖,但具体启动方式仍取决于你使用的是 VS Code CLI 还是桌面端,以及当前机器的授权状态。应以远程主机的服务状态和客户端实际连接结果为准。

--no-sleep 能解决网络断开吗?

不能。它针对的是远程机器进入睡眠的情况;账号授权、网络策略、服务进程退出等问题要分别排查。

什么时候应该执行 unregister?

只有在确定不再使用这台机器的 Remote Tunnel 关联时才执行。临时停用只需要停止 tunnel 或卸载服务,不必马上注销机器。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
VS Code Dev Containers 怎样为项目指定工作区挂载目录VS Code Dev Containers 怎样为项目指定工作区挂载目录
上一篇
VS Code Dev Containers 怎样为项目指定工作区挂载目录
GitHub Actions environments怎样给部署环境设置审批门槛
下一篇
GitHub Actions environments怎样给部署环境设置审批门槛
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    879次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    876次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    959次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    941次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    768次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议 和 隐私政策
返回登录
  • 重置密码