如何在远程服务器上运行基于 X 的应用程序并将其显示在本地 Cygwin/x 上?

如何在远程服务器上运行基于 X 的应用程序并将其显示在本地 Cygwin/x 上?

我以前对 X 了解不少,但那是几年前的事了,我已经生疏了。我有一个运行级别 3 的 Linux 服务器,我想让它保持在该运行级别,但我想运行一些 X 程序(比如说,为了便于讨论,我称之为 xclock)并让它显示在运行 Cygwin/X 的 PC 桌面上。如何做到这一点?

答案1

好的,我明白了。

  1. 确保 PC 上已安装并正在运行 Cygwin/X。可以通过打开本地 cygwin shell 并运行“xclock”或“telnet localhost 6000”来连接到本地 X 服务器,从而进行测试。如果您尚未安装“telnet”和“xclock”,则需要从 Cygwin 下载它们。

  2. 在 PC 上,从 cygwin 下载“xhost”,并运行“xhost +”,让远程服务器能够连接到本地 X 服务器

  3. 就我而言,我可以从本地 PC ssh 到远程服务器,但中间未知的防火墙阻止远程机器连接到我本地的 Cygwin 端口 6000,所以我必须使用 ssh 端口转发

  4. 在本地PC上运行“ssh [远程服务器ip] -R 6000:localhost:6000”建立隧道。

  5. 远程服务器上的 sshd_config 可能需要配置“GatewayPorts yes”以允许打开端口 6000

  6. 因此现在 PC 上的 6000 端口已经打开,远程服务器上的 6000 端口也已经打开

  7. 在 cygwin shell(在本地系统上)中,运行“echo $DISPLAY”来确定 X 服务器监听哪个显示端口。响应将类似于“localhost:0”,我们感兴趣的不是“localhost”,而是后面的数字。

  8. 在远程服务器上,运行 X 应用程序如下:“DISPLAY="localhost:0" [X app]”,假设 X 端口为 0。请注意,这里的“localhost”指的是服务器,而不是 PC。

相关内容