Ubuntu Desktop 启用远程桌面(Vino和TigerVNC方式)

2023-11-18

前言

在很多领域的生产开发工作中常常需要用到 Ubuntu Desktop 系统,但是在一些日常的工作交流中又离不开Windows系统,这种时候比较常用的解决方案就是在Windows系统上使用虚拟机安装Ubuntu。不过就我个人而言并不喜欢使用虚拟机,弄个小主机无显示使用起来更加舒服。有些特定的工作需要用到 Ubuntu Desktop 桌面环境,这个时候远程桌面就是一个非常好用的功能了。

这篇文章中以 Ubuntu 20.04 进行说明测试。

使用Vino方式

Ubuntu Desktop 是自带屏幕共享(远程桌面)功能的(Vino),但有可能需要安装下才会在菜单中显示。在终端中使用下面命令进行安装设置:

sudo apt update

sudo apt install vino

gsettings set org.gnome.Vino require-encryption false

安装完成后可以在 Settings 中启用 Sharing 后看到 Screen Sharing 选项:
在这里插入图片描述
Screen Sharing 选项中设置密码与网络即可开启屏幕共享:
在这里插入图片描述
在这里插入图片描述
开启屏幕共享后就可以在其它电脑上使用 VNC Viewer 等工具连接到此桌面。 VNC Viewer 可以在下面地址下载:
https://www.realvnc.com/en/connect/download/viewer/
默认端口号为5900,提示未加密的连接不必用管,直接 Continue 即可:
在这里插入图片描述
在这里插入图片描述

需要注意的是如果你之前开启过SSH服务(就是使用 sudo apt install openssh-server 安装启用的那个),那么可能在上述操作后SSH服务会被关闭,注意检查下相关设置:
在这里插入图片描述
上面 Remote Login 那个。

无显示器使用

启用屏幕共享后主机可以在角落一直挂机了,需要用的时候远程连上用就行。但是还有个问题,通常情况下主机的HDMI、DP等数字的视频输出口外面不接显示器的话,系统启动后也不会进入图形界面,这个时候用 VNC Viewer 等工具连接显示出的也只是一片黑屏。

这个时候就需要用一些方法来欺骗设备或系统了,主要可以使用两类方式(如果用下面的TigerVNC那么也可以跳过这个章节)。

硬件虚拟显示器
最简单的就是花点钱,假装有个显示器:
在这里插入图片描述

软件虚拟显示器
不想花钱或是不方便使用硬件伪装的话可以尝试软件形式的虚拟显示器,主要是使用 xserver-xorg-video-dummy 这个软件,具体的使用方式可以参考下面文章:
《How to run X server using xserver-xorg-video-dummy driver on Ubuntu》
《【LINUX】(Ubuntu)无显示器接入,使用虚拟显示器且远程控制》

使用TigerVNC方式

Vino用起来很方便,但是局限性也蛮大的,相对来说TigerVNC更加好用些。Vino相对来说偏向于屏幕共享,而TigerVNC就更加偏向于远程桌面了。TigerVNC可以方便的设置远程桌面的分辨率、色彩深度等。甚至TigerVNC还可以无显示器使用(当然有显示器和没显示器界面效果是有差异的)。

TigerVNC项目主页: https://tigervnc.org/
TigerVNC项目页面: https://github.com/TigerVNC/tigervnc

# 下面是Ubuntu中TigerVNC相关的一些包,使用 VNC server 功能只需要安装没有注释掉的部分即可
sudo apt install tigervnc-common
# sudo apt install tigervnc-scraping-server
sudo apt install tigervnc-standalone-server
# sudo apt install tigervnc-viewer
# sudo apt install tigervnc-xorg-extension

安装完成后需要进行一些设置,先设置远程连接的密码
在这里插入图片描述
最后的选项选n。

然后配置远程连接显示的桌面
在这里插入图片描述
上面 xstartup 中文本针对的是 Ubuntu Desktop 20.0.4 所用的Gnome3桌面设置的,文本如下:

#!/bin/sh

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

vncconfig -iconic &

dbus-launch --exit-with-session gnome-session &

