Skip to main content

用VSCode搭建远程开发环境

1. 应用场景

用VSCode进行远程开发十分强大,操作方便,以下梳理最常用的几种场景及关键步骤。

  • 连接Linux服务器开发: 公司的开发/测试机、云服务器(阿里云/腾讯云/AWS)。
  • 嵌入式开发:嵌入式的程序经常需要在开发板上跑,如树莓派、RK3588等。可以直接在开发板上搭建开发环境,然后用VSCode通过ssh远程连接到开发板,进行开发。
  • 统一团队开发环境: 针对依赖复杂、环境配置复杂的项目,用一台性能较高的主机,搭建统一的远程开发环境。
    • 团队成员一键重建完全相同的环境,告别“在我电脑上能跑”。
    • 与 CI/CD 流水线环境一致,避免环境差异导致的线上 Bug。
  • Windows下开发Linux程序(WSL): 使用 Windows 的 GUI 和 VSCode,但底层调用 WSL 中的 Linux 内核和工具链。

2. 安装必要扩展

在 VSCode 扩展市场搜索并安装:

  • Remote Development (Microsoft 官方出品),它会自动安装三个核心扩展:
    • WSL: 在Windows里直接调用Linux子系统(Windows Subsystem for Linux)作为开发环境,获得 Linux 般的开发体验。
    • Remote - SSH: 通过SSH连接远程服务器(如云主机、开发机),打开远程计算机的文件夹,可连接到任何位置,以达到“在本地VSCode上操作远程代码和环境”的目的。
    • Remote - Containers: 将容器(通常是Docker/Kubernetes的容器)作为完整的开发环境,实现团队环境一致、依赖隔离的开发体验。
    • Remote - Tunnels: 通过安全隧道将远程机器的 VSCode 服务映射到本地,无需配置 SSH 即可远程开发。

背景介绍:

2019 年5月3日,在PyCon2019大会上,微软发布了VS Code Remote,开启了远程开发的新时代!这次发布包含了三款核心的全新插件,它们可以帮助开发者在容器,物理或虚拟机,以及Windows Subsystem for Linux (WSL)中实现无缝的远程开发。通过安装Remote Development Extension Pack,你可以快速上手远程开发。Remote Development extension pack 包括三个扩展:Remote - SSHRemote - ContainersRemote - WSL

3. 三种主要远程开发模式

3.1. 🔹 SSH 远程开发 (最常用,连接Linux服务器)

适用场景:连接云服务器、公司开发机、树莓派等。

操作步骤

  1. F1Ctrl+Shift+P,输入 Remote-SSH: Open SSH Configuration File

  2. 选择配置文件

    • Linux 通常为 ~/.ssh/config目录(即/home/用户名/.ssh/config)
    • Windows 通常为 C:\Users\用户名\.ssh\config目录
  3. 添加相应的配置:

    Host my-server
    HostName 远端设备的IP
    User 远端设备的用户名
    Port 22
    IdentityFile ~/.ssh/id_rsa # 可选,私钥路径
  4. F1,输入 Remote-SSH: Connect to Host,选择上一步配置的远端服务器(如:Spencer-RK3588) 或者点击Add New SSH Host...然后输入SSH连接的命令(如:ssh [user]@[host_ip])。 (之后会弹出一个新的窗口)

  5. 选择目标服务器的的操作系统。

  6. 如果有提示SSH远程服务器的连接指纹已存在,选择Continue

  7. 输入远程设备对应用户名的密码。

  8. 最后可能会弹出一个配置提示。

  9. 新窗口打开后,输入密码(若未配置密钥)。

  10. 连接成功后,左下角显示 SSH: my-server

提效配置

  • 免密登录:ssh-copy-id user@host
  • 保持连接:设置 Remote.SSH: Keep Alive Interval 为 60。

3.2. 🔹 开发容器 (Dev Containers)

适用场景:统一团队开发环境、避免污染本机、应对复杂依赖。

操作步骤

  1. 在项目根目录创建 .devcontainer/devcontainer.json
  2. 以Python环境为例,简单示例如下:
{
"name": "Python Dev",
"image": "mcr.microsoft.com/devcontainers/python:3.11",
"customizations": {
"vscode": {
"extensions": ["ms-python.python"]
}
},
"postCreateCommand": "pip install -r requirements.txt"
}
  1. F1Rebuild and Reopen in Container

3.3. 🔹 WSL 远程开发 (Windows用户)

适用场景:在Windows上开发Linux应用。

前提条件:已安装 WSL2 和 Linux发行版(如Ubuntu)。

操作步骤

  1. 打开 VSCode。
  2. F1Remote-WSL: New Window
  3. 选择你的 WSL 发行版。
  4. 在底部终端会看到 WSL: Ubuntu 状态。

4. 常用快捷键和设置

操作快捷键/命令
重新连接Ctrl+Shift+PRemote-SSH: Connect to Host
断开连接左下角齿轮 → Close Remote Connection
端口转发Ports 面板(远程服务的端口自动映射到本地)
在本地打开终端`Ctrl+`` (默认打开远程终端)
同步设置开启 Settings Sync,不同环境的配置可独立

5. 实用技巧

5.1. 端口转发(自动/手动)

  • 自动:远程服务监听 0.0.0.0localhost,VSCode 会弹窗提示转发。
  • 手动:在 Ports 面板点 "Forward Port",输入远程端口(如 8888),访问本地的 http://localhost:8888 即可。

5.2. 多窗口管理

  • 本地和远程可以同时打开不同文件夹。
  • 每个远程连接独立窗口,左下角显示状态。

5.3. 性能优化

// settings.json
"remote.SSH.showLoginTerminal": true, // 显示完整的SSH连接日志
"remote.SSH.remotePlatform": {
"my-server": "linux" // 明确指定平台,加速连接
}

5.4. 调试远程代码

  • 断点、变量查看、调用栈都正常工作。
  • 支持本地和远程混合调试(如前端本地,后端远程)。

6. 常见问题

Q: 连接超时? A: 检查防火墙/安全组,或增加 ServerAliveInterval 60 到 SSH config。

Q: 扩展安装失败? A: 部分扩展需要单独安装在远程端,VSCode 会提示,点击 "Install in SSH: xxx" 即可。

Q: 如何在远程使用 git? A: 远程机器需安装 git,VSCode 的 SCM 面板会直接调用。

Q: 文件怎么从远程传到本地? A: 右键文件/文件夹 → "Download..." 或者用 scp 命令。

7. 进阶场景

7.1. VS Code Server 自定义安装路径

若远程主机的 home 目录空间不足:

# 连接前设置环境变量
export VSCODE_SERVER_DIR=/data/vscode-server

7.2. 多跳 SSH(跳板机)

Host target
HostName 最终服务器IP
User username
ProxyJump jumpserver

7.3. 结合 GitHub Codespaces

完全云端的开发环境,配置与 devcontainer.json 兼容。


建议从这里开始

  1. 先尝试 SSH 连接一台远程服务器。
  2. 打开一个项目文件夹,安装需要的语言扩展(Python/Node.js 等)。
  3. 体验调试和终端操作的流畅度。

碰到具体连接问题或配置细节,可以告知使用场景(比如是什么操作系统、连接什么服务器),以便获取更具针对性的建议。

摘要:本文全面介绍VSCode远程开发,从安装必要扩展入手,阐述SSH、开发容器、WSL三种主要远程开发模式的适用场景与操作步骤,还分享常用快捷键、实用技巧,解答常见问题,并提及进阶场景,最后给出上手建议。