配置 UOS/deepin 系统远程桌面,实现多台电脑协同办公

由于开发工作的需要,我的办公桌上目前有多台电脑。一台是 i7 配置的电脑,运行 UOS V20 系统,作为主力办公电脑,负责处理企业微信、OA 等任务,并偶尔进行代码编译和验证软件在 UOS V20 系统下的兼容性;另一台 i7 配置的电脑则安装了 deepin V23 系统,作为主力开发机,用于编译应用;还有一台电脑运行的是 V25 系统,主要用于测试应用在该系统下的兼容性。此外,我还有两台迷你主机,一台搭载兆芯 CPU,运行 UOS V20 系统,由于 CPU 性能有限,通常用来进行一些应用测试;另一台则搭载龙芯 CPU,用来验证应用在龙芯系统上的表现。

这五台设备是常驻设备,有时为了验证 ARM 系统上的问题,还会临时添加其他设备。如此众多的电脑,如果每台都配备显示器、键盘和鼠标,办公桌几乎无法容纳。所以,我使用一台显示器和一套键盘鼠标来管理这五到六台机器,这就需要依赖远程桌面技术来便捷地管理和操作其他电脑。

对于普通的命令行操作,使用 ssh 连接即可满足需求,但大部分情况下,我需要使用图形界面。因此,我尝试使用远程桌面功能来访问这些设备。

远程桌面常用的协议有 RDP,例如在 UOS 或 deepin 系统中可以安装 xrdp 包来实现。然而,经过使用发现,这种方式常常会出现黑屏问题,尤其是在远程计算机已经登录的情况下。于是,我寻找到了另一种方案:结合 X11 和 VNC 技术。

下面是配置的详细步骤,我们首先从被控制端的电脑开始:

安装x11vnc

# 更新软件仓库
sudo apt update# 安装x11vnc
sudo apt install x11vnc -y

由于设备在局域网内供自己使用,为了简化配置,我选择不设置 VNC 密码。

创建系统服务文件

# 创建服务配置文件
sudo vi /lib/systemd/system/x11vnc.service

将以下内容粘贴到文件中:

[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service[Service]
ExecStart=/usr/bin/x11vnc -auth guess -loop -forever -safer -shared -ultrafilexfer -bg -o /var/log/x11vnc.log
ExecStop=/usr/bin/killall x11vnc[Install]
WantedBy=multi-user.target

参数说明

  • -auth guess:自动检测X11认证文件

  • -forever:保持服务持续运行

  • -shared:允许多客户端同时连接

启用并启动服务

# 重新加载systemd配置
sudo systemctl daemon-reload# 设置开机自启
sudo systemctl enable x11vnc# 立即启动服务
sudo systemctl start x11vnc# 验证服务状态
sudo systemctl status x11vnc

若输出显示active (running)则表示配置成功。

● x11vnc.service - "x11vnc"Loaded: loaded (/lib/systemd/system/x11vnc.service; enabled; vendor preset: enabled)Active: active (running) since Tue 2025-04-01 20:49:48 CST; 9s agoMain PID: 5117 (x11vnc)Tasks: 2 (limit: 4915)Memory: 21.7MCGroup: /system.slice/x11vnc.service├─5117 /usr/bin/x11vnc -auth guess -loop -forever -safer -shared -ultrafilexfer -bg -o /var/log/x11└─5118 /usr/bin/x11vnc -auth guess -loop -forever -safer -shared -ultrafilexfer -bg -o /var/log/x11

接下来配置主控端。在主控端,VNC 客户端有多种选择,我选择了我一直在使用的 Remmina 远程桌面,它可以从 UOS 应用商店中下载安装。


安装完成后,打开 Remmina 远程桌面,点击左上角的加号 (+) 图标,创建一个新的连接配置文件。

在配置界面中,选择 Remmina VNC 插件作为协议,填写被控端计算机的 IP 地址,并输入该计算机系统的用户名和密码。完成设置后,点击保存并连接,就可以看到被控端的桌面了。

Remmina 支持同时管理多个会话,并可随时切换会话,这使得管理多台电脑变得更加高效和便捷。

这样,你就能够顺利地在一台显示器、键盘和鼠标上管理多台设备,实现高效办公。

你还有其他的方案吗?欢迎留言讨论!

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

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

相关文章

1g内存电脑sqlite能支持多少并发

1. SQLite的并发机制 写操作:默认使用串行锁,同一时间仅允许一个写操作(其他写/读需等待)。读操作:支持多并发读取,但受内存、磁盘I/O和配置限制。 2. 关键限制因素 (1)内存资源 …

时间数据的可视化

目录 【实验目的】 【实验原理】 【实验环境】 【实验步骤】 【实验总结】 【实验目的】 掌握时间数据在大数据中的应用 掌握时间数据可视化图表表示 利用Python程序实现堆叠柱形图可视化 【实验原理】 时间是一个非常重要的维度与属性。时间序列数据存在于社会的各个…

Linux红帽:RHCSA认证知识讲解(十)使用 tar创建归档和压缩文件

Linux红帽:RHCSA认证知识讲解(十)使用 tar创建归档和压缩文件 前言一、归档与压缩的基本概念1.1 归档与压缩的区别 二、使用tar创建归档文件2.1 tar命令格式2.2 示例操作 三、使用tar进行压缩3.2 命令格式3.3 示例操作 前言 在红帽 Linux 系…

制造业数字化转型:智能招聘系统破解蓝领用工匹配难题?

近年来,中国制造业面临一个看似矛盾的现象:一边是“用工荒”频发,工厂招不到足够的技术工人;另一边是蓝领求职者抱怨“找工作难”,岗位信息不对称、匹配效率低下。据《数智化平台推动高质量充分就业报告2024》统计&…

解决网络异常 repo sync 中断下载的问题

在使用repo sync下载代码的时候,经常由于网络不稳定等因素导致下载失败,采用循环不断下载的方法,脚步如下: vim ~/bin/repo_sync #!/bin/bash trap echo "ctrlc force exit"; exit SIGINT ALL_PKGgrep project .repo/m…

《MyBatis CRUD实战与核心配置详解:从基础操作到高级应用》

一、使用MyBatis完成CRUD 准备工作 创建module(Maven的普通Java模块):mybatis-002-crud pom.xml 打包方式jar 依赖: mybatis依赖 mysql驱动依赖 junit依赖 logback依赖 mybatis-config.xml放在类的根路径下 CarMapper.xm…

Java语言如何用AI实现文件报告的自动质检?

文件报告的质量直接影响工作效率和决策的准确性,然而,传统的文件质检方式往往依赖人工审核,效率低下且容易出错。那么,如何利用AI技术实现文件报告的自动化质检呢? 问题1:质检的目标是什么? 文…

es自定义ik分词器中文词库实现热更新

基于web地址的方式实现ik分词热更新。 操作系统:win 11 es version:8.6.2 ik version:8.6.2 1、创建web服务,并提供ik查询词库接口 编写分词http url代码,返回自定义分词内容分词词库数据来自业务需求,存…

铂卡梭 智能羽翼 AI 系统:交易科技的未来引擎

突破性的 AI 交易系统 铂卡梭(Pegasus)近期推出的 InnoFeather AI System(智能羽翼 AI 系统) 代表了金融科技领域的前沿突破。这一系统集成了先进的 机器学习算法、大数据分析 和 实时市场情绪感知,旨在帮助交易者在复杂多变的市场环境中做出更精准的决策。 智能羽翼 AI 系统的…

js中判断对象是否包含某个属性(元素)

在JavaScript中,判断对象是否包含某个属性(元素)主要有以下几种方法,根据具体需求选择合适的方式: 1. 使用 in 运算符 作用:检查对象自身及原型链上是否存在指定属性。 示例: javascript cons…

Anaconda和Pycharm的区别,以及如何选择两者

目录 主要区别详细说明如何选择?Anaconda的使用步骤 主要区别 Anaconda 和 PyCharm 是 Python 开发中常用的两个工具,但它们的定位和功能完全不同。以下是它们的主要区别: 对比项AnacondaPyCharm类型Python 发行版 包管理工具Python 集成开…

UE小:在Unreal Engine 5中实现多层静态网格体遮挡拾取

问题描述 当需要拾取被多层静态网格体遮挡的对象时,若所有网格体碰撞预设为BlockAll,需要通过特殊配置实现穿透检测。 完整实现方案 1. 创建自定义追踪通道 进入 ​项目设置(Project Settings) > 碰撞(Collision…

wireshark抓包分析数据怎么看 wireshark使用教程_wireshark怎么看

Wireshark与Sniff Master:网络抓包工具使用指南 网络抓包分析是开发测试和网络故障排查中不可或缺的技能。在众多抓包工具中,Wireshark无疑是最流行且功能强大的选择,而Sniff Master作为后起之秀,也因其简洁高效的特点受到许多专…

密码学基础——古典密码学

目录 一、定义 特点: 二、发展阶段 三、代换密码 1.单表代换密码 1.1恺撒密码 1.2 移位变换 1.3 仿射变换 2.多表代换密码 维吉尼亚密码 四、置换密码 栅栏密码 一、定义 古典密码学是指在现代密码学出现之前,使用较为简单的数学方法和手工…

【案例分享】江苏某汽车制造厂水冷式制冷站AI节能优化方案

主要诉求: 对B系统进行AI节能优化:3台离心机1台螺杆机板式换热器 优化前后对比: ⚫ 优化前:根据人工经验判断冷机和板换的启停,PLC固定逻辑调节参数 ⚫优化后:根据冷负荷对工况进行分类,自动…

vue+springboot 新增操作,前端id传string,后端接收为long类型,报错类型不匹配——解决方法

我在做新增功能的时候,做了一个逻辑判断,当前端没有传递对应的id值时,为新增;有id值时,为修改 问题一、:前端idundefined,和我的需求不符合,我要id为空,不传值。最后发现…

vue前端项目技术架构(第二版)

vue技术架构介绍 如下图所示,展示了项目系统的软件层次架构。该系统采用基于SOA(面向服务架构)思想的分层架构,分为四个主要层次:视图层、编译层、代码层和数据层。 视图层 浏览器:核心职责是解析并展示…

在服务器里面磁盘分区很简单吗?

不管是我们的普通办公电脑还是服务器都是需要硬盘的,硬盘的类型分机械硬盘(HDD)和固态硬盘(SSD),这两种磁盘是我们平常最常见的硬盘您他们又有什么区别 机械硬盘(HDD) 原理&#xff…

Pycharm(十一):字符串练习题

1.输入一个字符串,打印所有偶数位上的字符(下标是0,2,4,6...位上的字符) # 练习题1:输入一个字符串,打印所有偶数位上的字符(下标是0,2,4,6...位上的字符) # 1.键盘录入字符串&…

虚幻5入门

常用操作 运行时,调试相机,按~键,输入ToggleDebugCamera 。进入自由视角 常用节点 gate节点:用于控制该流程通不通,执不执行。Flip Flop节点:反转执行,一次A,一次B。Set Timer by…