JetBrains Gateway远程开发初体验
介绍
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,主要特点是轻量,占用空间和启动时间少,针对云计算和云应用程序进行了优化。
不过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的软件有:
经验证(截至2021.12.04),使用IDE里面的Gateway功能比独立的JetBrains Gateway好用,不会出现连接过程中卡死的情况。
当然使用本地IDE内地Gateway功能还有另外一个好处是Linux上面的IDE可以使用本地IDE的许可证(狗脸)。
连接
点击新建一个SSH连接
填好后点击继续
选择IDE版本、工作目录后点击确认按钮就可以自动下载IDE并配置了,稍等片刻就会弹出一个IDE窗口,期间不用配置任何东西,够傻瓜式。
原理
Remote development overview | IntelliJ IDEA
远程开发总共有两种模式:
- server to client:在server上启动 IDE Backend获取链接,client连接
- client to server:server上没有安装IDE,client使用Gateway为server自动配置好环境并连接
一般用户使用client to server模式多一点,流程如下:
- client下载并安装 JetBrains Gateway
- 启动Gateway,选择Connect via SSH以连接到server
- 如果server上没有 IDE,JetBrains Gateway 会下载它。IDE 可以从 JetBrains 服务器下载、从client计算机上传或从自定义位置下载。
- client通过RD协议与IDE Backend互联,下载特定版本的JetBrans Client。
- JetBrains Gateway 在server上启动 IntelliJ IDEA进程,建立 TCP 隧道,并使用适当的参数启动 JetBrains Client 以使其可以连接。