接着就可以启动vncserver了,常用的比如 vncserver -localhost no -geometry 1280x720 :1
在这里插入图片描述
上面 -localhost no 是必选的,这样才能被远程访问;-geometry 1280x720 用于设置远程桌面分辨率;:1 指明服务开启的会话号为1,这个可以不写,不写程序也会自动分配一个可用的号。还有一个比较有用的参数是 -depth 24 ,用来设置色彩位深,默认为24,可以设置8、16、24、32。通常来说分辨率和位深越小,远程桌面再使用时会越流畅些。

启动完成后就可以使用 VNC Viewer 等工具进行连接了,端口号为5900+会话号,刚连接上时可能色彩有问题,刷新下就好:
在这里插入图片描述

可以使用 vncserver -list 来查看当前启用的会话,使用 vncserver -kill :会话号 来关闭会话
在这里插入图片描述
关于 vncserver 的更多内容可以使用 man vncserver 或者 vncserver -h 等来查看。

最后需要注意的是: vncserver 可能并不会开机启动,可以使用SSH登陆进行手动启动,或者参考 《Linux笔记:开机自动运行程序》 进行设置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu Desktop 启用远程桌面(Vino和TigerVNC方式) 的相关文章

  • 快速像素绘图库

    我的应用程序以每像素的方式生成 动画 因此我需要有效地绘制它们 我尝试过不同的策略 库 但结果并不令人满意 尤其是在更高分辨率的情况下 这是我尝试过的 SDL 好的 但是慢 OpenGL 像素操作效率低下 xlib 更好 但仍然太慢 svg
  • Windows CE 与嵌入式 Linux [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 现在我确信我们都清楚 Linux 与 Windows 桌面的相对优点 然而 我对嵌入式开发世界的了解却少得多 我主要对行业解决方案感兴
  • 高效的内存屏障

    我有一个多线程应用程序 其中每个线程都有一个整数类型的变量 这些变量在程序执行期间递增 在代码中的某些点 线程将其计数变量与其他线程的计数变量进行比较 现在 我们知道在多核上运行的线程可能会无序执行 一个线程可能无法读取其他线程的预期计数器
  • 如何查询X11显示分辨率?

    这似乎是一个简单的问题 但我找不到答案 如何查询 通过 X11 存在哪些监视器及其分辨率 查看显示宏 http tronche com gui x xlib display display macros html and 屏幕宏 http
  • 捕获实时流量时如何开启纳秒精度?

    如何告诉 libpcap v1 6 2 将纳秒值存储在struct pcap pkthdr ts tv usec 而不是微秒值 捕获实时数据包时 Note This question is similar to How to enable
  • 为什么C Clock()返回0

    我有这样的事情 clock t start end start clock something else end clock printf nClock cycles are d d n start end 我总是得到输出 时钟周期是 0
  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta
  • Tomcat从Eclipse和startup.sh启动

    奇怪的事情发生了 我可以从 Eclipse 和startup sh 启动Tomcat 从 Eclipse 运行我可以访问 localhost 8080 而从startup sh 运行时我不能 可能是什么问题呢 Ubuntu 11 10 在
  • 什么是 TTY?如何在 Ubuntu 上启用它?

    我目前正在设置一个 Node js 服务器 并且在这里使用调试模块https github com visionmedia debug https github com visionmedia debug 我正在尝试启用它 以便我可以在输出
  • 无法在 Perl 中找到 DBI.pm 模块

    我使用的是 CentOS 并且已经安装了 Perl 5 20 并且默认情况下存在 Perl 5 10 我正在使用 Perl 5 20 版本来执行 Perl 代码 我尝试使用 DBI 模块并收到此错误 root localhost perl
  • 每个命令都返回“bash:<命令>:找不到命令...”[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我刚刚安装了 Scala 并添加了路径gedit bashrc export SCALA HOME home avijit sca
  • Gearman,php 扩展问题:使用终端在 .. 中找不到类“GearmanWorker”,但可以在浏览器上使用

    我最近在 ubuntu 10 04 上安装了 gearman 并安装了它的 pecl 扩展 现在 当我在浏览器中运行一个 php 文件时 其中包含 client new GearmanWorker die var Dump client I
  • 让 TeXstudio 在 linux mint 中工作:找不到文件“url.sty”。

    刚刚切换到 Linux Mint 以前的顽固 Windows 用户 我在尝试安装 TeXstudio 时遇到一些问题 Sudo apt get install texstudio 给了我一个正确的安装 至少 我是这么认为的 但是当我尝试构建
  • 嵌入式linux编写AT命令

    我在向 GSM 模块写入 AT 命令时遇到问题 当我使用 minicom b 115200 D dev ttySP0 term vt100 时它工作完美 但我不知道如何在 C 代码中做同样的事情 我没有收到任何错误 但模块对命令没有反应 有
  • 如何从 C 程序中获取 NIC 详细信息?

    我想要获取连接到我的计算机的所有 NIC 的以下详细信息 1 接口名称 例如eth0 2 接口编号 如Windows http answers yahoo com question index qid 20080517041705AAOmJ
  • Raspberry 交叉编译 - 执行程序以“分段错误”结束

    我有一个自己编写的程序 我想从我的 x86 机器上为 Raspberry Pi 构建它 我正在使用 eclipse 生成的 makefile 并且无法更改此内容 我已经阅读了 CC for raspi 的教程 Hackaday 链接 htt
  • Web 应用程序的带宽和流量模拟器?

    您能否建议如何创建一个测试环境来模拟 Web 应用程序中的各种类型的带宽和流量 或者也许是一个针对本地主机执行此操作的开源程序 我认为在编写网络应用程序时这是一个非常重要的主题 但这不是一个常见的主题 我能想象创建这种环境的唯一方法是在本地
  • 为什么这个 JavaScript 可以在 Safari 上运行,但不能在 Firefox 上运行?

    我有 HTML 文件 我在 Safari 上尝试了该代码 运行良好 但是当我在 Firefox 上尝试这个时 它不起作用 任何人都可以建议如何使其在 Firefox 上工作吗 单击撤消按钮时 我想从 jsp 文件中检索内容 当我在 mac
  • PyPI 上的轮子平台约束有什么限制吗?

    是否有任何地方 PEP 或其他地方 声明关于 Linux 轮子上传范围的限制 PyPI http pypi io 应该有 具体来说 上传是否被认为是可接受的做法linux x86 64轮子到 PyPI 而不是manylinux1 x86 6
  • rustup install stable 下载过程中出现错误

    我使用命令安装 Rust curl sSf https static rust lang org rustup sh sh 当我跑步时 rustc main rs 这出现了 error no default toolchain config

随机推荐

  • 会计计算机二级考试试题,计算机二级考试MS-Office考试题库--excle--有答案.docx

    请在 答题 菜单下选择 进入考生文件夹 命令 并按照题目要求完成下面的操作 注意 以下的文件必须保存在考生文件夹下 小蒋是一位中学教师 在教务处负责初一年级学生的成绩管理 由于学校地处偏远地区 缺乏必要的教学设施 只有一台配置不太高的PC可
  • qt界面之toolTip

    一般需要在按钮中加入toolTip的提示 可以如下所示 后续继续更新
  • java并发编程

    并发编程 1 java线程 1 1 创建线程 1 1 1 Thread 匿名内部类实现Thread线程 new Thread t1 Override public void run start 1 1 2 Runnable new Thre
  • MobaXterm 终端永久设置字体大小

    刚接触 MobaXterm 没多久 想设置下界面字体大小 结果翻了翻网上 一些人都在瞎扯 没一个好用的 自己解决之后 特写出来 找到顶部的Settings 进去之后 找到font settings 调整为你想要的字体大小 一般12 14 就
  • 听老人一句劝,别去外包,干了四年,废了....

    我是一个普通二本大学机械专业毕业 目前做IT行业的软件测试已经有4年多了 18年通过校招进入湖南某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功
  • QT笔记——信号与槽

    Qt信号与槽机制通过connect 关联信号 QT4 1 槽函数必须有slots关键字 2 SIGNAL SLOT 将函数转为字符串 不进行错误检查 3 槽函数和信号一致 参数 返回值 没有返回值 sender 发送信号的对象 signal
  • C++中在类中重载输出运算符时遇到error: declaration of ‘class T‘的问题的解决

    一 问题代码及报错提示 include
  • 5 神经网络(PRML)

    之前我们讨论的模型是对于分类的回归模型 包含了线性组合的多个基础函数 但是他的应用范围有一定的限制 另外一个方法在于事先限定基础函数的个数并且使得他可自适应的 也就是说使得他的参数值在训练当中是可以发生变化的 其中最成功的模型是前向神经网络
  • 微信小程序开发(六)WXML 模板

    WXML模板
  • AttributeError: module ‘distutils‘ has no attribute ‘version‘ 解决方案

    问题描述 今天在执行时出现了题述错误 查阅了半天才找到解决方案 特此记录 LooseVersion distutils version LooseVersion 解决方案 将以上代码改写成 from distutils version im
  • JDBC基础

    JDBC是什么 用java语言操作关系型数据库的一套api JDBC是用来干什么的 用java语言来操作数据库 JDBC怎么写 1 加载驱动类Driver全限定名 包 类名 2 获取连接 getConnection url username
  • maven.plugins.enforcer.BannedDependences 异常解决方案

    maven plugins enforcer BannedDependences 异常解决方案 简介 maven enforce plugin是一个规范maven构建环境的插件 例如 Maven版本 JDK版本和OS系列以及更多内置规则和用
  • 图的基本操作(无向图)

    图的定义 图 Graph 在是一种较线性表和树更为复杂的数据结构 在线性表中 数据元素之间是被串起来的 只有线性关系 每个数据元素只有一个直接前驱和一个直接后继 在树形结构中 数据元素之间有着很明显的层次关系 并且每一层的数据元素可能和下一
  • 证明:Java代码在执行过程中,并不一定是从上到下,每句代码依次顺序执行的

    今天给大家带来一个毁三观的结论 Java代码在执行过程中 并不一定是从上到下 每句代码依次顺序执行的 这是不是很颠覆你的认知 计算机在执行程序的时候 并不会严格按照代码来顺序执行 比如第一个指令 是从内存中读取一个数据 而第二个指令 是寄存
  • zabbix设定监控指标每天调用一次

    添加了数据库备份的监控项 因为备份每天只做一次 如果一直取数意义不大 所以设定在每条早上9点取一次值 设定方式如图 更新间隔需要修改为0 否则还会按照间隔获取信息 选择调度 h表示小时 h9表示每天九点
  • 蓝桥杯第十一届青少年Python组省赛试题

    选择题答案 ADDCA s input if s 2 er or s 2 ly s s 2 elif s 3 ing s s 3 print s n int input cnt 0 for i in range 2 n s 0 for j
  • Unity平台如何实现RTSP转RTMP推送?

    技术背景 Unity平台下 RTSP RTMP播放和RTMP推送 甚至包括轻量级RTSP服务这块都不再赘述 今天探讨的一位开发者提到的问题 如果在Unity下 实现RTSP播放的同时 随时转RTMP推送出去 RTSP转RTMP 在原生环境下
  • 开始做一个平台程序

    先赚个积分吧 公司的项目 从0开始
  • BP、CNN、ResNet:图片分类FashionMnist和CIFAR-10

    源码 GitHub jeanMrx FashionMnist CIFAR10 一 实验目的 理解BP神经网络和卷积神经网络的结构和原理 掌握反向传播学习算法对神经元的训练过程 了解损失函数的反向传播和梯度下降 通过构建BP神经网络和卷积神经
  • Ubuntu Desktop 启用远程桌面(Vino和TigerVNC方式)

    文章目录 前言 使用Vino方式 无显示器使用 使用TigerVNC方式 前言 在很多领域的生产开发工作中常常需要用到 Ubuntu Desktop 系统 但是在一些日常的工作交流中又离不开Windows系统 这种时候比较常用的解决方案就是