介绍

Remote Development with JetBrains Gateway

JetBrains Gateway is a compact desktop app that allows you to work remotely with a JetBrains IDE without even downloading one
JetBrains Gateway是一个轻量的桌面应用程序,允许在不下载JetBrains IDE的情况下远程使用JetBrains IDE

白话介绍一下:通过使用该软件ssh连接到Linux环境,自动下载IDE到Linux并配置,稍等一会本地会弹出个IDE窗口进行工作。

具体效果看下图:

使用教程

Linux环境

Gateway目前只支持在Linux上配置(后续会支持macOS 和 Windows),所以需要一个Linux,由于用的是Windows,所以最简单方式就是安装一个VMware,然后到https://www.linuxvmimages.com/images/下载一个为VMware处理好的镜像,下载完成后直接打开即可。

第一个尝试的发行版是VMware官方制作的一个专门为云原生打造的发行版Photon,主要特点是轻量,占用空间和启动时间少,针对云计算和云应用程序进行了优化。

Introduction to Photon OS

不过Gateway对该镜像兼容性较差,会一直卡进度条,等了好久之后提示Failed to get IDE status in 60 seconds. Probably IDE backend is stuck。同样试过debian11也是如此。

  • 官方例举了几个支持的发行版:Ubuntu 16.04+、RHEL/Centos 7+ ,目前用的是centos8,比较稳定,不会出现重启后重连不上的情况。当然也可以在glibc-based docker中运行(例如Alpine就不属于)。
  • 推荐配置:2+ cores, 4GB+ of RAM, and 5GB+ of disk space

JetBrains

接着就是要下载软件连接了。可以直接下载JetBrains Gateway或者使用最新版IDE里面内置的Gateway软件

  • 在Gateway里面能下载的应用有:

IntelliJ IDEA Ultimate, PyCharm Professional, GoLand, WebStorm, CLion, PhpStorm, and RubyMine starting from version 2021.3 of these IDEs.

  • 最新版IDE里面内置Gateway的软件有:

Untitled

经验证(截至2021.12.04),使用IDE里面的Gateway功能比独立的JetBrains Gateway好用,不会出现连接过程中卡死的情况。

Untitled

当然使用本地IDE内地Gateway功能还有另外一个好处是Linux上面的IDE可以使用本地IDE的许可证(狗脸)。

连接

Untitled

点击新建一个SSH连接

Untitled

填好后点击继续

Untitled

选择IDE版本、工作目录后点击确认按钮就可以自动下载IDE并配置了,稍等片刻就会弹出一个IDE窗口,期间不用配置任何东西,够傻瓜式。

原理

Remote development overview | IntelliJ IDEA

Untitled

远程开发总共有两种模式:

  • server to client:在server上启动 IDE Backend获取链接,client连接
  • client to server:server上没有安装IDE,client使用Gateway为server自动配置好环境并连接

一般用户使用client to server模式多一点,流程如下:

  1. client下载并安装 JetBrains Gateway
  2. 启动Gateway,选择Connect via SSH以连接到server
  3. 如果server上没有 IDE,JetBrains Gateway 会下载它。IDE 可以从 JetBrains 服务器下载、从client计算机上传或从自定义位置下载。
  4. client通过RD协议与IDE Backend互联,下载特定版本的JetBrans Client。
  5. JetBrains Gateway 在server上启动 IntelliJ IDEA进程,建立 TCP 隧道,并使用适当的参数启动 JetBrains Client 以使其可以连接。