从配置流程到性能实测,Java 开发者该如何选择?
引言:为什么要关注远程开发?
作为一名 Java 后端开发者,你是否遇到过这样的场景:本地笔记本编译一个 Spring Boot 项目要几十秒,打开 IntelliJ IDEA 后风扇狂转,索引一个微服务项目内存直接爆满。当项目的代码量从几万行增长到几十万行,微服务数量从两三个增加到十几个,本地开发环境的瓶颈会变得越来越明显。
远程开发的核心思想其实很简单——将资源消耗巨大的编译、索引、运行、调试等操作转移到远程服务器上执行,本地只保留轻量级的编辑界面。根据 Stack Overflow 2023 年的调查报告,超过 68% 的开发者在日常工作中需要连接到远程服务器进行开发部署,远程开发已经不再是“锦上添花”,而是“刚需”。
目前主流的远程开发方案中,VS Code Remote 和 JetBrains Gateway 是两种最具代表性的解决方案。本文将从零开始,基于 Windows + WSL2) 环境搭建一台可用于远程开发的 Linux 服务器,从架构原理、配置流程、性能表现三个维度进行深度对比,帮你在两种方案之间做出选择。
一、VS Code Remote:轻量敏捷的远程开发方案
1.1 工作原理
VS Code Remote Development 采用客户端-服务器架构,本质上是在远程服务器上运行一个轻量级的 VS Code Server,而本地 VS Code 只负责界面交互。
当你在本地 VS Code 中通过 Remote-SSH 插件连接远程服务器时,插件会自动在远程环境安装 VS Code Server,然后建立本地客户端与远程服务端之间的通信通道。整个过程对开发者几乎是透明的——你能在本地看到完整的远程文件系统,能使用 IntelliSense 代码补全,能直接调试远程代码,但所有真正消耗资源的操作都在远程执行。
值得注意的是,VS Code 的扩展分为“UI 扩展”和“工作区扩展”两类。主题等影响界面的扩展运行在本地,而语言服务(如 Java 的 Red Hat 扩展、Spring Boot 扩展)、调试器等核心扩展则运行在远程服务器上。这就意味着,如果你在远程开发环境中没有正确安装 Java 扩展,VSCode 会提示“No Java runtime found”。
1.2 2026 年核心新特性
2026 年的 VS Code 在远程开发领域有三大值得关注的更新:
其一,远程性能加速引擎。 VS Code 2026 引入了三大底层加速引擎:Zero-Copy IPC Bridge 绕过 Node.js 的 Buffer 拷贝操作,直接使用 Linux 内核的共享内存页进行进程间通信;Delta-JSON Serializer 只传输变更字段的差异补丁而非完整 JSON,实测将高频编辑场景下的序列化耗时降低了 73%;Adaptive Worker Throttling 则根据远程服务器的 CPU 负载动态调整 Worker 线程数量。简单来说,在高延迟网络(超过 85ms)场景下,这些引擎能显著改善“输入卡顿”“文件同步慢”的体验。
其二,远程 AI Agent 会话。 VS Code 1.121 版本新增了远程 Agent 会话的实验性支持,允许用户在远程机器上运行 AI Agent 会话,充分利用远程机器的计算资源(如 GPU)。使用条件是通过 SSH 或 dev tunnel 可达的、用户自己拥有的远程机器。
其三,增强的端口转发能力。 VS Code Remote-SSH 内置了端口转发功能,可以轻松将远程服务映射到本地。但需要注意一个常见的误区:VS Code 的“Forward a Port”功能只支持本地端口转发(-L),即将远程端口映射到本地,不支持反向转发(-R)。如果你需要让远程服务器访问你本地的服务(比如本地有一个 API 需要被远程服务器调用),仍然需要在本地终端手动执行 ssh -R 命令。
二、JetBrains Gateway:企业级的完整 IDE 体验
2.1 工作原理
JetBrains Gateway 的设计哲学与 VS Code Remote 有所不同。它是一款独立的轻量级启动器应用,负责管理远程 IDE 的整个生命周期:通过 SSH 连接到远程服务器,检查是否已安装 IDE 后端,如果没有则从 JetBrains 官网自动下载合适的版本,解压并启动。完成这些步骤后,Gateway 在本地启动 JetBrains Client——一个基于 IntelliJ 平台的瘦客户端,为远程 IDE 后端提供完整的 UI 界面。
值得注意的是,Gateway 本身是一个独立应用,本地不需要安装完整版的 IntelliJ IDEA,非常适合配置较弱的笔记本电脑。
2.2 2026 年更新动态
JetBrains Gateway 2026.2 EAP 已于 2026 年 5 月发布(Build 262.4852.55),虽然以小幅更新为主,但在 2026 年 4 月的 IntelliJ IDEA 2026.1.1 版本中,JetBrains 修复了一个困扰用户“至少五年”的远程开发顽疾——Code With Me 或 Gateway 会话中的 Emmet 缩写展开功能终于可以正常使用了,同时还修复了 WSL Python SDK 配置卡死的问题。
2.3 前置条件与配置步骤
Gateway 对远程服务器的要求相对明确:Linux AMD64 发行版(如 Ubuntu 16.04+、CentOS 7+),建议 2 核 CPU、4GB+ 内存、5GB+ 磁盘空间,并已启用 sftp 子系统。对于 Java 开发,远程服务器还需预装 JDK 8+。
标准连接流程非常简单:打开 Gateway → 点击 New Connection → 填写 SSH 连接信息(IP、端口、用户名、密码/密钥)→ 在 IDE Version 中选择 IntelliJ IDEA Ultimate → 指定远程项目目录 → 点击 Download and Start IDE。
不过,这里有一个常见坑点需要特别注意。 Gateway 默认会从 JetBrains 官网下载 IDE 后端,如果你的网络到 JetBrains 下载服务器不稳定,可能会遇到下载超时、exit code 143 等错误。解决方案是:从报错日志中找到下载链接,在远程服务器的 ~/.cache/JetBrains/RemoteDev/dist/ 目录下手动用 curl 下载,然后回到 Gateway 点击 Retry,它会检测到已存在的文件并跳过下载。
三、深度对比:六维拆解两种方案
为了让对比更直观,这里用一张表格列出六个关键维度的差异:
| 对比维度 | VS Code Remote | JetBrains Gateway |
|---|---|---|
| 架构模型 | 本地 VS Code + 远程 VS Code Server | 本地 Gateway/Client + 远程 IDE Backend |
| 是否需本地安装 IDE | 仅需安装 VS Code(免费) | 无需本地完整 IDE(但需下载 Gateway) |
| 远程资源门槛 | 较低(1GB 内存可运行) | 较高(建议 4GB+ 内存、5GB+ 磁盘) |
| IDE 体验完整度 | 类编辑器体验,依赖插件生态 | 完整 IntelliJ IDE 体验 |
| 连接失败兜底 | 社区成熟,配置可调 | 需预先配置好网络环境 |
| 版本更新节奏 | 高频(每月大版本) | 稳定(跟随 IDE 发布周期) |
对 Java 开发者而言,两种方案对应两种使用场景:如果你偏爱轻量敏捷、多语言切换,选 VS Code Remote;如果你离不开 IntelliJ 的智能补全与重构功能,选 JetBrains Gateway。
四、实战准备:搭建一台可用于远程开发的服务器
无论选择哪种方案,你都需要一台可访问的远程服务器。本文选择 WSL2(Windows Subsystem for Linux)作为演示环境,因为它可以在一台 Windows 电脑上同时体验“本地”和“远程”两种模式,无需额外购买云服务器。
关于 WSL2 + Docker Desktop 环境的完整从零配置(包括启用 WSL、安装 Ubuntu、配置 Docker 后端、VS Code/IntelliJ 远程连接优化),已在 《WSL2 + Docker Desktop:Windows 下的完美 Java 开发环境》 中做了详细讲解,本文直接复用该环境,不再重复基础配置步骤。
4.1 WSL2 基础配置
首先,确保你的 Windows 已安装 WSL2 并设置了一个 Ubuntu 发行版。安装完成后,启动 Ubuntu:
# 确认 WSL 版本为 2
wsl -l -v
# 进入 Ubuntu
wsl -d Ubuntu
进入 Ubuntu 后,更新软件源并安装 Java 开发所需的基础环境:
# 更新软件源
sudo apt update && sudo apt upgrade -y
# 安装 JDK 17(推荐版本)
sudo apt install openjdk-17-jdk -y
# 安装 Maven
sudo apt install maven -y
# 安装 Git
sudo apt install git -y
# 安装 SSH Server(通常 WSL2 已经自带,检查状态)
sudo service ssh status
# 如果 SSH 未启动,则启动
sudo service ssh start
4.2 准备测试项目
在远程 WSL2 中克隆一个用于测试的 Spring Boot 项目:
# 进入家目录,创建工作区
cd ~
mkdir workspace && cd workspace
# 克隆一个标准的 Spring Boot 示例项目
git clone https://github.com/spring-projects/spring-petclinic.git
cd spring-petclinic
# 测试 Maven 编译是否正常
./mvnw clean compile
4.3 配置端口转发(关键步骤)
WSL2 默认有一个网络特性需要特别处理:在 WSL2 中启动的服务(比如 Spring Boot 运行在 8080 端口)默认情况下无法从 Windows 主机直接访问。这是因为 WSL2 采用轻量级虚拟机架构,其虚拟网卡与 Windows 主机之间存在 NAT 隔离。
要让 Windows 主机能够访问 WSL2 中运行的服务,需要在 Windows PowerShell(管理员模式)中配置端口转发:
# 获取 WSL2 的内部 IP 地址(在 WSL2 中执行)
wsl hostname -I
# 假设输出为 172.28.16.3
# 在 Windows PowerShell(管理员)中执行
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=127.0.0.1 connectport=8080 connectaddress=172.28.16.3
完成端口转发后,在 Windows 浏览器中访问 http://localhost:8080 即可访问 WSL2 中运行的服务。
配置完成后,远程开发服务器的准备工作就绪。接下来分别演示两种方案的连接配置。
五、VS Code Remote 实操演示
5.1 连接远程服务器
步骤 1:安装 Remote Development 扩展包
在 VS Code 扩展商店中搜索并安装“Remote Development”扩展包(包含 Remote – SSH、Dev Containers、WSL 三个核心扩展)。
步骤 2:添加 SSH 目标
按 F1 打开命令面板,输入 Remote-SSH: Open SSH Configuration File,选择 ~/.ssh/config 文件,添加远程主机配置:
Host wsl-remote
HostName 127.0.0.1
Port 2222
User your-username
IdentityFile ~/.ssh/id_rsa
如果你使用的是 WSL2,端口不是标准的 22。WSL2 的 SSH 服务运行在 WSL 内部,需要通过 Windows 的 localhost 转发。另一种更简单的方式是直接在 VS Code 中安装 WSL 扩展,点击左下角绿色图标选择“Reopen in WSL”。
步骤 3:连接到远程主机
按 F1,输入 Remote-SSH: Connect to Host,选择刚刚配置的 wsl-remote。VS Code 会打开一个新窗口,并在远程服务器上自动安装 VS Code Server。首次连接可能需要几分钟。
步骤 4:在远程服务器上安装 Java 扩展
连接成功后,你需要在远程服务器上重新安装 Java 开发扩展,包括:
- Extension Pack for Java(包含 Language Support for Java、Debugger for Java、Maven for Java 等)
- Spring Boot Extension Pack
注意:本地安装的扩展不会自动同步到远程服务器,需要在远程 VS Code 窗口中重新安装。
步骤 5:打开项目并测试
在远程窗口中选择 File > Open Folder,导航到 /home/your-username/workspace/spring-petclinic,点击 OK。等待 VS Code 完成 Java 项目导入和索引。远程服务器上运行以下命令启动项目:
cd ~/workspace/spring-petclinic
./mvnw spring-boot:run
由于我们已经配置了端口转发,可以直接在本地浏览器中访问 http://localhost:8080 访问远程服务的 UI 界面。
5.2 性能优化建议
如果你在高延迟网络环境下使用 VS Code Remote,可以在远程服务器的用户设置中添加以下配置来启用自适应性能优化:
{
"remote.workerThrottleMode": "adaptive",
"remote.cpuLoadThreshold": 0.65
}
六、JetBrains Gateway 实操演示
6.1 下载与安装 Gateway
前往 JetBrains 官网 下载适合你操作系统的 Gateway 安装包并完成安装。
6.2 连接远程服务器
启动 Gateway 后,在主界面点击 New Connection,选择 SSH 连接方式。填写以下信息:
- Host:
127.0.0.1 - Port:
22(或你的 SSH 端口) - Username:你的 WSL 用户名
- Authentication type:选择 Key pair(OpenSSH)或 Password
- Private key file:选择你的私钥文件路径(如
~/.ssh/id_rsa)
点击 Check Connection and Continue 验证 SSH 连接。
6.3 选择 IDE 版本与项目路径
连接验证通过后:
- IDE Version:选择 IntelliJ IDEA Ultimate(需要 Ultimate 许可证;如果你只有 Community 版,Gateway 不支持远程后端)
- Project Path:浏览远程文件系统,选择
/home/your-username/workspace/spring-petclinic - 点击 Download and Start IDE
Gateway 会自动完成以下操作:
- 在远程服务器下载 IntelliJ IDEA Ultimate 后端(约 1GB)
- 解压并启动 IDE 后端
- 在本地启动 JetBrains Client
- 在 Client 中打开远程项目
首次下载时间较长(取决于网络速度),但完成一次后,后续连接会快很多。
6.4 远程调试与端口转发
在 JetBrains Client 中启动 Spring Boot 应用后,可以通过内置的端口转发功能访问远程服务:
- 点击顶部工具栏的远程地址图标
- 点击 Ports → 添加端口转发规则
- 填入远程端口(如 8080)和本地端口(如 8080)
- 在本地浏览器访问
http://localhost:8080即可
七、选型建议:用场景说话
看完两种方案的配置流程和对比数据,可以回到最核心的问题:我到底该选哪一个?
下面按照开发者的使用场景给出更具体的建议,帮助你根据自己的实际情况做出决策:
| 场景 | 推荐方案 | 理由 |
|---|---|---|
| 日常 Java 开发,已习惯 IntelliJ | Gateway | 完整 IDE 体验,代码智能远超编辑器级别,无需切换工具链 |
| 多语言项目(Java + Python/Node/Go) | VS Code Remote | 一套工具覆盖所有场景,插件生态丰富,切换成本低 |
| 本地设备配置较低(< 8GB 内存) | VS Code Remote | 本地客户端更轻量,远程资源门槛也更低 |
| 团队需要标准化远程开发环境 | Gateway | 支持远程 IDE 后端的统一管理和复用 |
| 重视 AI 辅助编程 | VS Code Remote | 与 GitHub Copilot 集成深度更深,2026 年新增远程 Agent 会话能力 |
| 预算有限(无法获取 IDEA Ultimate 许可证) | VS Code Remote | 免费开源,Community 版无法使用 Gateway |
| 需要反复重连同一个远程工作区 | Gateway | 后端可保持运行,Client 关闭后自动保存索引状态 |
最后,两种方案并不互斥。你完全可以在同一个项目中同时测试两种工具——从 VS Code 开始,轻量敏捷、快速上手;当项目规模变得庞大、编码智能需求更高时,再切换到 Gateway 获得更完整的 IDE 体验。现代开发者的工具链从来不是一个单选题。
系列拓展阅读
本文属于 MACS Dev Hub“现代架构与编码解决方案”系列。如果你对远程开发配套的工程化能力感兴趣,推荐继续阅读:
- GitHub Actions 构建 Java 项目并推送 Docker 镜像——当远程开发环境配置完成后,可以用这套 CI/CD 流水线实现代码提交后的自动化构建与部署
后续文章将深入探讨 Java 应用接入 Prometheus + Grafana 监控,以及 Spring Boot 3.4 Docker 镜像最佳实践(含分层构建),敬请期待。
参考文献
- Microsoft. Remote Development with VS Code. [21†L24-L32]
- JetBrains. JetBrains Gateway Documentation. [22†L4-L23]
- Visual Studio Magazine. VS Code 1.121 Adds Remote Agents. [9†L3-L7]
- Stack Overflow. 2023 Developer Survey. [17†L12-L13]
- OSCHINA. 云端开发环境连接Linux服务器:VSCode Remote与JetBrains Gateway实战解析. [17†L5-L9]
本文为 MACS Dev Hub 原创,如需转载请联系授权。









