本文介绍了如何设置VcXSrv以与WSL2一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在不禁用访问控制的情况下在Windows 10上设置VcXSrv.exe以使用WSL2?互联网上的每个描述都显示禁用访问控制,但这允许本地网络上的任何程序记录您的击键和鼠标移动等。

推荐答案

Windows 10专业版20h2安装

您应该使用.XAuthority文件在X11客户端和VcXSrv X11服务器之间共享密钥,而不是禁用VcXSrv上的访问控制。.XAuthority包含由显示器索引的授权密钥的集合。您需要为您的特定Windows主机设置该文件的密钥,并在VcXSrv和您的WSL2发行版上运行的X11客户端之间共享该文件。要设置此设置,请执行以下步骤:

运行您的WSL2发行版(假设这是一个基于Debian的发行版)并安装xauth、md5sum和gawk或awk。我们还将安装一些X11客户端来测试我们的设置。在本例中,我们将安装GNOME-TERMINAL,但如果您愿意,也可以安装其他东西。在Ubuntu发行版上,您可以:

sudo apt install -y xauth coreutils gawk gnome-terminal 
xauth list # this should be an empty list
magiccookie=$(echo '{some-pass-phrase}'|tr -d '

'|md5sum|gawk '{print $1}')
xauth add host.docker.internal:0 . $magiccookie
cp ~/.Xauthority /mnt/c/Users/{WindowsUserName}

将以下内容添加到WSL2发行版主目录中的~/.bashrc

     export DISPLAY=host.docker.internal:0
我们需要创建一个XLaunch配置文件(即config.xLaunch)或包含所需命令行参数的VcXSrv.exe的快捷方式。XLaunch是一个简单的启动器这有助于设置参数,并进而调用vcxsrv.exe。我们将忽略使用XLaunch和只需创建我们自己的捷径,并使用适当的论点。我们希望使用以下参数运行VcXSrv.exe:

vcxsrv.exe -multiwindow -clipboard -wgl -auth {.XAuthority file} -logfile {A Log file} -logverbose {int log level}

从上面开始,我们将.XAuthority文件复制到/mnt/c/USERS/{WindowsUserName}/.XAuthority,这意味着我们需要的命令行是:

vcxsrv.exe -multiwindow -clipboard -wgl -auth "c:users{WindowsUserName}.Xauthority" -logfile "c:users{WindowsUserName}VcXSrv.log" -logverbose 5
如果您没有调试任何问题,可以随意省略LOGFILE和LOGVERBOSE选项。因此,您只需这样做:

vcxsrv.exe -multiwindow -clipboard -wgl -auth "c:users{WindowsUserName}.Xauthority"

记住将{WindowsUserName}替换为c:USERS下您的文件夹的名称。

要创建快捷方式,请导航到安装VcXSrv.exe的位置。默认位置为

C:Program FilesVcXSrvVcXSrv.exe
在资源管理器文件窗口中,右键单击VcXSrv.exe,然后单击";创建快捷方式。这将创建一个快捷方式在您的桌面上。

右击创建的快捷方式图标,然后选择属性。

在快捷方式选项卡中,将上面的参数追加到可执行文件之后。它应该类似于:

"C:Program FilesVcXSrvVcXSrv.exe" -multiwindow -clipboard -wgl -auth "c:users{WindowsUserName}.Xauthority"

在属性对话框的常规选项卡中,使用XAuthority";将名称更改为VcXSrv。

单击"确定"。

现在您可以通过双击快捷方式启动X11服务器。

如果希望在启动时启动X11服务器,请按照以下说明操作:https://support.microsoft.com/en-us/windows/add-an-app-to-run-automatically-at-startup-in-windows-10-150da165-dcd9-7230-517b-cf3c295d89dd

现在回到WSL发行版终端,您应该能够运行GNOME终端或其他X11客户端,并使其安全地显示在Windows主机上运行的VcXSrv X11服务器上。

export DISPLAY=host.docker.internal:0
gnome-terminal

这应该会导致GNOME终端显示在您的X11服务器上。此外,xAuthority文件将用于仅允许授权的客户端连接到您的X11服务器。

这篇关于如何设置VcXSrv以与WSL2一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 10:45