WSL ubuntu security Gnome desktop VcXsrv access

Assumption

  • Windows 10 system, or newer

  • Windows has installed WSL2 ubuntu system

  • Windows has installed “Terminal” in “Microsoft Store”, which is the terminal software

  • Windows has installed the “Chocolatey” tool, see reference link 1

  • WSL ubuntu has installed the “git” tool

WSL ubuntu installs Gnome desktop

  • Enter the following command in the terminal connected to ubuntu of WSL to install the desktop

sudo apt-get install ubuntu-gnome-desktop

The package is not small, it may take some time to wait. You can try the fast-apt tool.

  • Configure the current user’s .bashrc file

vi ~/.bashrc

Add the following at the end and save

export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0
export LIBGL_ALWAYS_INDIRECT=1

take effect

source ~/.bashrc

windows install VcXsrv software

  • Open the windows terminal as an administrator and execute the following statement

choco install vcxsrv

If the choco command cannot be recognized, see connection 1 in the reference section

  • configuration

  • Open the “XLanunch” program after installation

  • Display settings interface

You can keep the default value, the following configuration is recommended, as shown in the figure below

  • Select “One large window”, you can manually adjust the window size later

  • Display number: fill in 0 (default -1 is also acceptable)

  • Client startup interface

Keep the default “Start no client” option

  • Extra settings

The third option “Disable access control” needs to be selected, otherwise the following error will be reported when starting the graphics program in the WSL ubuntu terminal: Authorization required, but no authorization protocol specified

“Next step” and wait for the desktop client to connect.

Check whether WSL ubuntu and VcXsrv are accessible

  • WSL ubuntu terminal, run the following command

xeyes

VcXsrv is displayed as follows

At this time, VcXsrv can already display the graphical interface program in WSL ubuntu.

  • ubuntu boot desktop

Execute the following command in the wsl ubuntu terminal to start the desktop

sudo gnome-session

Note: If ubuntu does not install “systemctl”, it will fail to start by default. See the next section for the installation method of systemctl.

WSL ubuntu install systemctl program

  • wsl ubuntu terminal executes the following command

git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
cd ubuntu-wsl2-systemd-script/
bash ubuntu-wsl2-systemd-script.sh
# Enter your password and wait until the script has finished
  • Restart wsl ubuntu, test systemctl command

  • closure

Execute the following command in a non-wsl ubuntu terminal

wsl --shutdown
  • Start WSL-ubuntu

  • Execute the systemctl command in the WSL ubuntu command line. If some list units are displayed without error messages, the installation is successful.

systemctl

After systemctl is successfully installed, first open VcXsrv, and then use the “ubuntu start desktop” command in the previous section to let VcXsrv display the ubuntu gnome desktop.

Reference

  • Windows installation package management tool Chocolatey_qq_16740151’s Blog – CSDN Blog

  • Windows 10/11 wsl installation ubuntu_wsl installs multiple ubuntu_qq_16740151’s blog – CSDN Blog

  • DamionGans/ubuntu-wsl2-systemd-script: [Does not work anymore!] Script to enable systemd support on current Ubuntu WSL2 images (github.com)

  • WSL ubuntu xfce4 desktop remote connection_wsl2 remote desktop_qq_16740151’s blog-CSDN blog

  • WSL2 configuration in Windows to run GNOME desktop version Ubuntu_Hack Electronics Blog-CSDN Blog

  • WSL2 + VcXsrv Open the graphics window for visualization_wsl2 visualization_ToreannyTang’s Blog-CSDN Blog