首页 > 系统相关 >wsl中的Ubuntu安装远程桌面

wsl中的Ubuntu安装远程桌面

时间:2023-12-31 21:01:12浏览次数:45  
标签:vnc xrdp sudo wsl 远程桌面 Xorg Ubuntu Xvnc

wsl Ubuntu默认只能打开命令行,看不到图形化界面,有些操作不方便。这里介绍两种方法来远程连接到wsl里

VNC

因为win10的wsl不支持systemd, 所以这种方式只能是Windows11的系统,Window10只能用xrdp

1、禁用WSLg

c:\users\用户名下新建一个.wslconfig文件,内容如下:

[wsl2]
guiApplications=false

2、安装桌面程序

可以先安装桌面程序的一个管理程序: sudo apt install tasksel -y

然后运行sudo tasksel,选择需要的桌面程序安装(空格是选中,上下键切换,tab切到OK键),我这里选择Ubuntu desktop

3、安装vnc服务端

sudo apt install tigervnc-standalone-server -y

4、设置vnc密码

vncpasswd 为当前用户设置

sudo -H vncpasswd 为root设置

sudo -H -u gdm vncpasswd 为gdm用户设置

建议都设置一遍

5、修改Xorg文件

如果某次执行apt upgrade后,连接不上vnc了,应该就是这个文件被恢复成了默认,你再改回来就可以了。

chatgpt关于这个文件的解释:

sudo mv /usr/bin/Xorg /usr/bin/Xorg_old sudo vim /usr/bin/Xorg_new写入以下内容:

#!/bin/bash
for arg do
  shift
  case $arg in
    # Xvnc doesn't support vtxx argument. So we convert to ttyxx instead
    vt*)
      set -- "$@" "${arg//vt/tty}"
      ;;
    # -keeptty is not supported at all by Xvnc
    -keeptty)
      ;;
    # -novtswitch is not supported at all by Xvnc
    -novtswitch)
      ;;
    # other arguments are kept intact
    *)
      set -- "$@" "$arg"
      ;;
  esac
done

# Here you can change or add options to fit your needs
command=("/usr/bin/Xvnc" "-geometry" "1920x1080" "-PasswordFile" "${HOME:-/root}/.vnc/passwd" "$@")

systemd-cat -t /usr/bin/Xorg echo "Starting Xvnc:" "${command[@]}"

exec "${command[@]}"

这个脚本就是打印一条日志后启动xvnc服务,vnc的分辨率是1920x1080,你可以改成你显示器的分辨率大小,PasswordFile是指定vnc连接时密码文件的路径,因为刚才对当前用户、root和gdm都设置了密码,所以这三个用户的home下都有这个文件

sudo chmod 0755 /usr/bin/Xorg_new sudo ln -sf Xorg_new /usr/bin/Xorg

启用systemd

最新的系统已经默认启用了,你也可以编辑看看。

sudo vim /etc/wsl.conf写入以下内容

[boot]
systemd=true

github上说: 开启systemd之后,wsl就需要执行正常的关机(shutdown now | poweroff)或者在远程桌面里点关机,然后再执行wsl --shutdown。如果直接执行wsl --shutdown可能会造成系统损坏,不过我平时一直都是wsl --shutdown也没啥问题

连接vnc后自动登录

sudo vim /etc/gdm3/custom.conf取消下面的注释,并改成当前用户名

AutomaticLoginEnable=true
AutomaticLogin=用户名

当你连接vnc后,就会默认登录你填写的用户名

重启wsl

wsl --shutdown 关闭再打开

查看是否运行成功

正常来说重新启动wsl,使用ps -ef|grep vnc查看进程时有一个Xvnc的进程,使用lsof -i:5900可以看到Xvnc监听了5900端口

下载vnc客户端

我用的RealVNC Viewer, 下载地址: https://www.realvnc.com/pt/connect/download/viewer/。连接的时候地址填:127.0.0.1:5900, 密码就是vncpasswd设置的密码

上面有点花屏不知道是为什么,我每次连接都是这样。可以通过右键改几次背景之后就正常了

xrdp

xrdp的配置很简单,先安装下包sudo apt-get install xrdp -y

安装完就会创建一个自启的服务/etc/systemd/system/multi-user.target.wants/xrdp.service

因为xrdp的端口和Window本身冲突了,需要改下端口: sudo vim /etc/xrdp/xrdp.ini,我改成3399了

然后重启服务: sudo systemctl restart xrdp

这时候你可能会发现127.0.0.1:3399连接不上,但是用localhost:3399又可以连接上。原因可以看https://stackoverflow.com/a/73407304,不过用localhost也是一样的。

