【问题标题】:Questions about the DISPLAY env variable关于 DISPLAY 环境变量的问题
【发布时间】:2022-01-13 07:20:32
【问题描述】:

最近,我体验了如何在 WSL2 上运行 GUI。关键部分是在主机上安装 X11 服务器,并在 WSL2 shell 中定义一个环境变量 DISPLAY,如export DISPLAY=172.19.224.1:0.0。这里,IP 172.19.224.1 是我的主机在 WSL2 中的 IP。而且这种方法也适用于 VM Linux 服务器的 shell。

我的问题如下:

为什么是:0.0?我觉得冒号后面应该是一个端口的整数,例如172.19.224.1:3306 用于MySQL。 :0.0 是什么意思?

如果我在远程服务器的 shell 中使用 DISPLAY 环境变量,并且远程服务器通过 NAT 路由器看到我的 X11 服务器并且端口转发正在使用中。转发什么端口? (我正在尝试将 GUI 用于远程服务器,但我发现之间有一个 NAT 路由器,并且需要端口转发。)

我不知道主题的名称和要搜索的关键词。谁能给我一些线索?

【问题讨论】:

  • 你为什么认为 MySQL 和 X11 会共享环境变量内容的格式?
  • 我很抱歉。 @Jens,我想在我问这个问题之前我应该​​做更多的功课。我正在研究 Wikipedia 上有关 X Window System 的内容。我猜这个问题可能代表了像我这样的人的东西,而且中间删除它可能很奇怪,所以我不删除它。再次抱歉。

标签: bash shell x11 portforwarding nat


【解决方案1】:

DISPLAY 变量不包含端口号。第一个数字是显示编号,第二个数字是屏幕编号。所以:0.0 表示显示器编号 0 和屏幕编号 0。有关详细信息,请参阅Unix site

【讨论】:

    【解决方案2】:

    为什么是 :0.0?

    格式一般为<ip>:<display number>.<screen number>

    要转发什么端口?

    VNC 使用 5900 + 显示编号。

    X11使用6000+显示数。

    【讨论】:

    • 非常感谢!我稍后会尝试。
    • 我很抱歉迟到了。我最近尝试过,它有效。我通过 autossh 通过多个 NAT 路由器转发端口 6000,并成功使用 Windows 10 上的 VcXsrc 在 SSH 上显示 GUI 程序到服务器。非常感谢!