当前位置: 首页 > news >正文

VNC server ubuntu20 配置

介绍

最近想使用实验室的4卡服务器跑一些深度学习实验,因为跑的是三维建图实验,需要配上可视化界面,本来自带的IPMI可以可视化,但分辨率固定在640*480,看起来很别扭,就捣鼓服务器远程可视化访问了两天,踩坑很多,还好搞成了,记录一下。

VNC是虚拟网络计算的缩写,是一个远程图形桌面共享系统,允许可视化的使用键盘和鼠标对远端设备图形用户界面进行远程访问。让用户(客户端或称“本地电脑”)连上提供终端机服务的电脑(服务器端或称“远程电脑”)。

VNC的另一个同类技术是RDP(Remote Desktop Protocol),其在服务器端仅适配windows系统,客户端可以在Windows、Linux、FreeBSD、Mac OS X上使用。

这里用到的服务器是Linux系统,用VNC。

参考:RDP 还是 VNC?远程桌面该如何选

 本博客所使用远程图形桌面共享系统详细配置:

ubuntu 桌面环境:Xfce。其他包括(Gnome(连接上后出现灰屏问题)、Unity、KDE等等)

VNC-Server:tigervnc,其他包括TightVNC 和 x11vnc 

配置方法

安装XFCE桌面环境

这里也尝试过Ubuntu自带的Gnome,虽然最后成功连接上,但界面是灰色,没有响应。

sudo apt update
sudo apt install xfce4 xfce4-goodies

安装VNC服务

Ubuntu 存储库中有几种不同的 VNC 服务器可用,例如 TightVNC 、 TigerVNC 和 x11vnc 。每个 VNC 服务器在速度和安全性方面都有不同的优势和劣势。 TigerVNC是一个积极维护的高性能 VNC 服务器,参数配置也更易懂整洁一些。 输入以下命令安装包。

sudo apt install tigervnc-standalone-server

VNC server设置

配置连接密码

vncpasswd#输出结果
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used

配置启动命令,将~/.vnc/xstartup文件备份,内容替换为:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4

添加可执行权限

chmod u+x ~/.vnc/xstartup

启动vncserver 

vncserver -localhost no -geometry 1280x800

其中 -localhost开放非localhost客户端连接,-geometry配置分辨率

VNC客户端连接

使用Remmina,输入ip:number,number为启动vncserver 时终端输出的数字。

最后连接成功的界面如下:

参考:

实战记录在 Linux Ubuntu 20.04 安装VNC 远程桌面_ubuntu20.04安装vnc xfce xstartup-CSDN博客

https://www.cnblogs.com/a5idc/p/13539969.html

遇到的问题

VNC卸载导致桌面环境崩溃

Ubuntu 存储库中有几种不同的 VNC 服务器可用,例如 TightVNC 、 TigerVNC 和 x11vnc,刚开始没有注意到,导致参考博客文章以上几个都安装了,也不确定在用哪个,又担心冲突导致问题,就用apt purge卸载,结果卸载之后重启电脑,系统图形界面无法进入,只能进入命令行界面。

接着发现显卡驱动都不见了,很是奇怪,在安装显卡驱动时候又发现内核版本不能太高,否则之前下载好的显卡驱动无法安装成功,于是又切换到旧的内核版本,显卡驱动安装成功后又需要切换回新的内核版本,否则IPMI的图形界面仍然进不去。

参考:https://www.cnblogs.com/carle-09/p/12377128.html

接着是修复可视化界面,需要重新配置桌面环境。

#重新配置
sudo dpkg-reconfigure gdm3
#查看
cat /etc/X11/default-display-manager

连接成功后显示拒绝连接 

通过~/.vnc目录下的对应数字log查看了报错,上网查询发现是conda激活默认环境冲突导致,于是关闭conda默认激活,成功连接并显示界面。

http://www.lryc.cn/news/365212.html

相关文章:

  • c++--priority_queue和仿函数
  • Harmony os Next——关系型数据库relationalStore.RdbStore的使用
  • 快手直播限流怎么办?
  • 【MySQL】数据库入门基础
  • cannot allocate memory in static TLS block
  • Leetcode 654:最大二叉树
  • uniapp小程序src引用服务器图片时全局变量与图片路径拼接
  • 比较PWM调光和无极调光
  • 【高校科研前沿】新疆生地所陈亚宁研究员团队在GeoSus发文:在1.5°C和2°C全球升温情景下,中亚地区暴露于极端降水的人口增加
  • 使用 OKhttp3 实现 智普AI ChatGLM HTTP 调用(SSE、异步、同步)
  • 智慧校园教学模式的崛起:优化学习体验
  • ffmpeg视频编码原理和实战-(5)对编码过程进行封装并解决丢帧问题
  • halo进阶-主题插件使用
  • 资深开发推荐的IDEA 插件
  • 数学题目系列(一)|丑数|各位和|埃氏筛|欧拉筛
  • k8s学习--Secret详细解释与应用
  • 功能问题:如何防止接口重复请求?
  • 系统架构设计师【第5章】: 软件工程基础知识 (核心总结)
  • 嵌入式Linux系统编程 — 2.2 标准I/O库:检查或复位状态
  • pESC-HIS是什么,怎么看?-实验操作系列-2
  • 树形表/树形数据接口的开发
  • 二叉树的镜像--c++【做题记录】
  • redis安裝启动
  • 为什么Java中的main方法必须是public static void的?
  • shell的编程方式
  • 前端面试项目细节重难点(已工作|做分享)想(八)
  • Loguru,一个 Python 日志神器
  • C++ 反转单词
  • Apache Doris 基础 -- 数据表设计(表索引)
  • 资源描述框架的用途及实际应用解析