wsl使用nomachine实现远程桌面

2024-02-23 18:50

本文主要是介绍wsl使用nomachine实现远程桌面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 1. 写在前面
    • 1.1. 注意:在进行后面的安装操作之前,对自己的发行版做好备份
    • 1.2. 注意:安装前把科学上网搞好或者把下载源给换了,不然装不好的。
  • 2. nomachine
  • 3. 前置条件:wsl安装桌面
    • 3.1. 安装
      • 3.1.1. 安装apt-fast
      • 3.1.2. 设置snap代理
      • 3.1.3. 锁住!
      • 3.1.4. 安装桌面环境
      • 3.1.5. 重装dbus
      • 3.1.6. 修复网络(安装gnome4才需要执行这个)
    • 3.2. 完善处理
      • 3.2.1. 显卡问题
  • 4. window端安装nomachine
    • 4.1. windows作为服务端的server设置
    • 4.2. windows作为客户端的player设置
  • 5. ubuntu 安装
    • 5.1. ubuntu作为服务端server设置
  • 6. 连接
    • 6.1. 屏幕设置
      • 6.1.1. 按钮介绍
      • 6.1.2. display settings

1. 写在前面

1.1. 注意:在进行后面的安装操作之前,对自己的发行版做好备份

备份方法

  • 查看已安装的子系统版本
    wsl -l -v
    
  • 关闭wsl
    wsl --shutdown
    
  • 导出分发版为tar文件到D盘
    wsl --export Ubuntu-22.04 d:\wsl-ubuntu-22.04.tar
    

恢复方法

  • 注销当前分发版(危险)
    wsl --unregister Ubuntu-22.04
    
  • 重新导入并安装wsl在D盘
    wsl --import Ubuntu-22.04 d:\wsl-ubuntu-22.04 d:\wsl-ubuntu-22.04.tar --version 2
    
  • 设置默认登陆用户为安装时用户名(${username} 整个替换成你的用户名字)
    ubuntu2204 config --default-user ${username}
    
  • 删除tar文件
    del d:\wsl-ubuntu-22.04.tar
    

1.2. 注意:安装前把科学上网搞好或者把下载源给换了,不然装不好的。

2. nomachine

nomachine是局域网内桌面远程连接软件,我主要是用于wsl2

这玩意用在wsl2上,丝滑到一种境界了,吊着xrdp打

nomachine甚至可以传输声音。。。

nomachine官网

说明文档

Knowledge Base

wsl至少这个版本

在powershell里面,输入 wsl -l -v 查看wsl版本

WSL 版本: 1.3.15.0
内核版本: 5.15.90.4-1
WSLg 版本: 1.0.55
MSRDC 版本: 1.2.4419
Direct3D 版本: 1.608.2-61064218
DXCore 版本: 10.0.25880.1000-230602-1350.main
Windows 版本: 10.0.19045.3324

截止到2023年8月27日,上面这个版本微软还没有正式发布,所以需要去github上面手动下载,下载下来直接双击运行就行。wsl最新发行版链接(截至2023年9月,实际版本1.3.15)

1.3.15网盘链接,不建议用这个,还是直接去github下载最新的比较好

链接:https://pan.baidu.com/s/1vxfSwt-I30LNpMts_p8QxA?pwd=t9p4
提取码:t9p4

3. 前置条件:wsl安装桌面

3.1. 安装

3.1.1. 安装apt-fast

apt-fast 下载更快,不然安装gnome要一个小时

add-apt-repository ppa:apt-fast/stable && apt-get install apt-fast -y

会出来三个界面(忘了截图了):

  1. 多进程下载的进程数量:根据你自己cpu线程数量决定,设置成cpu线程数就行
  2. 默认的包管理方式:选apt就行
  3. 下载时是否跳过询问步骤:选No

3.1.2. 设置snap代理

22.04火狐和软件商店用的都是snap,然鹅snap不会自动读取全局的proxy设置,所以得自己设置

换成你自己的代理ip,分开执行(下面那个的http也是没有s的)

snap set system proxy.http="http://172.22.160.1:7890"snap set system proxy.https="http://172.22.160.1:7890"

3.1.3. 锁住!

安装gnome前,锁住三个东西,避免变得不幸。如果你安装了,直接apt purge -y 删掉他们

apt-mark hold acpid acpi-support modemmanager

acpid是管理电源的,systemctl检测到容器(就是wsl2)会因为这玩意卡死的

