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

Ubuntu20.04之VNC的安装使用与常见问题

Ubuntu20.04之VNC的安装与使用

  • 安装图形桌面
    • 选择安装gnome桌面
    • 选择安装xface桌面
  • VNC-Server
    • 安装
    • 配置
    • 开机自启
  • VNC Client
  • root用户无法登入问题
    • 临时方案
    • 永久方案

安装图形桌面

Ubuntu20.04主流的图形桌面有gnome和xface两种,两种桌面的安装方式我都会写,但这里较推荐gnome桌面

选择安装gnome桌面

sudo apt update #更新软件源
sudo apt install ubuntu-gnome-desktop #安装gnome
sudo systemctl start gdm #刚安装Gnome,需要启动GDM服务以初识化桌面

选择安装xface桌面

sudo apt update #更新软件源
sudo apt install xfce4 xfce4-goodies #安装xface

在这里插入图片描述

这个选项选择是否启用显示管理器,选择第一个并Enter

显示管理器是一个程序,使您的 Linux 发行版拥有图形登录功能。它还负责在您使用用户名和密码登录后启动显示服务器和桌面环境

VNC-Server

安装

VNC分为Server(服务端,用于提供图像数据)和Client (客户端,用于接收图像数据),这里推荐使用TightVNC Server + RealVNC View的组合

sudo apt install tigervnc-standalone-server #在ubuntu上安装tigervnc-server

安装完tigervnc后需要启动一个vncserver来初识化密码

sudo vncserver #启动vnc-server
# 首次启动需要定义一个6-8位的密码,超8位密码会被自动截断You will require a password to access your desktops.Password:
Verify:
Would you like to enter a view-only password (y/n)? n#Tip: 如需修改密码,你可以通过下面的命令修改你的vncserver的密码
# sudo vncpasswd

设置完vncserver的密码后先关闭vncserver做进一步的配置,否则现在连接你的客户端上是一篇空白的

sudo vncserver -kill :*

