wsl中的Ubuntu安装远程桌面

news2025/3/1 9:31:44

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1346714.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

完全适配各类中小医院专科医院和诊所的云HIS系统源码【前端:Angular+Nginx ,后台:SpringBoot】

云HIS系统采用SaaS软件应用服务模式,提供软件应用服务多租户机制,实现一中心部署多机构使用。相对传统HIS单机构应用模式,它可灵活应对区域医疗、医疗集团、医联体、连锁诊所、单体医院等应用场景,并提升区域内应用的标准化与规范…

浅谈冯诺依曼体系和操作系统

🌎冯诺依曼体系结构 文章目录 冯诺依曼体系结构 认识冯诺依曼体系结构       硬件分类       各个硬件的简单认识         输入输出设备         中央处理器         存储器 关于内存 对冯诺依曼体系的理解 操作系统 操作系统…

为什么深度学习神经网络可以学习任何东西

下图你所看到的,是著名的曼德尔布罗特集,我们可以见证这个集合呈现出的复杂形态: 要理解神经网络如何学习曼德尔布罗特集,我们首先需要从最基础的数学概念讲起:什么是函数?函数本质上是一个将输入转化为输出…

测试用例设计方法:正交试验冲锋

1 引言 上篇讲了因果图和判定表法,而这两种方法在变量值很多、排列组合数量极大的场景下,会生成非常庞大且冗余的测试用例,此时我们很难对所有组合场景进行全量测试用例覆盖,基于此短板,正交试验法应运而生。 2 概念及…

CSP CCF 201409-2 画图 C++满分题解

解题思路&#xff1a; 1.使用二维数组标记每一个方块是否被涂色。 2.注意坐标代表的是点&#xff0c;不是方块&#xff0c;交界处的坐标只能算一个方块。 3.可以看成&#xff1a;每一个坐标都对应它左上角的一个小方块&#xff0c;这样可以避免重复计算方块数 #include<i…

每日一题合集1

1038 从二叉搜索树到更大和树 1038. 从二叉搜索树到更大和树 - 力扣&#xff08;LeetCode&#xff09; 二叉树的中序遍历逆向思维 给定一个二叉搜索树 root (BST)&#xff0c;请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。 提醒一下&#xff0c; …

轻量封装WebGPU渲染系统示例<55>- 顶点数据更新

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/material/src/voxgpu/sample/VertexUpdateTest.ts 当前示例运行效果: ​​​​​​​ 此示例基于此渲染系统实现&#xff0c;当前示例TypeScript源码如下: export class VertexUpdateTest {pr…

全新ui自动化测试框架教学——Cypress

前言 在现阶段自动化测试领域大规模普及的是selenium及appium等常规自动化测试工具&#xff0c;但在其中会有遇到很多影响因素导致测试结果不理想和不准确的情况发生。在经过Darren洋对自动化测试工具调研后&#xff0c;发现了Cypress这一款针对端到端的自动化测试工具&#xf…

从2023看2024前端发展趋势

前言 流光溯影&#xff0c;纵观2023全年&#xff0c;整个前端业界呈现出百业凋零之状&#xff0c;更不乏有“前端已死”等论调甚嚣尘上。从全局视角看IT行业&#xff0c;除了AI领域的大语言模型爆发外&#xff0c;整体都鲜有特别亮眼及突出的技术展现。故而&#xff0c;作为IT…

Linux下使用Wireshark抓包教程

在实际开发中&#xff0c;涉及网络传输的环节是非常多的。在这些过程中&#xff0c;我们经常有查看被传输的数据信息的需求&#xff0c;因此&#xff0c;抓包工具应运而生。Wireshark便是一款非常有名的抓包及分析软件&#xff0c;具有强大的协议解析能力。本文将介绍如何在Lin…

用通俗易懂的方式讲解大模型:ChatGLM3-6B 功能原理解析