参考链接

modemmanager是管理网络的,也是检测到容器网络设置直接卡死

参考链接

3.1.4. 安装桌面环境

安装snap-firefox会卡在那里一会儿,不要惊讶

如果你前面设置了snap代理,你会发现clash是在下载东西的

但是你要是没有设置,大概率会直接卡死在那里

  1. 更新

    apt update -y && apt upgrade -y
    
  2. 使用apt-fast下载(apt-fast快很多,不然大半个小时)

    下面三个(gnome kde xfce4)挑一个,不要装多个,会出问题的

    推荐gnome,kde卡卡的,不知道为什么

    安装gnome

    推荐这个,起码50hz,接近60hz

    apt-fast install ubuntu-desktop gnome -y && apt install ubuntu-desktop gnome -y
    
    安装kde

    不要用kde-desktop包安装,kde-desktop会扫描全部磁盘(包括/mnt下的window磁盘),导致卡死在"Initializing plocate database; this may take some time…"

    apt-fast install kde-full -y
    
    安装xfce4
    apt-fast install xfce4 -y
    

    不需要往 ~/.xinitrc 或 ~/.xsession 或 ~/.xsessionrc 写任何东西,如果出了问题,可以把这三个文件删了。
    参考链接:~/.xinitrc 与 ~/.xsession 与 ~/.xsessionrc的作用与区别。

3.1.5. 重装dbus

不重装,进不了 软件与更新 这个应用界面

su -l进入root后,执行下面命令

apt install --reinstall dbus

3.1.6. 修复网络(安装gnome4才需要执行这个)

这文件就是空的,不过这么干能把网络图标给搞回来。。。

而且不搞这个 软件与更新 还是进不去,说识别不到网络。。。

touch /etc/NetworkManager/conf.d/10-globally-managed-devices.conf

3.2. 完善处理

3.2.1. 显卡问题

进入桌面后使用nvidia-smi可能会报错

直接命令行 ln -s /usr/lib/wsl/lib/nvidia-smi /usr/bin/nvidia-smi 创建一个显卡驱动的软链接就行,这样就可以正常识别nvidia-smi命令了,因为正常显卡驱动就是在路径/usr/bin/nvidia-smi下面的。

4. window端安装nomachine

直接下载.exe安装就行

装好之后两个图标,按哪个都可以进入,其实应该按NoMachine那个

在这里插入图片描述

用法直接看说明文档,这里记录几个设置

4.1. windows作为服务端的server设置

直接把所有server关了,反正连接wsl,windows不做服务端。其他都不用改

在这里插入图片描述

4.2. windows作为客户端的player设置

改几个默认快捷键就行(为了防止快捷键冲突,所以没用的最好关了,有用的改的复杂一点)

在这里插入图片描述

5. ubuntu 安装

ubuntu 肯定是.deb啊

速达链接

将.deb文件下载下来之后,命令行执行:sudo dpkg -i nomachine_8.8.1_1_amd64.deb

在这里插入图片描述
nomachine装完后都是随着wsl启动,默认自动启动的。

5.1. ubuntu作为服务端server设置

关掉server,然后把端口改成4001,防止和windows打起来(好像不改也不会咋样),其他默认。

可以用wslg打开(装好nomachine后,window的开始菜单里会出现的,直接点一下就可以打开了)

在这里插入图片描述

6. 连接

在这里插入图片描述

在这里插入图片描述

然后一直ok就行

进入界面长这样子,点一下右上角会进入设置模式(或者 ctrl alt 0)

6.1. 屏幕设置

6.1.1. 按钮介绍

在这里插入图片描述

从左到右,分别是:

  1. viewpoint mode

  2. scale to window

  3. resize remote display

  4. fullscreen 全屏

  5. fullscreen on all monitors 拼接所有屏幕

  6. iconize 缩小为图标

  7. display settings 屏幕设置

6.1.2. display settings

质量设置为最佳,wsl难道还会缺网速???

这篇关于wsl使用nomachine实现远程桌面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/739599

相关文章

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

SpringBoot中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

Conda虚拟环境的复制和迁移的四种方法实现

《Conda虚拟环境的复制和迁移的四种方法实现》本文主要介绍了Conda虚拟环境的复制和迁移的四种方法实现,包括requirements.txt,environment.yml,conda-pack,... 目录在本机复制Conda虚拟环境相同操作系统之间复制环境方法一:requirements.txt方法

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3