# VSCode 隧道功能

# 为什么需要 VSCode 隧道?

自己搭建内网穿透的服务器不仅成本高同时带宽小。使用微软提供的中继服务器(虽然有安全风险)可以节省不少操作和成本。

# 前提需要

  1. 服务端 VSCode CLI
    https://code.visualstudio.com/#alt-downloads

  2. 客户端 VSCode(1.74+) + Tunnel(Microsoft)插件(或者直接使用 vscode.dev 在线编辑器)

# 服务端安装步骤 (Linux 篇)

  1. 前提需要 下载 VSCode CLI,选择对应版本:

  2. 下载后使用 tar 解压

    h
    tar -xvzf {压缩包的名称}
  3. 解压后当前目录下会有 code 二进制程序

  4. 先后执行以下命令:

    h
    ./code tunnel --accept-server-license-terms


    首次运行将会弹出一个登陆网址和 8 位数的 code。复制登陆网址 https://github.com/login/device 到浏览器中登陆对应的 GITHUB 账户,并将 code 输入以完成服务器注册:

    随后 CTRL+C 退出该程序,执行下述命令使得 code 以用户服务守护运行:

    h
    ./code tunnel service install


    P.S. 在使用 systemctl 管理的 linux 服务器上,服务将可以使用 systemctl 进行管理,服务名为 code-tunnel

  5. 设置服务自启

    h
    systemctl --user enable --now code-tunnel

    P.S. 由于用户服务默认会在用户登出时退出运行,因此还需要以下步骤:
    参考 https://wiki.archlinux.org/title/Systemd/User#Automatic_start-up_of_systemd_user_instances
    使用命令

    h
    loginctl enable-linger {你的用户名}

    同时修改默认的 用户服务

    h
    vim /home/{你的用户名}/.config/systemd/user/code-tunnel.service

    将其部分内容修改为:

    WantedBy=default.target
    

    WantedBy=multi-user.target 修改为 WantedBy=default.target
    之后重新 enable 服务

    h
    systemctl --user enable --now code-tunnel
  6. 查看服务的运行状态 (可选)

    h
    systemctl --user status code-tunnel

可能遇到的问题:

  1. 对于 Centos7 来说,无法使用 systemctl --user ... 启动用户服务,会提示 dbus 找不到文件 (systemd 219 版本不支持 --user)
    • 自己写全局 service,使用 sudo 指令(需要拥有 sudo 权限)
    • 换其他系统例如 ubuntu 或者 arclinux

# 服务端安装步骤 (Windows 篇)

1-3 步与 Linux篇 类似,下载的压缩包为 zip 格式。

  1. 解压后同样在 code 的目录下以管理员的命令执行
    h
    ./code tunnel service install
    首次安装与 Linux篇
    注意:
    1. 如果使用大写请不要使用 Cas Lock 大小写切换键,请使用 shift+a-z 输入大写
    2. 单独下载 CLI,不要使用 VSCode Desktop(自带的可能造成直接进入 password 无法输入 username 等情况)
      安装后与 Linux篇 同样的使用方式

可能出现的问题:

  1. 当前服务由于登陆失败导致无法运行
    解决方法 https://stackoverflow.com/questions/44604523/error-1069-the-service-did-not-start-due-to-logon-failure-tried-everything
    • win+R 运行 secpol.msc 进入本地策略组
    • 将当前用户加入到允许以服务运行的白名单中

# 客户端

  1. 使用 VSCode 桌面端

    • 启动 VSCode,安装 tunnel 插件

    • 进入页面

    • 选择指定的服务器进行连接,该操作与 remote ssh 相同

  2. 直接使用 VSCode 网页(可选)

    • 进入之前服务器安装后的提示的网址 https://vscode.dev/tunnel/{你的tunnel名称}
    • 如果忘记了 tunnel 名称,可以在服务器上执行
    h
    ./code rename {你要设置的tunnel名称}
更新于 阅读次数