vscode 是一个非常棒的开发工具。通过 ssh remote 工具可以远程调试服务器。但是如何转发remote的图形呢?试过网上很多教程讲解使用ssh remote X11 插件, 我都失败了。经过折腾,h还是原生的 ssh remote 最好用解决。不用 vscode 也可以。
本地【客户端】 -> 远程【服务端】。怎么在【客户端】里调用【服务端】的窗口服务?
1. 客户端装 x11
Mac【客户端】
mac 为 XQuartz,安装之后,打开放在后台就可以。
Windows【客户端】
还需要修改 Windows 环境变量。这是往往被忽略的
> 修改系统环境变量,添加`DISPLAY`,值为`localhost:0.0`.
2. 【客户端】修改 ssh
【客户端 VSCODE】修改 ~/.ssh/config , 启用带 x11 的 ssh 连接
Host 为好记的名字
HostName 为IP或域名
或者【ssh -Y】直接连接
要通过ssh连接远程主机并打开图形界面,需要使用 -X 或 -Y 标志打开X11转发。这两个标志都开启了X11转发,但-Y标志启用了"trusted X11 forwarding",它将更加安全地转发X11连接,因此建议使用-Y标志。
ssh -Y username@hostname -p port
3. 验证
【客户端】安装成功与否
#本地【客户端 macOS】
> echo $DISPLAY
/private/tmp/com.apple.launchd.lSP9O5R0Mh/org.xquartz:0
#本地【客户端 Windows】
> echo %DISPLAY%
localhost:0.0
【服务端】是否工作
可以看看【服务端】环境变量`DISPLAY`。如果有顺利显示,则表明使用了带 x11 的 ssh连接。第一步正确。
$ echo $DISPLAY #在服务器端
#来自 macOS 的 ssh 连接
/private/tmp/com.apple.launchd.dqy4oufIiA/org.xquartz:0
#来自 windows 的 ssh 连接
localhost:0.0
再在【服务端】运行 `xeyes` ,查看是否能正在运行。
$ xeyes
如果出现下面 `Error: Can't open display:` ,表示配置错误。翻看上面步骤。