[Share Experiences] 一台设备控制一批设备,最终还是选择了VNC方式,支持一键配置。
Tofloor
poster avatar
babyfengfjx
Super Moderator
CQA
2023-08-16 19:16
Author

背景

在日常测试过程中,我们都是一人测试管理多台设备,每天看到小伙伴坐在工椅上,从这里蹬到那里,一下操作这个设备,一下操作那个设备,像极了四处乱窜的“兔子”。

主要是有些时候在其他设备上发现的问题,需要截图,修改文件配置,要做信息复制共享发送到聊天工具,都是非常繁琐的事情,也降低了工作效率,为了优化这个工作场景,需要有一个更好的方案,在一台主工作设备上来管理控制其他设备,并且不影响测试结论和操作效率,主打的就是一个“一坐一天,事事高效”的效果(ChuiNiu).

方案实践

说道这种远程控制,我想每个人都有自己热衷的方案,可以说是信手拈来,五花八门,我觉得这个没有什么所谓的好坏和最好,适合你当下的场景就是最好,对于工具应该是没有最好的,只有最适合的。

实践过程中,主要尝试了以下方案:

  • 方案1:向日葵、todesk等常用成熟的远程控制工具;
  • 方案2:RDP协议连接方式;
  • 方案3:VNC连接方式;

方案评价

方案1:向日葵、todesk等常用成熟的远程控制工具;

这个思路应该是最容易操作的,直接下载对应的工具安装连接使用就行,也能一个客户端控制多设备,算是非常好操作的。

但是从体验上来说,我觉得不太方便简洁,而且画质效果比较差,我本身是局域网,完全没必要绕到公网再回来,而且哪些广告性的内容让我无法体验沉浸式的工作场景,所以首先就放弃了这种最方便的方案。

方案2:RDP协议连接方式;

我们日常都会使用Windows的系统来对比一些deepin系统的功能,所以我们也会在Windows设备上来操作deepin设备,那微软家的远程桌面是个好东西,当时就想到用RDP协议来控制linux桌面,对于V23来说XRDP还没集成到仓库,随即就让研发同学帮忙打包上仓库了,后面大家就可以直接安装使用了。

因为RDP方式只需要在deepin中安装xrdp 启动服务就可以使用了,这里就不做具体的描述,只需要完成如下安装配置就可以了:

1、更新系统
sudo apt-get update
2 安装xrdp
sudo apt-get install xrdp
3 设置开机启动
systemctl enable xrdp
4 启动xrdp
systemctl start xrdp

就是这么简单,执行完上面的动作被控端就完成了设置。

避坑:

连接后黑屏:

其实真正难点是在连接的时候,这里有不少坑,因为很多朋友发现连接的时候根本不行,连接上就是黑屏!!!

大概率你连接的时候是这样(shai)的:
image.png
到底哪里出了问题?

这个也是我觉得RDP方案没有VNC方案好的地方。

在使用RDP连接的时候用的账户一定不能是登录进入桌面的账户,也就是说要么你这个账户是注销了的,要么使用一个没有登录桌面的另一个账户登录。

这里我新建了另一个账户(deepinxrdp),然后给RDP登录使用,效果就来了:

image.png

连接后卡顿

解决上面黑屏的问题后,你可能会发现,在通过RDP方式连接的时候,操作不太丝滑,即使你是局域网,虽然画质感觉可以,但是操作的时候像放PPT样的体验,这也没法忍啊!

下面来优化一下体验:

打开【显示选项】在体验标签中,选择LAN模式,这样对流畅度会有一定的提升(因为我就是在局域网)image.png

至于其他的在被控端去优化XRDP配置的方式没有尝试,这块有经验的朋友可以跟帖提供一下详细的配置方案和原理。

总结

RDP协议连接的方式也算是比较广泛的玩法,但更多的是在Windows生态中使用,而且我们发现不能多端同时查看一个设备界面,优点是配置简单,使用上也能够满足。

方案3:VNC连接方式:

要说VNC(虚拟网络控制台)这种连接方式在使用linux的朋友应该没人没使用过吧,记得最开始使用的时候就是用华为云的时候,在一个刀片服务器上搭建了1000个网元设备,每天就是重复的创建虚拟机、搭建环境,在连接服务器的时候,就是通过VNC的方式来查看到服务器输出内容的,这也是我们最常用的一种连接方式。

在deepin上使用这种协议来连接那也是相当方便的,不过貌似配置方面比RDP的稍微复杂那么一丢丢:

服务配置

