如何在 Ubuntu 18.04 上安装和配置 VNC 服务器

2023-10-27

VNC 代表“虚拟网络计算”,是一组用于远程共享桌面系统的协议。有许多软件可用于远程访问基于 Linux 的桌面,包括 TigerVNC、TightVNC、Vino、vnc4server 等等。

TigerVNC 是一款免费、开源、高性能的 VNC 服务器,用于远程控制或访问基于 Linux 的桌面系统。它是一个客户端/服务器应用程序,允许您与远程计算机上的图形应用程序进行交互。

本教程向您介绍如何在 Ubuntu 18.04 Linux 系统上安装和配置 VNC 服务器。

先决条件

默认情况下,Ubuntu Server 不包含桌面环境。 TigerVNC 服务器设计用于仅控制桌面系统。因此,您需要在服务器中添加桌面环境。

首先,使用以下命令更新和升级所有已安装的软件包:

sudo apt update && apt upgrade 

系统更新后,安装tasksel安装桌面环境的实用程序:

sudo apt install tasksel -y 

安装 Tasksel 后,使用以下命令启动 Tasksel 实用程序:

sudo tasksel 

您应该看到以下界面:

使用箭头键向下滚动列表并找到Ubuntu桌面。接下来,按空格键选择它,然后按 Tab 键选择“确定”,然后按 Enter 键安装 Ubuntu 桌面。

安装所有软件包后,您将需要将系统引导设置为图形目标。您可以使用以下命令进行设置:

sudo systemctl set-default graphical.target 

Next, restart您的系统以应用更改。

步骤 2 – 在 Ubuntu 18.04 上安装 VNC 服务器

默认的 Ubuntu 18.04 apt 存储库包含 TigerVNC 服务器包。您只需运行以下命令即可安装它:

sudo apt install tigervnc-standalone-server -y 

安装 TigerVNC 后,创建一个新用户并为该用户设置 VNC 密码。

首先,使用以下命令创建一个名为 tecadmin 的新用户:

sudo adduser tecadmin 

接下来,将用户切换到 tecadmin 并使用以下命令设置 VNC 密码:

su - tecadmin
vncpasswd 

提供您想要的密码,如下所示:


Password:
Verify:
Would you like to enter a view-only password (y/n)? n
  

接下来,使用以下命令启动 VNC 服务器:

vncserver -localhost no 

VNC 服务器启动后,您应该得到以下输出:


/usr/bin/xauth:  file /home/tecadmin/.Xauthority does not exist

New 'ubuntu1804:1 (tecadmin)' desktop at :1 on machine ubuntu1804

Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/tecadmin/.vnc/ubuntu1804:1.log

Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /home/tecadmin/.vnc/passwd ubuntu1804:1 to connect to the VNC server.
  

您可以使用以下命令验证正在运行的 VNC 服务器:

vncserver -list 

您应该得到以下输出:


TigerVNC server sessions:

X DISPLAY #     PROCESS ID
:1              30982
  

第 2 步 – 安装 VNC 客户端

在本节中,我们将在远程计算机上安装 RealVNC VNC 客户端并连接到 VNC 服务器。

您可以从以下位置下载 RealVNC 客户端:RealVNC下载页。确保选择正确的系统架构。默认页面下载32位包。

下载完成后,使用以下命令安装下载的包:

sudo dpkg -i ~/Downloads/VNC-Viewer-6.20.529-Linux-x64.deb  

接下来,从 Gnome 应用程序菜单启动 VNC 客户端。然后,单击文件菜单 => 新建连接创建一个新的连接。您应该看到以下屏幕:

提供Name and IP地址以及 VNC 会话 ID:1您的 VNC 服务器并单击OK以保存连接。您应该在以下屏幕中看到您保存的连接:

现在,双击新创建的连接。系统将要求您提供 VNC 密码,如下所示:

提供您的 VNC 密码并单击“确定”。连接后,您应该会看到 Ubuntu 桌面屏幕:

步骤 3 – 为您的桌面环境设置 VNC

在开始之前,使用带有 -kill 选项和服务器会话 ID 作为参数的 vncserver 命令停止 VNC 实例。

sudo vncserver -kill :1 

您应该得到以下输出:

杀死 Xtigervnc 进程 ID 1719…成功!

接下来,您需要配置 TigerVNC 以与 Gnome 配合使用。您可以通过在 .vnc 目录中创建新文件 xstartup 来完成此操作:

su - tecadmin 
nano ~/.vnc/xstartup 

添加以下行:

1
2
3
4
5
#!/bin/sh
exec /etc/vnc/xstartup
xrdb $HOME/.X资源
虚拟网络配置 -iconic &
dbus-launch --exit-with-session gnome-session &

完成后保存并关闭文件。每当您启动或重新启动 TigerVNC 服务器时,上述脚本都会自动执行。

接下来,授予 ~/.vnc/xstartup 文件执行权限:

chmod u+x  ~/.vnc/xstartup 

步骤 5 – 为 VNC 创建 Systemd 服务文件

接下来,您需要为 TigerVNC 创建一个 systemd 文件来管理 VNC 服务。您可以使用以下命令创建它:

sudo vim /etc/systemd/system/vncserver@.service 

添加以下行:


[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=tecadmin
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :
ExecStart=/usr/bin/vncserver :%i -localhost no -geometry 1024x768
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target
  

保存并关闭文件,然后使用以下命令重新加载 systemd 守护进程:

sudo systemctl daemon-reload 

接下来,使用以下命令启用 VNC 服务在系统重新引导时启动:

sudo systemctl enable vncserver@1.service 

接下来,使用以下命令启动 VNC 服务:

sudo systemctl start vncserver@1.service 

结论

恭喜!您已在 Ubuntu 18.04 LTS Linux 系统上成功安装并设置了 VNC 服务器。您现在可以使用 vnc 查看器从远程系统连接 Ubuntu 桌面。

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

如何在 Ubuntu 18.04 上安装和配置 VNC 服务器 的相关文章

随机推荐

  • QT窗体间传值总结之Signal&Slot

    在写程序时 难免会碰到多窗体之间进行传值的问题 依照自己的理解 我把多窗体传值的可以使用的方法归纳如下 1 使用QT中的Signal Slot机制进行传值 2 使用全局变量 3 使用public形式的函数接口 4 使用QT中的Event机制
  • 独立进程使用django模型(django.setup()使用)

    文章目录 独立进程使用django模型 独立进程使用django模型 步骤 django setup RuntimeError populate isn t reentrant 独立进程使用django模型报错 Apps aren t lo
  • 提升Postern代理性能的五个小技巧

    在使用Postern代理时 如何提高其性能是许多用户关注的问题 本文将分享一些针对Postern代理进行优化的技巧和建议 帮助更好地利用该工具并获得更出色的网络体验 Postern是一个功能强大且灵活易用的Android应用程序 可实现全局
  • 智能指针auto_prt的使用(c++学习笔记)

    c 中如果要申请资源一般用到new 最后释放资源delete 如果我们在delete之前就退出了函数呢 看下面的代码 cpp view plain copy include
  • 2 指定目录编译

    1 目录结构 指定目录编译 go build o bin calc1 exe day01 package example main 转载于 https www cnblogs com jec1999 p 9822834 html
  • TCP数据的传输过程

    TCP数据的传输过程 TCP Transmission Control Protocol 传输控制协议 是一种面向连接的 可靠的 基于字节流的通信协议 数据在传输前要建立连接 传输完毕后还要断开连接 客户端在收发数据前要使用 connect
  • Spark集群运行问题

    spark输出太多warning messages WARN Executor 2 block locks were not released by TID Lock release errors occur frequently in e
  • 阿里云对象存储oss费用明细

    https www aliyun com price product spm a311a 7996332 0 0 137630803P2qTh oss detail 最终决定 阿里云割韭菜 弃用选择业界其他便宜的 第二年阿里云只给你个续费
  • java操作svn--部分方法

    package com svnutil import java io File import java text DateFormat import java util ArrayList import java util Collecti
  • Fedora12 编译s3c2416 U-Boot1.3.4的Makefile和头文件

    复制Makefile到 和smdk2416 h到include configs 执行 make distclean make smdk2416 config make C Copyright 2007 2008 Jong pill Lee
  • matlab练习程序(Canny边缘检测)

    我可没直接调用系统函数 要是那样就太水了 其实我的matlab代码很容易就能翻译成c c 的 canny边缘检测一共四个部分 1 对原图像高斯平滑 2 对高斯平滑后的图像进行sobel边缘检测 这里需要求横的和竖的还有联合的 所以一共三个需
  • C语言链表——增删改查

    目录 一 链表的概念 1 1 什么是链表 二 链表和数组的区别 2 1 链表和数组的优缺点 2 1 1 数组的优缺点 2 1 2 链表的优缺点 三 链表的静态添加和动态遍历 四 统计链表节点个数及链表查找 五 链表插入 5 1 链表从指定节
  • 【程序设计训练】2-12 绩点计算

    问题描述 学校对本科生的成绩施行绩点制 GPA 将学生的实际考分根据不同学科的不同学分按一定的公式进行计算 规定如下 实际成绩 绩点 90 100 4 0 85 89 3 7 82 84 3 3 78 81 3 0 75 77 2 7 72
  • MIT教授Tegmark:GPT-4敲响警钟,百年后人类何去何从丨智源大会嘉宾风采

    导读 一封呼吁暂停大模型研究6个月的公开信让一家名为未来生命研究所 Future of Life Institute 简称 FLI 站上了风口浪尖 这家研究所的联合创始人Max Tegmark是来自麻省理工学院的物理学家和人工智能研究员 生
  • 对象存储OSS-iOS

    文章目录 对象存储OSS iOS 一 基础解读 1 相关名词 2 OSS的上传和下载 3 基于SDK快速开始 4 基于OSS的移动开发 4 1 整体流程 4 1 1 客户端申请STS凭证 4 1 2 AppServer请求AssumeRol
  • 2022华数杯B题论文思路分析+完整代码(水下机器人组装计划)(一二问答案接出来和标准答案一样)(问题三四逼近正确答案)(完整论文,代码可直接跑)

    写在前面 学校最近搞数学建模竞赛培训 以2022华数杯B题作为训练题目 在查资料过程中发现网上没有哪一篇论文解出了正确答案 而我们组利用Lingo软件准确的解出了正确答案 但是在第三问时 由于决策的变量激增 基于Lingo的模型已经无法解出
  • 五大板块(2)—— 指针

    参考 五大板块 2 指针 作者 丶PURSUING 发布时间 2021 03 18 16 01 22 网址 https blog csdn net weixin 44742824 article details 114981482 本文为学
  • TypeError: parse() got an unexpected keyword argument 'transport_encoding'

    pip install XXX 出现问题 TypeError parse got an unexpected keyword argument transport encoding 解决方法 conda install pip
  • 如何在 Git 中创建空分支(无父分支)

    Git 是一个强大的版本控制系统 使开发人员能够跟踪其代码库中的更改并有效地管理其项目 Git 的关键功能之一是分支 它允许开发人员创建代码库的单独版本并同时处理它们 在本文中 我们将了解如何使用 Git 创建空分支 orphan opti
  • 如何在 Ubuntu 18.04 上安装和配置 VNC 服务器

    VNC 代表 虚拟网络计算 是一组用于远程共享桌面系统的协议 有许多软件可用于远程访问基于 Linux 的桌面 包括 TigerVNC TightVNC Vino vnc4server 等等 TigerVNC 是一款免费 开源 高性能的 V