配置

  • 创建并添加xstartup文件到/etc/vnc/xstartup(这步一定要做)

    sudo mkdir /etc/vnc #创建VNC目录
    sudo nano /etc/vnc/xstartup #创建并编辑xstartup文件
    
  • /etc/vnc/xstartup文件中添加下面的内容

    #!/bin/shtest x"$SHELL" = x"" && SHELL=/bin/bash
    test x"$1"     = x"" && set -- defaultunset SESSION_MANAGER
    unset DBUS_SESSION_BUS_ADDRESSvncconfig -iconic &
    "$SHELL" -l << EOF
    export XDG_SESSION_TYPE=x11
    export GNOME_SHELL_SESSION_MODE=ubuntu
    dbus-launch --exit-with-session gnome-session --session=ubuntu
    EOF
    vncserver -kill $DISPLAY
    

    使用xface桌面的添加下面的内容

    #!/bin/sh
    # Start up the standard system desktop
    unset SESSION_MANAGER
    unset DBUS_SESSION_BUS_ADDRESS
    /usr/bin/startxfce4
    [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
    [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
    x-window-manager &
    
  • 设置为可执行文件

    sudo chmod +x /etc/vnc/xstartup
    
  • 创建并添加xstartup文件到~/.vnc/xstartup(区别于上一步,这步也要做)

    sudo vim ~/.vnc/xstartup #创建并编辑xstartup文件
    
  • ~/.vnc/xstartup文件中添加下面的内容

    #!/bin/sh
    [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
    [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
    
  • 设置为可执行文件

    sudo chmod a+x ~/.vnc/xstartup
    
  • 启动VCN-Server

    sudo vncserver :1 -geometry 1920x1080 -depth 24 -localhost no
    #注:-localhost no参数一定要有,没有的话可能无法正常连接,其余参数就是分辨率之类的了,可自定	义参数,如果输出下面的类似内容则说明服务器端正常运行
    # New 'bytexd:1 (edxd)' desktop at :1 on machine bytexd
    # Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/edxd/.vnc/passwd :1 to connect to the VNC server.
    

开机自启

为设置vnc开机自启,不用每次都需要输入指令开启,可以将vnc-server的开启指令添加到系统服务中

  • 创建并添加到/etc/systemd/system/vncserver@.service文件中
    vim /etc/systemd/system/vncserver@1.service
    向文件里面添加以下内容

    [Unit]
    Description=Start TigerVNC server at startup
    After=syslog.target network.target[Service]
    Type=simple
    User=root
    PAMName=login
    PIDFile=/home/tom/.vnc/%H:%i.pid
    ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
    ExecStart=/usr/bin/vncserver -fg -depth 24 -geometry 1920x1080 -localhost no :%i
    ExecStop=/usr/bin/vncserver -kill :%i
    [Install]
    WantedBy=multi-user.target
  • 开机自启vncserver

    sudo systemctl daemon-reload #加载引导程序
    sudo sudo systemctl enable vncserver@1.service # 设置开机自启
    # 输出内容如下:
    # Created symlink /etc/systemd/system/multi-user.target.wants/vncserver@1.service → /etc/systemd/system/vncserver@.service.
    
  • 启动服务

    sudo sudo systemctl start vncserver@1.service
    
  • 检查服务状态

sudo sudo systemctl status vncserver@1.service

VNC Client

推荐 vnc-view,自接下载安装即可

大部分的VNC-Client都是只需要Ubuntu的 IP + 端口 + 密码 即可

# 这里说明一下端口
端口号就是5900+服务器索引,
如   vncserver :1指令开启的是第一个服务器,因此第一个服务器的端口就是5901,
类推,vncserver :2的端口就是5902

在这里插入图片描述

root用户无法登入问题

Ubuntu安装图形化界面后使用root用户,输入正确密码也无法登录,但是可以通过ssh远程登录命令行界面,具体现象如下。
在这里插入图片描述
通过命令less /var/log/auth.log查看日志信息如下。

gdm-password]: pam_succeed_if(gdm-password:auth): requirement "user != root" not met by user "root"

临时方案

loginctl unlock-sessions  ## 可以解锁所有被锁的会话

永久方案

  • 使用命令vi /etc/pam.d/gdm-password修改gdm-password文件。 修改位置如图示。
    在这里插入图片描述
  • 将配置项的user != root删除,修改后配置信息如下。
    在这里插入图片描述
  • 保存退出

相关文章:

Ubuntu20.04之VNC的安装使用与常见问题

Ubuntu20.04之VNC的安装与使用 安装图形桌面选择安装gnome桌面选择安装xface桌面 VNC-Server安装配置开机自启 VNC Clientroot用户无法登入问题临时方案永久方案 安装图形桌面 Ubuntu20.04主流的图形桌面有gnome和xface两种&#xff0c;两种桌面的安装方式我都会写&#xff0c…...

15.5 基于 RetrievalQA 的销售话术增强系统实战:构建智能销售大脑

基于 RetrievalQA 的销售话术增强系统实战:构建智能销售大脑 关键词:RetrievalQA 应用实战、销售知识增强、语义检索优化、上下文感知问答、多源知识融合 1. RetrievalQA 技术原理与销售场景适配 1.1 RetrievalQA 核心工作机制 #mermaid-svg-VL2yIusgl4oprXUr {font-family…...

Vue 刷新当前组件的5种方式

一&#xff0c;使用 location.reload() 这是最直接的方法&#xff0c;它会像用户点击浏览器的刷新按钮一样重载页面。 location.reload();二&#xff0c;使用路由刷新当前页面 如果当前组件是通过路由加载的&#xff0c;可以通过路由的 push 方法重新加载当前路由。 this.$…...

Python 科学计算

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

从同步到异步:Vue 3 的异步更新策略与 `tick` 机制

1. 引言&#xff1a;Vue 3 的异步更新&#xff0c;我们真的了解吗&#xff1f; 在日常开发中&#xff0c;我们都知道 Vue 3 是异步更新的。大多数时候&#xff0c;我们只是简单地使用 ref、reactive、computed 等 API&#xff0c;享受着 Vue 的响应式系统带来的便利。然而&…...

2024中国信通院“集智”蓝皮书合集(附下载)

【目 录】 1. 数字政府一体化建设蓝皮书&#xff08;2024年&#xff09; 2. 数字乡村发展实践蓝皮书&#xff08;2023年&#xff09; 3. 中国工业互联网发展成效评估报告&#xff08;2024年&#xff09; 4. 云计算蓝皮书&#xff08;2024年&#xff09; 5. 具身智能发展报告…...

muduo源码阅读:linux timefd定时器

⭐timerfd timerfd 是Linux一个定时器接口&#xff0c;它基于文件描述符工作&#xff0c;并通过该文件描述符的可读事件进行超时通知。可以方便地与select、poll和epoll等I/O多路复用机制集成&#xff0c;从而在没有处理事件时阻塞程序执行&#xff0c;实现高效的零轮询编程模…...

nvm 1.2.2 报错解决方法 The system cannot find the file specified.

安装了最新版本nvn1.2.2后&#xff0c;安装老版本node时报错&#xff08;安装新版本没问题&#xff09;&#xff0c;报错内容如下&#xff1a; error installing 14.16.0: open C:\Users\admin\AppData\Local\Temp\nvm-npm-430098699\npm-v6.14.11.zip: The system cannot fin…...

学习Python的基本入门知识

学习Python的入门知识可以从以下几个方面开始&#xff1a; ### 1. **Python简介** - **Python** 是一种高级、解释型、通用的编程语言&#xff0c;由Guido van Rossum于1989年发布。 - 它以简洁、易读的语法著称&#xff0c;适合初学者。 - 广泛应用于Web开发、数据分…...

web安全——分析应用程序

文章目录 一、确定用户输入入口点二、确定服务端技术三、解析受攻击面 一、确定用户输入入口点 在检查枚举应用程序功能时生成的HTTP请求的过程中&#xff0c;用户输入入口点包括&#xff1a; URL文件路径 通常&#xff0c;在查询字符?之前的URL部分并不视为用户输入入口&am…...

OpenEuler学习笔记(三十五):搭建代码托管服务器

以下是主流的代码托管软件分类及推荐&#xff0c;涵盖自托管和云端方案&#xff0c;您可根据团队规模、功能需求及资源情况选择&#xff1a; 一、自托管代码托管平台&#xff08;可私有部署&#xff09; 1. GitLab 简介: 功能全面的 DevOps 平台&#xff0c;支持代码托管、C…...

平台设备驱动之gpio子系统(写驱动实现在/sys/...目录下用echo命令点灯)

1、 关键函数&#xff08;include/linux 及 driver目录下&#xff09; ​ module_platform_driver(leds_drv); //平台设备驱动入口//获取匹配成功后设备树节点中的 property ​ of_get_named_gpio_flags(node, "led_gpio", 0, &flags); //在/sys/目录下创建文…...

PS渐变工具

渐变工具&#xff1a;&#xff08;颜色条 起点到终点 为 前景色到背景色&#xff09; 渐变shift&#xff1a;垂直、水平、45度 渐变工具–》仿色&#xff1a;让渐变变得细腻。仿色值高&#xff0c;过渡柔和&#xff0c;仿色值低&#xff0c;过渡粗糙 渐变工具–》渐变编辑器&am…...

JavaScript将:;隔开的字符串转换为json格式。使用正则表达式匹配键值对,并构建对象。多用于解析cssText为style Object对象

// 使用正则表达式匹配键值对&#xff0c;并构建对象 let string2Json(s)>{const r {};s.replace(/&#xff1b;/g, ;).replace(/\;/g, \n).replace(/&#xff1a;/g, :).replace(/\n/g, \n)//合并多个换行符.split(\n).forEach(item > {const [k, v] item.split(:);(k…...

2025年追觅科技社招校招入职测评北森题库商业推理测试内容与技巧

在追觅科技的招聘流程中&#xff0c;无论是校园招聘还是社会招聘&#xff0c;应聘者都需要通过北森测评题库的商业推理部分。这部分的测评旨在评估应聘者的商业推理能力&#xff0c;是评估考生综合能力的重要工具。考试时间为40分钟&#xff0c;需要完成28题&#xff0c;题型以…...

AI大模型-提示工程学习笔记19-自我反思

目录 1. 自我反思的核心思想 (1) LLM 的局限性 (2) Reflexion 的解决方案 2. Reflexion 的工作流程 (1) 任务输入 (2) 初始生成 (3) 反思 (Reflection) (4) 调整与改进 (5) 迭代 (6) 结果输出 3. Reflexion 的关键组件 (1) 大语言模型 (LLM) (2) 反思者 (Reflector…...

【工具变量】公司企业数字领导力(2004-2023年)

数据简介&#xff1a;企业数字化领导力是指在数字经济时代&#xff0c;领导者通过战略性地使用数字资产、引领组织变革&#xff0c;使企业在数字化环境中获得持续成功的能力。对于上市公司而言&#xff0c;这种领导力尤为重要&#xff0c;因为它直接关系到企业的战略方向、市场…...

Android 10.0 Settings中系统菜单去掉备份二级菜单

1.前言 在10.0的系统rom定制化开发中,在系统Settings开发过程中,会发现在settings中的系统菜单中需要去掉 备份这个菜单,接下来就需要分析下系统菜单中的备份菜单的相关功能,然后实现去掉备份菜单的功能 2.Settings中系统菜单去掉备份二级菜单的核心类 packages/apps/Se…...

C++ | 设计模式 | 代理模式

代理模式&#xff08;Proxy Pattern&#xff09; 代理模式是一种结构型设计模式 &#xff0c;它为某个对象提供一个代理&#xff0c;以控制对该对象的访问。代理模式可以在不改变原始对象的情况下&#xff0c;通过引入代理对象来扩展功能或控制对原始对象的访问。 核心思想 代…...

【Vue工作原理】VueCli4 模板文件template不存在会生产一个默认文件原理

Vue CLI 4 的 HtmlWebpackPlugin 在模板文件缺失时&#xff0c;‌不会中断构建流程‌&#xff0c;而是自动生成一个‌极简 HTML 结构‌&#xff08;DeepSeek回答&#xff09; ‌&#x1f4d8; 官方资料来源解析&#xff08;基于 2025 年存档数据&#xff09;‌ 当前时间&#…...

数据开发的简历及面试

简历 个人信息: 邮箱别写QQ邮箱, 写126邮箱/189邮箱等 学历>>本科及以上写,大专及以下不写 专业>>非计算机专业不写 政治面貌>>党员写, 群众不用写 掌握的技能: 精通 > 熟悉 > 了解 专业工具: 大数据相关的 公司: 如果没有可以写的>>金融服…...

如何在docker上部署前端nginx服务(VUE)

目录结构 clean.sh docker stop rszWeb; docker rm rszWeb; start.sh docker run -d \ --name rszWeb \ -p 7084:80 \ -m 500m \ --privileged=true \ --restart=always \ -v /home/rsz/ui/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /home/rsz/ui/logs:/meta/logs \ -v /…...

模型和数据集的平台之在Hugging Face上进行模型下载、上传以及创建专属Space

模型下载 步骤&#xff1a; 注册Hugging Face平台 https://huggingface.co/ 新建一个hf_download_josn.py 文件 touch hf_download_josn.py 编写hf_download_josn.py文件 import os from huggingface_hub import hf_hub_download# 指定模型标识符 repo_id "inter…...

[Web 信息收集] Web 信息收集 — 手动收集 IP 信息

关注这个专栏的其他相关笔记&#xff1a;[Web 安全] Web 安全攻防 - 学习手册-CSDN博客 0x01&#xff1a;通过 DNS 服务获取域名对应 IP DNS 即域名系统&#xff0c;用于将域名与 IP 地址相互映射&#xff0c;方便用户访问互联网。对于域名到 IP 的转换过程则可以参考下面这篇…...

排序算法(3):

这是我们的最后一篇排序算法了&#xff0c;也是我们的初阶数据结构的最后一篇了。 我们来看&#xff0c;我们之前已经讲完了插入排序&#xff0c;选择排序&#xff0c;交换排序&#xff0c;我们还剩下最后一个归并排序&#xff0c;我们今天就讲解归并排序&#xff0c;另外我们还…...

TypeScript - 泛型

泛型允许在定义函数、类或接口时&#xff0c;使用类型参数来表示未指定的类型&#xff0c;这些参数在具体使用时&#xff0c;才被指定具体的类型&#xff0c;泛型能让同一段代码适用于多种类型&#xff0c;同时仍然保持类型的安全性。 举例&#xff1a;如下代码中 <T> 就…...

Python基于Django和Vue的校园互助平台(附源码、文档说明)

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…...

打包rocketmq-dashboard报错问题记录

在进入到\rocketmq-dashboard-2.0.0\rocketmq-dashboard-rocketmq-dashboard-2.0.0目录下&#xff0c;执行mvn clean package -Dmaven.test.skiptrue打包&#xff0c;报错&#xff1a; java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does…...

Redis 高可用性:如何让你的缓存一直在线,稳定运行?

&#x1f3af; 引言&#xff1a;Redis的高可用性为啥这么重要&#xff1f; 在现代高可用系统中&#xff0c;Redis 是一款不可或缺的分布式缓存与数据库系统。无论是提升访问速度&#xff0c;还是实现数据的高效持久化&#xff0c;Redis 都能轻松搞定。可是&#xff0c;当你把 …...

Windows和AD域提权枚举脚本及工具介绍

在 Windows 和 Active Directory (AD) 域环境中&#xff0c;权限提升和枚举是渗透测试的关键部分。为了有效进行这些操作&#xff0c;使用特定的工具和脚本可以帮助你识别和利用系统中的漏洞。以下是一些常用于 Windows 和 AD 域环境中的权限提升和枚举脚本工具&#xff1a; W…...