请直接将下方内容保存为一个vncinstall.sh脚本文件,在终端执行就完事了。

也可以直接下载附件执行vncinstall.rar

#!/bin/bash

password="123456"  # 这里请改成你自己登录账号的密码就可以,下方内容都不用变

# Step 1: 安装x11vnc
echo $password | sudo -S sudo apt update && sudo apt install x11vnc -y

# Step 2: 设置x11vnc密码
sudo x11vnc -storepasswd $password /etc/x11vnc.pass

# Step 3: 创建服务
sudo tee /etc/systemd/system/x11vnc.service > /dev/null <

执行安装

将上方附件下载,或者自己复制脚本内容保存.sh文件:

# 给文件加上执行权限
sudo chmod +x vncinstall.sh
# 执行脚本,提前进入文件所在目录并打开终端
./vncinstall.sh

到这里被控端的配置就完事了。

远程连接

这个时候连接就方便很多了,可以采用任何一款VNC连接查看工具来连接就行,没有什么额外的配置,而且可以多个客户端同时连接一个被控端:

  • Windows自带远程桌面:(优势:界面简洁、支持剪切板共享、支持键盘快捷键操作,很多工具是不支持键盘快捷键操作的,这个你们可以自己去尝试)

有的朋友在通过这个连接的时候发现也连接不上,可以尝试选择vnc-any模式。

image.png

连接上的效果:(操作非常丝滑,画质也是非常OK,感觉就是一个实体机的体验,没有太大差别,基本满足我的需求了)

image.png

  • 通过神器mobaxterm来管理,同时还能管理ssh连接,文件上传下载,同样支持剪切板共享,只是不支持键盘快捷键
  • 其他更多连接工具大家可以自行去尝试了,对于VNC连接的时候,也是可以设置一些参数的,只要能满足你个人的需求就行。

总结:

整体来讲,VNC的配置在deepin中也是非常简单的,看起来有几行脚本,但实际上就是写了一个服务单元,来让systemd管理而已,所以也没有什么门槛,关键是这个连接是非常方便,流畅度,画质都非常的好,而且支持的工具也特别多不是。

讨论

我看文章还没写完就已经有朋友提供了其他解决方案和经验分享,期望这个只是抛砖引玉,大家能有更多实战使用的经验分享出来,可以解决这类场景,让更多人少走弯路,评论区留给大伙了😃

无头服务器是怎么玩的?

在这种场景下其实还有一种真是情况,就是我们大多服务器是没有外接显示器的,那么通过这种远程连接的方式你会发现界面虽然能显示,但是分辨率是不正常了,对于服务器来说本来用界面的情况不多,倒也没啥影响,但要是日常测试的设备这么玩那肯定难受的不行。

目前还没有找到合适的软件配置解决方案,说是可以使用显卡欺骗器,几十块就可以搞定。

这方面有经验的同学也可以提供一些经验。

Reply Favorite View the author
All Replies
2 / 2
To page
希声
deepin
2023-08-23 03:50
#21
DebuggerX

deepin触摸板多指手势,有试过我写的手势管理器没:[经验分享] 开发了一款自定义触摸板手势的管理工具,有需要的朋友可以试试

remoteapp其实折腾起来也没啥,主要是win那边的配置。我当时是基于win7搞,需要手动装一些支持组件所以绕了些弯路,如果直接用windows server 2012R2及以上版本,根据教程配就很顺了。

我最开始研究多指手势,就是看您的这个工具,但是。。。。没成,我用的web版,没下载成配置文件

后来我在manjaro 上用fusuma 配置过,但不完美,没有实现滑动悬停,

再后来我回到deepinv20时,因为手头没多余的设备,反馈给官方,但官方明确没时间

https://github.com/orgs/linuxdeepin/discussions/4506

等有多余的设备再搞这个了。。。。唉

对,我看到xfreerdp 以及 remoteapptool(忘了是不是这个project)的wiki上也是推荐server版本(而且可能要解决类似单点的问题,否则只能多用户远程),等我有时间吧,用qemu虚拟个win server试试

Reply View the author
神末shenmo
deepin
Spark-App
2023-09-04 07:00
#22
Reply View the author
babyfengfjx
Super Moderator
CQA
2023-09-04 18:38
#23

我用windows作为控制端,怕是不贼啊😂

Reply View the author
csworldcup
deepin
2023-09-09 18:51
#24
忘记、过去

感觉 Deepin 上 VNC 配置更方便亿点,毕竟是 LightDM joy

