# VSCode 隧道功能
# 为什么需要 VSCode 隧道?
自己搭建内网穿透的服务器不仅成本高同时带宽小。使用微软提供的中继服务器(虽然有安全风险)可以节省不少操作和成本。
# 前提需要
- 服务端 VSCode CLI 
 https://code.visualstudio.com/#alt-downloads
- 客户端 VSCode(1.74+) + Tunnel(Microsoft)插件(或者直接使用 vscode.dev 在线编辑器) 
# 服务端安装步骤 (Linux 篇)
- 按 - 前提需要下载 VSCode CLI,选择对应版本:![]() 
- 下载后使用 tar 解压 - h - tar -xvzf {压缩包的名称} 
- 解压后当前目录下会有 - code二进制程序
- 先后执行以下命令: - 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
- 设置服务自启 - 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 
- 查看服务的运行状态 (可选) - h - systemctl --user status code-tunnel
可能遇到的问题:
- 对于 Centos7 来说,无法使用 systemctl --user ...启动用户服务,会提示 dbus 找不到文件 (systemd 219 版本不支持 --user)- 自己写全局 service,使用 sudo 指令(需要拥有 sudo 权限)
- 换其他系统例如 ubuntu或者arclinux
 
# 服务端安装步骤 (Windows 篇)
1-3 步与 Linux篇 类似,下载的压缩包为 zip 格式。
- 解压后同样在 code 的目录下以管理员的命令执行首次安装与h ./code tunnel service install Linux篇同
 注意:- 如果使用大写请不要使用 Cas Lock大小写切换键,请使用shift+a-z输入大写
- 单独下载 CLI,不要使用 VSCode Desktop(自带的可能造成直接进入 password 无法输入 username 等情况)
 安装后与Linux篇同样的使用方式
 
- 如果使用大写请不要使用 
可能出现的问题:
- 当前服务由于登陆失败导致无法运行
 解决方法 https://stackoverflow.com/questions/44604523/error-1069-the-service-did-not-start-due-to-logon-failure-tried-everything- win+R运行- secpol.msc进入本地策略组![]() 
- 将当前用户加入到允许以服务运行的白名单中
 
# 客户端
- 使用 VSCode 桌面端 - 启动 VSCode,安装 - tunnel插件![]() 
- 进入页面 ![]() 
- 选择指定的服务器进行连接,该操作与 - remote ssh相同![]() 
 
- 直接使用 VSCode 网页(可选) - 进入之前服务器安装后的提示的网址 https://vscode.dev/tunnel/{你的tunnel名称}
- 如果忘记了 tunnel名称,可以在服务器上执行
 - h - ./code rename {你要设置的tunnel名称} 
- 进入之前服务器安装后的提示的网址 








