关于 DISPLAY 环境变量的问题
Posted
技术标签:
【中文标题】关于 DISPLAY 环境变量的问题【英文标题】:Questions about the DISPLAY env variable 【发布时间】: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 的内容。我猜这个问题可能代表了像我这样的人的东西,而且中间删除它可能很奇怪,所以我不删除它。再次抱歉。 【参考方案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 程序到服务器。非常感谢!以上是关于关于 DISPLAY 环境变量的问题的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio - X11:缺少 DISPLAY 环境变量
TclError:Google Colab 中没有显示名称和 $DISPLAY 环境变量
tkinter.TclError:没有显示名称,也没有 $DISPLAY 环境变量 python