装了 x11vnc 写个启动服务开机自启就行,vncviewer 直接远程连接......除了大小写和数字键盘有亿点问题之外都挺好的 doubt

加上了 -​capslock -nomodtweak 参数启动服务后大小写和数字键盘能用,但是打不出来 < 就很伤......

能正常连接吗?为什么我按楼主的教程装了 x11vnc,还是远程不了,不管是 mac 上面的 vnc viewer还是windows 的远程桌面或者 rdp,都远程不了 deepin,提示就是很简单的 timed out 。。。

Reply View the author
csworldcup
deepin
2023-09-09 19:40
#25
csworldcup

能正常连接吗?为什么我按楼主的教程装了 x11vnc,还是远程不了,不管是 mac 上面的 vnc viewer还是windows 的远程桌面或者 rdp,都远程不了 deepin,提示就是很简单的 timed out 。。。

搞定了,还需要在防火墙里面把5900端口给放行,楼主的脚本里面如果能把这一条加进去就完美了

Reply View the author
babyfengfjx
Super Moderator
CQA
2023-09-22 18:18
#26
DebuggerX

remote.jpg

这是我现在的日常:

  • 开发主力机:deepin v23
  • windows:用rdesktop连接家里pve小主机上的windows server 2012R2
  • MacOS:用千兆网线通过NoMachine连接办公室的MacBook Air
  • 常用笔记本:通过NoMachine连接局域网里装的UOS的笔记本

我用flutter做跨平台开发,这样就可以直接在“一台电脑”上同时开发调试APP在windows/linux/mac/ios/android/web下的效果了

铁子,用deepin控制windows没有啥问题,但是今天我用windows反过来连接deepin V23的时候一直连接不上,有知道是什么原因么?

连接的时候,在deepin这边实际上有个短暂的提示被连接上了,然后立马就断开。

windows这边就报了个错误:

image.png

Reply View the author
deepin
2023-11-24 22:35
#27

GNOME 42及之后都继承了这个共享屏幕的功能,可以在主机不黑屏的情况下实现RDP共享屏幕。如果能实现同样的功能可就太好啦,想入手deepin但迫于实在没有这个功能,只能滞留在ubuntu。
捕获0.PNG捕获.PNG捕获1.PNG

Reply View the author
babyfengfjx
Super Moderator
CQA
2023-11-27 21:12
#28

GNOME 42及之后都继承了这个共享屏幕的功能,可以在主机不黑屏的情况下实现RDP共享屏幕。如果能实现同样的功能可就太好啦,想入手deepin但迫于实在没有这个功能,只能滞留在ubuntu。
捕获0.PNG捕获.PNG捕获1.PNG

这个看起来很6啊,系统自带这个就省去了用户自己配置的麻烦😂

Reply View the author
deepin
2023-11-27 23:49
#29
babyfengfjx

这个看起来很6啊,系统自带这个就省去了用户自己配置的麻烦😂

是滴是滴,我进一步了解了一下,通过sudo lsof -i :3389查看了3389的程序,发现是叫做gnome-remote-desktop-daemon的GNOME自带程序。

Reply View the author
deepin
2023-11-27 23:52
#30

关于xrdp的优化可以看看这个,有帮助! https://blog.csdn.net/wu_weijie/article/details/116158271

Reply View the author
乾豫恒益
deepin
2024-03-04 10:43
#31

这个帖子的价值真的高啊,收藏起来!tail

Reply View the author
田景观
deepin
2024-05-20 17:49
#32
蔡EEPIN

rustdesk + 自建server 真香

我的rusdesk是这样的,不知怎么搞了。
Snipaste_2024-05-20_17-46-42.pngSnipaste_2024-05-20_17-48-13.png

Reply View the author
c🏔czm
deepin
2024-06-12 17:53
#33
It has been deleted!
z***[email protected]
deepin
2024-06-24 03:59
#34

请问楼主试过方案二在deepen v23可以正常使用吗?我试了楼主的方法还是不行,能否帮忙升级一下仓库里xrdp的包的版本?

Reply View the author
134******89
deepin
2024-08-30 22:47
#35

方案2:RDP协议连接方式

这个方法不行啊,创建了另外一个账号还是黑屏是什么回事呢?

Reply View the author
babyfengfjx
Super Moderator
CQA
2024-09-02 14:47
#36
134******89

方案2:RDP协议连接方式

这个方法不行啊,创建了另外一个账号还是黑屏是什么回事呢?

试了下,现在好像是不贼,后面一致用的VNC方案,RDP在linux上还不是不太贼……

Reply View the author
2 / 2
To page