session选Xorg或者Xvnc都可以,用户名填wsl的用户名和密码

总结

正常情况下两个都是可以的,但是最近更新后,我发现第一种方法里运行Gparted的时候直接闪退,然后在连上去就不显示任何东西了,第二种方法如果session选的是Xorg也是这种情况,选Xvnc就正常。

不清楚是什么原因,目前先用着xrdp的Xvnc,后面看看更新会不会解决这个bug

参考

  • https://gist.github.com/tdcosta100/385636cbae39fc8cd0937139e87b1c74

标签:vnc,xrdp,sudo,wsl,远程桌面,Xorg,Ubuntu,Xvnc
From: https://blog.51cto.com/u_12300749/9050222

相关文章

  • wsl中的Ubuntu安装远程桌面
    wslUbuntu默认只能打开命令行,看不到图形化界面,有些操作不方便。这里介绍两种方法来远程连接到wsl里VNC因为win10的wsl不支持systemd,所以这种方式只能是Windows11的系统,Window10只能用xrdp1、禁用WSLg在c:\users\用户名下新建一个.wslconfig文件,内容如下:[wsl2]guiApplicat......
  • 在ubuntu中安装Docker
    安装docker如果有旧版本的docker就需要先卸载:sudoapt-getremovedockerdocker-cedocker.iocontainerdrunc更新系统里的所有软件:sudoapt-getupdatesudoapt-getinstall\apt-transport-https\ca-certificates\curl\gnupg\lsb-release......
  • ubuntu环境下因pie选项导致双击启动失败的问题
    在ubuntu环境下,链接可执行文件时增加-pie选项,双击可执行程序,无法正常启动。对于这个现象,stackoverflow有个帖子,gcccreatesmimetypeapplication/x-sharedlibinsteadofapplication/x-application,介绍的比较清晰,如下是相关的摘抄。gccdoesn'tsetthemimetype.mimetype......
  • 拷贝文件到ubuntu服务器
    连接硬盘到Ubuntu服务器,用sudofdisk-l查看连接情况,如果没有显示出设备,那么换一个端口(USB口)试试挂载硬盘sudomkdirusbsudomount/dev/sdc2/home/usb查看当前所处目录的整个大小du-sh查看磁盘空间使用情况sudodf-h拷贝目录(包括子目录)文件到指定文件夹下  cd......
  • 在wsl2 kali发行版中安装docker
    前言因为不想开虚拟机,而又需要多个linux发行版来做测试,也不想使用docker-desktop来曲线救国,所以想直接安装个docker随时使用,这一路也是踩了不少坑。直接复制进终端进行安装sudoapt-getupdate&&\sudoapt-getupgrade&&\sudoapt-getinstall-yapt-transport-httpsca-......
  • ubuntu16下升级python3的版本--升级到3.8
    ubuntu16下升级python3的版本,这里是升级到3.8。1.首先添加安装源,在命令行输入如下命令:$sudoadd-apt-repositoryppa:jonathonf/python-3.82.更新apt$sudoaptupdate3.更新安装源后,通过apt安装Python3.8$sudoapt-getinstallpython3.84.安装完成之后,设置Python3.8的......
  • Ubuntu系统安装与配置VNC server实现远程桌面连接
    本文介绍了在Ubuntu系统上安装和配置VNC服务器所需的步骤,并展示在windows端如何通过SSH隧道安全地连接到VNC服务器。本文测试环境Ubuntu版本18.04,其它版本也行。整个安装过程只需要两条命令,再简单配置一下就能搞定。1、ubuntu系统先连接好互联网2、第一条命令sudoapti......
  • 如何在 Ubuntu 16.04 上使用 Minio 设置对象存储服务器
    前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站。介绍从基于云的备份解决方案到高可用性内容交付网络(CDN),对象存储已成为现代技术领域不可或缺的一部分。而且,凭借其占用空间小、界面简单以及与多种云存储服务的兼容性......
  • ubuntu 安装 docker
    ubuntu安装docker详细步骤ubuntu下自带了docker的库,不需要添加新的源。但是ubuntu自带的docker版本太低,需要先卸载旧的再安装新的。卸载旧版本apt-getremovedockerdocker-enginedocker.iocontainerdrunc安装前提依赖aptupdateapt-getinstallca-certificates......
  • Ubuntu 20.04 安装Odoo17
    1、升级系统sudoapt-getupdate2、更新系统sudoapt-getupgrade3、查看系统Python3版本python3-V4、更新Python3.8到3.10sudoadd-apt-repositoryppa:deadsnakes/ppasudoapt-getupdate安装Python3.10sudoapt-getinstallpython3.10-y安装完成后,检查新版......