上次我们介绍了 ChatGLM3-6B 的部署&#xff0c;虽然我们的大语言模型&#xff08;LLM&#xff09;部署起来了&#xff0c;新功能也试用了&#xff0c;但问题很多的小明就要问了&#xff0c;这其中的实现原理是什么呢&#xff1f;到底是怎么实现的呢&#xff1f; 那今天我们就…

第3课 使用FFmpeg获取并播放音频流

本课对应源文件下载链接&#xff1a; https://download.csdn.net/download/XiBuQiuChong/88680079 FFmpeg作为一套庞大的音视频处理开源工具&#xff0c;其源码有太多值得研究的地方。但对于大多数初学者而言&#xff0c;如何快速利用相关的API写出自己想要的东西才是迫切需要…

HTML+CSS+JAVASCRIPT实战项目——新年快乐特效

生成动态视频 <!doctype html> <html> <head><meta charset"utf-8" name"viewport" content"widthdevice-width, initial-scale1.0, maximum-scale1.0, minimum-scale1.0, user-scalableno"/><title>2024新年快乐…

LabVIEW开发智能火灾自动报警系统

LabVIEW开发智能火灾自动报警系统 系统基于LabVIEW虚拟仪器开发&#xff0c;由火灾报警控制器、感温感烟探测器、手动报警器、声光报警器、ZigBee无线通讯节点以及上位机电脑等组成&#xff0c;展示了LabVIEW在智能化火灾预警与控制方面的应用。该系统通过结合二总线协议和Zig…

kivy中的GridLayout

说明 GridLayout 是 Kivy 框架中的一个布局管理器&#xff0c;它允许你在网格中排列子控件。你可以指定网格的行数和列数&#xff0c;然后添加子控件到网格中。GridLayout 会自动调整子控件的位置和大小&#xff0c;以适应网格的单元格。 在 Kivy 框架中&#xff0c;size_hint…

详解维吉尼亚密码(附四种攻击策略)

目录 一. 介绍 二. 破解维吉尼亚密码 2.1 频率统计 2.2 提高型频率统计法 2.3 Kasiski攻击法 2.4 重合指数攻击法&#xff08;index of coincidence method&#xff09; 三. 小结 一. 介绍 我们知道英语字母的出现频率是有规律的&#xff0c;比如像下表&#xff1a; 掌…

深入解析泛型

一、泛型的诞生 在C#1 中我们还没有泛型的时候我们收集数据通常需要使用到数组&#xff0c;或者使用封装好的数组集合Hashtable ArrayList。 举个例子&#xff1a; 我们在读取文件的时候就会需要一个数组来储存读取的数据的内容 但我们并不知数据的具体长度也就无法在声明的…

小梅哥Xilinx FPGA学习笔记17——模块化设计基础之加减法计数器

目录 一&#xff1a; 章节导读 1.1 任务要求 1.2 模块功能划分 二&#xff1a; 代码设计 2.1 灯控制逻辑&#xff08;led_ctrl&#xff09; 2.2 按键消抖模块&#xff08;key_filter&#xff09; 2.3 顶层模块&#xff08;key_led&#xff09; 2.4 引脚绑定 一&#x…

报表控件FastReport VCL 中的新 S3 传输 (Amazon)

在本文中&#xff0c;我们将探讨新的 S3 传输。从功能上来说&#xff0c;S3 与大多数人习惯使用的有很大不同&#xff0c;因此在本文的开头&#xff0c;我们将详细介绍它的主要功能。 FastReport .NET 是适用于.NET Core 3&#xff0c;ASP.NET&#xff0c;MVC和Windows窗体的全…

java maven项目添加oracle jdbc的依赖

一般添加依赖是直接在pom.xml中添加配置即可&#xff0c;Maven会自动获取对应的jar包&#xff0c;但是oracle驱动依赖添加后会显示红色&#xff0c;代表找不到依赖项&#xff0c;是因为Oracle授权问题&#xff0c;Maven3不提供Oracle JDBC driver&#xff0c;为了在Maven项目中…