登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  文章 >  软件教程

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

来源:17golang原创

时间:2026-11-04 11:39:35 488浏览 收藏

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删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>