X 窗口服务器 Windows 到 Linux

X 窗口服务器 Windows 到 Linux

网络上有许多手册展示了如何从 Windows 连接到 Linux 并获取 X 会话窗口,但没有表明其他情况,这是我担心的:如何使用协议 X [X 窗口服务器] 查看 linux Windows 程序?

抱歉我的英语不好……

答案1

有几种方法:

  1. 虚拟网络计算机

    • 在 Windows 计算机上安装 VNC 服务器。您可以使用TightVNC例如。确保将其配置为侦听非环回 IP 地址,并且不会被防火墙阻止。
    • 在 Linux 机器上安装 VNC 客户端。如果您使用 Debian 或 Ubuntu,您可以在终端中使用以下命令进行安装:

      $ sudo apt-get install xtightvncviewer
      
    • 连接到 Windows 机器(假设 Windows 机器的 IP 地址是192.168.1.10):

      $ xtightvncviewer 192.168.1.10
      
  2. 远程桌面协议

    Allow users to connect remotely to this computer标准的 Windows 远程桌面协议。通常,除了设置复选框System Properties和将用户添加到Remote Desktop Users组之外,它不需要在 Windows 端进行任何特殊配置。

    在 Linux 方面,您必须:

    • 安装rdesktop客户端。对于 Ubuntu 或 Debian,您可以使用以下命令:

      $ sudo apt-get install rdesktop
      
    • 连接到 Windows 机器(假设它的 IP 地址是192.168.1.10):

      $ rdesktop 192.168.1.10
      
  3. X11

    如果你在 Windows 机器上运行 X11 服务器(Cygwin/XXming例如),那么通信就非常简单,因为 X 窗口系统被设计为网络透明的。我们接触的主要内容是应用程序可以执行显示在不同的机器上。您在本地运行应用程序,但指定展示应用程序显示的位置。

    在你的情况下,Windows 框(例如192.168.1.10运行一个应用程序和 Linux 机器(比如说192.168.1.11显示器应用程序。事实上,windows 机器不需要运行 X 服务器来跑步应用程序 - 它只是可以展示它在远程Linux机器上:

    $ DISPLAY="192.168.1.11:0" xterm
    

    当你在 Windows 机器上运行命令时,它将跑步 xterm本地,但是展示它在运行于单独机器上的远程 X 服务器上。当您在 Windows 机器上运行该命令时,您应该会看到在 Linux 机器上(远程)打开的终端窗口。

    DISPLAY一个环境变量,用于保存当前显示器的地址和编号。每个 X 应用程序都会查看此变量,以了解在何处呈现自身。需要理解的重要一点是xterm(例如)不区分它是否显示器将其自身连接到本地 X 服务器或远程 X 服务器。网络透明。例如,如果你运行xterm并说:

    $ echo $DISPLAY
    

    它将打印一个当前的 DISPLAY所有应用程序展示本身。通过覆盖此变量,您可以告诉应用程序展示它在别的地方。我希望现在这个概念已经清楚了。

    请注意,您的 Linux X Server 可能会出于安全原因拒绝所有传入连接。要允许来自 Windows 计算机的连接,请运行以下命令:

    $ xhost +192.168.1.10
    

    其实这种方式是有点不安全的,因为每个给自己分配这个IP地址的人都可以连接到X服务器。

    幸运的是,有一种安全且很棒的方法。由于 X 服务器只监听 TCP 端口,因此我们可以使用ssh具有此出色功能的加密通道将其转发到本地计算机。您需要在 Windows 计算机上运行 ssh 守护程序。您可以使用openssh-这很简单,只需使用选择包cygwin设置,然后打开终端并运行,但不要忘记在中设置。cygwinopensshssh-host-configX11Forwarding yessshd_config

    现在,它看起来怎么样。在 Linux 机器上,运行:

        $ ssh -X [email protected] xterm
    

    输入密码后,你应该看到一个xterm窗口执行在 Windows 机器上,但是显示在 Linux 机器上。授权后,ssh它会绑定到 Windows 机器上的端口,在该端口上侦听连接并通过已建立的通道将数据包转发到 Linux 机器上的本地端口(对于显示器 0,通常为 6000)。然后,它会运行xterm设置DISPLAY到绑定端口的程序,xterm允许展示通过加密通道将自身连接到远程 X 服务器。在这种情况下,您无需运行,xhost因为 X 服务器不需要接受任何外部连接。

    现在,如何跑步Linux 机器上的应用程序和展示在 Windows 上:

    在 Windows 机器上,您需要一个 X 服务器(Xming例如)和一个 SSH 客户端(PuTTY例如)。首先,确保Xming正在运行(有一个托盘图标)。然后,打开PuTTY,选择ssh,填写loginpassword框,还要确保在设置X11 ForwardingSSH选中。然后只需单击connect,之后它将连接到 Linux 机器并打开一个终端窗口。您可以xterm在那里运行,它将显示在本地Xming服务器上(因为它被转发PuTTY到远程机器)。另请查看指南-有一些截图。

答案2

Windows 不支持 X 协议。我会寻找能够使用 Windows RDP(远程桌面协议)的东西。下面是一个示例,未经本人验证,可能是桌面

相关内容