我的服务器上安装了哪个 X Window 系统可以与 Xming 配合使用

我的服务器上安装了哪个 X Window 系统可以与 Xming 配合使用

我想使用 Xming 连接服务器并设法让它工作。我现在试图让它连接到不同的服务器,但我不确定安装了哪个 X Window 系统。我通过 putty 尝试过,收到以下错误/警告:

/usr/java/jdk1.7.0_67/bin> jvisualvm /usr/java/jdk1.7.0_67/lib/visualvm/platform/lib/nbexec: WARNING: environment variable DISPLAY is not set

我之前使用 Windows BAT 脚本来启动 XWindows - 如下所示:

@echo off
SET LOCAL_HOST=localhost
SET PATH=C:\wresourcex\bin\Xming

SET REMOTE_HOST=%1
SET SCREEN=%2

REM Default to archie with screen 1
if "%1"=="" SET REMOTE_HOST=MySever.com
if "%2"=="" SET SCREEN=0

SET DISPLAY=%LOCAL_HOST%:%SCREEN%.0

REM For XDM logon just run this line
REM run Xming -query %REMOTE_HOST% -lesspointer -emulate3buttons

REM For SSH Tunneling use these 2 lines
rem run Xming :%SCREEN% -lesspointer -notrayicon -emulate3buttons
run plink -ssh -X %REMOTE_HOST% /usr/dt/bin/Xsession

REM Use this if want Gnome instead
rem run plink -ssh -X %REMOTE_HOST% /usr/bin/gnome-session

上述内容适用于一台服务器,但不适用于我现在使用的服务器。我查看了 /usr/dt/bin/ 和 /usr/bin 文件夹,这两个程序(在脚本中引用)都不存在于这些位置。我猜我需要使用不同的程序,但是我如何知道我想要连接的服务器上安装了哪个“Xwindow”程序,或者这有什么关系吗?

注意 - 我没有服务器的管理员访问权限,因此无法安装任何东西。

谢谢

编辑

我正在尝试使用上面显示的脚本登录到计算机,但它不起作用。之前使用相同的脚本连接到不同的机器并且它有效。

我尝试连接的机器是 Linux 服务器 - 见下文:

Linux abc 2.6.32-279.11.1.el6.x86_64 #1 SMP Tue Oct 16 08:03:36 PDT 2012 x86_64 x86_64 x86_64 GNU/Linux

在我的 Windows PC 上,我安装了 XMing - 我不知道 Linux 机器上安装了什么,以及我需要查找什么才能知道是否可以连接到该 Linux 服务器。

答案1

当谈到“服务器”和“客户端”时,X 可能有点令人困惑。 X 服务器为 X 客户端提供显示器、键盘和鼠标服务,这些 X 客户端是在与 X 服务器相同的计算机或网络中的其他计算机上运行的程序。

如果您坐在运行 Xming 的 Windows PC 上,那么 Xming 就是您的 X 服务器。您可以通过设置指向机器和显示编号的 DISPLAY 环境变量来告诉 X 客户端(程序)连接到该 X 服务器。是的,一台机器可以运行多个 X 服务器,然后它们将具有不同的显示编号。例子: export DISPLAY=192.168.1.12:0

然后我们有 ssh 及其进行端口转发的能力。 ssh 端口转发的一种特殊情况是 X 的转发。为此,ssh 客户端需要知道要连接到哪个 DISPLAY,并且 ssh 服务器需要允许 X11Forwarding。通过这种设置,DISPLAY 可能会在 ssh 客户端计算机上设置为 localhost:0 之类的内容,一旦通过 ssh 连接,sshd 服务器就会将 DISPLAY 设置为 Linux 服务器计算机上的 localhost:10 之类的内容。然后,发送到 Linux 计算机上的 DISPLAY localhost:10 的所有 X 流量将通过 ssh 加密并转发到 Xming 计算机上的 localhost:0。

我的猜测是,您的工作服务器在 /etc/ssh/sshd_config 中具有 X11Forwarding=yes,但您的问题服务器具有默认的 X11Forwarding=no。这可以解释为什么在通过 ssh 登录时未设置 DISPLAY 变量,即使为 ssh 提供了选项 -X 或 -Y。您可以通过更改 /etc/ssh/sshd_config 来解决此问题,或者您可以手动设置 DISPLAY 变量以指向您的 Windows 计算机,而无需通过 ssh 建立隧道。

相关内容