首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在X11上设置工作WSL2转发

如何在X11上设置工作WSL2转发
EN

Stack Overflow用户
提问于 2020-04-08 21:49:59
回答 23查看 242.5K关注 0票数 171

当从WSL1迁移到WSL2时,很多事情都会发生变化;显然,这也适用于X11转发。

我需要采取哪些步骤才能像对X11一样在WSL2 10上使用WSL2转发?

EN

回答 23

Stack Overflow用户

回答已采纳

发布于 2020-04-08 21:49:59

TL;DR:

将以下内容添加到~/.bashrc

代码语言:javascript
复制
export DISPLAY=$(ip route list default | awk '{print $3}'):0
export LIBGL_ALWAYS_INDIRECT=1

在Windows的X11服务器上启用公共访问。*

将单独的入站规则用于TCP端口6000到windows防火墙,以允许WSL访问X服务器,正如wsl-windows-工具栏-启动器人员所描述的那样。

正如mod在编辑所指出的,正如您可以在微软关于WSL2的文档中看到的那样,WSL2体系结构使用虚拟化的网络组件。这意味着WSL2的IP地址与主机不同。这解释了为什么X11转发设置WSL1不能简单地传输到WSL2。

在有关WSL的Ubuntu页面上,您已经可以在运行图形应用程序下找到适合于运行图形应用程序的配置。上述Reddit用户也提出了类似的配置,他还提供了解决方案的另一部分:在X11服务器上启用Windows下的公共访问。

这意味着在~/.bashrc中添加以下内容

代码语言:javascript
复制
export DISPLAY=$(ip route list default | awk '{print $3}'):0
export LIBGL_ALWAYS_INDIRECT=1

在X11服务器上为Windows启用公共访问

在Windows 10上启用X11 WSL2转发的最重要部分仍然缺少:默认情况下,Windows防火墙通过为WSL2配置的网络接口阻塞连接。

需要一个单独的入站规则用于TCP端口6000,以允许WSL访问X服务器。在创建规则之后,正如wsl-windows-工具栏-启动器人员所描述的那样,IP地址范围可以限制在新创建规则的设置中的WSL子网中,在作用域:172.16.0.0/12下。

*:如果使用VcXSrv,则可以通过禁用额外设置上的访问控制来启用X服务器的公共访问:

或者使用vcxsrv.exe标志acvcxsrv.exe -ac直接调用github,这是阿米诺在github问题上指出的。

或者,这就是答案展示了如何通过.Xauthority文件共享密钥,从而使您拥有完整的访问控制。

票数 219
EN

Stack Overflow用户

发布于 2020-07-30 13:39:10

对于一些只允许我这样的私人网络的人来说,

虽然是,但它们都应该是

它应该在Windows防御防火墙上有停止标志

双击它并允许为私有和公共连接,

所以这四个项目都应该是绿色的。

然后@NicolasBrauer的上述回答是为我工作的。

例如,当您的XLaunch和

代码语言:javascript
复制
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0
export LIBGL_ALWAYS_INDIRECT=1
票数 58
EN

Stack Overflow用户

发布于 2021-03-15 20:29:45

正如其他人指出的那样,我在windows 10上提出了一个使用vxcsrv的解决方案。也可以在windows 11上工作。

XServer Windows - WSL1 & WSL2:

安装

https://sourceforge.net/projects/vcxsrv/

在WSL区设置前向显示

配置显示

  • 如果您运行WSL1
代码语言:javascript
复制
export LIBGL_ALWAYS_INDIRECT=1
export DISPLAY=localhost:0
  • 如果您运行WSL2
代码语言:javascript
复制
export LIBGL_ALWAYS_INDIRECT=1
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0

然后(安装x11应用程序)

代码语言:javascript
复制
sudo apt update
sudo apt install x11-apps

在Windows上启动XLaunch

  • 多窗口
  • 不启动客户端
  • 禁用本机opengl
  • 启用禁用访问控制

试试看

在wsl中:输入xcalc -计算器应该在Windows10中打开

如果一切顺利

并且您希望在您的wsl发行版中保持设置。将它们存储在您的~/.bashrc中。

代码语言:javascript
复制
sudo nano ~/.bashrc

复制这两行(从WSL区域配置显示中的Set显示),两行结束并保存它。

添加到自动启动

  1. 运行对话框参见Windows上的Start XLaunch
  2. 保存配置
  3. 按Windows +R
  4. 输入:shell:启动
  5. 复制保存的配置:*.launch (在步骤2中生成)到此文件夹(步骤4)

现在,XServer将在windows启动时启动。

我把它用在罗斯身上了。为我工作。

我的XServer在互联网上是不可用的,所以可以禁用访问控制。

票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61110603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档