我可能有一个太基本的问题。我正在尝试在具有标准 Matlab GUI 的远程服务器上使用 Matlab。 (GUI 对于开发来说非常重要,例如调试;而且我确实需要在远程服务器上进行开发,因为我需要访问非常大的文件。)目前,我通过 ssh 使用 X11 转发,但那是非常缓慢,我从stackoverflow 上的这个问题VNC 可能是一个不错的选择。
此外,不知何故过了一段时间,当我尝试在 Matlab 中绘图时,弹出的 Matlab 图形窗口的新 X 窗口完全是空白的,并且 Matlab 命令窗口中出现错误。然后我不仅要关闭 Matlab,还要退出 ssh 会话并通过运行重新登录ssh -X
... 真的很不方便。
服务器的所有者要求我使用 Yubikey 生成一次性密码 (OTP),并通过ssh
.事实上,标准 VNC 端口在服务器上被阻止。所以,这就是我所做的:
- 通过运行以下命令在远程服务器上设置 VNC 会话:
vncserver :0
ssh
通过在本地计算机上的 OSX 终端窗口中运行来创建隧道:ssh -p4022 -N -L localhost:5901:localhost:5900 [email protected]
其中 代表
xxx.xxx.xxx.xxx
服务器的 IP 地址。我必须在这里使用我的 Yubikey,然后在服务器上输入我的用户密码。在我的本地计算机上运行 VNC 客户端,在终端中执行以下命令:
open vnc://localhost:5901
我需要在这里提供我第一次在第 1 点执行上述操作时创建的 VNC pw。
我此时的经验是,我似乎设法连接到服务器上运行的 VNC 会话,但我只能看到一个空白屏幕。
为什么我看不到操作系统的 GUI,然后离开并启动 Matlab - 这就是我在自己的 Raspberry pi 上要做的事情。可能这就是我缺乏 Linux 经验让我陷入困境的地方。
默认情况下实际上没有可用的 GUI 吗?我尝试startx
在服务器上运行,但可能什么也没发生。终端中的输出如下:
xinit: connection to X server lost
waiting for X server to shut down (II) Server terminated successfully (0). Closing log file.
有没有办法启动 x 应用程序、Matlab 或任何其他应用程序,并将其定向到特定的 VNC 桌面?如果我不需要每次想要关闭本地计算机上的 X 窗口时都关闭远程服务器上的 Matlab 会话,那么这将非常有用,但我可以重新登录到同一个远程 VNC 桌面。
如有任何意见,我们将不胜感激。也许我需要一些真正一步一步、准确的东西。
先感谢您!
塔马斯
编辑: 谢谢各位的意见。与此同时,我意识到服务器上实际上安装了 Gnome 桌面。因此,根据这张纸条我将最后一行添加到我的 ~/.vnc/xstartup 中,现在全文如下:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec /etc/X11/xinit/xinitrc
gnome-session &
然而,这并没有解决问题。事实上,跑步gnome-session
并不成功,就像跑步startx
不成功一样。我得到以下抛出
...
xinit: connection to X server lost
waiting for X server to shut down (II) Server terminated successfully (0). Closing log file.
因此,看来我们的 IT 人员首先需要对 Gnome 桌面安装进行故障排除。
否则,stackexchange 上的这个问题建议只有桌面可以通过 VNC 中继。