Virtual Network Computing (VNC),是一个图形桌面共享系统,允许我们像使用Windows桌面系统一样可视化的使用键盘和鼠标远程控制服务器,当做一台远程的电脑一样。 主要用在我们有一些服务器都是Linux系统,无法安装Windows系统,于是就用VNC的方式替代RDP协议桌面。
Ubuntu 20.04 镜像安装VNC实现Linux系统远程桌面

在这篇文章中,笔者准备记录如何在 Ubuntu 20.04 上安装和配置 VNC 服务器。Ubuntu 服务器是从命令行管理的,默认情况下没有安装桌面环境。Ubuntu 存储库中有各种可用的桌面环境。 一种选择是安装 Gnome,这是 Ubuntu 20.04 中的默认桌面环境。 另一种选择是安装 Xfce 。 它是一个快速、稳定和轻量级的桌面环境,非常适合在远程服务器上使用。

第一、安装XFCE

    sudo apt update
    sudo apt install xfce4 xfce4-goodies

根据我们服务器的系统,下载和安装 Xfce 软件包可能需要一些时间,有的比较快。

第二、安装VNC服务

Ubuntu 存储库中有几种不同的 VNC 服务器可用,例如 TightVNC 、 TigerVNC 和 x11vnc 。 每个 VNC 服务器在速度和安全性方面都有不同的优势和劣势。我们将安装 TigerVNC。 它是一个积极维护的高性能 VNC 服务器。 输入以下命令安装包。

sudo apt install tigervnc-standalone-server

第三、VNC设置

安装 VNC 服务器后,下一步是创建初始用户配置并设置密码。使用 vncpasswd 命令设置用户密码。 运行以下命令时不要使用 sudo:

vncpasswd

我们需要输入两次密码。

~/.vnc/xstartup

修改这个文件,更换成:

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

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

使用 chmod 命令设置文件权限:

chmod u+x ~/.vnc/xstartup

如果我们需要向 VNC 服务器传递其他选项,请创建一个名为 config 的文件并在每行添加一个选项。 下面是一个例子:

    geometry=1920x1080
    dpi=96

我们可以设置分辨率。设置保存完毕后,我们需要启动生效。

vncserver

第四、创建 Systemd 文件

与其手动启动 VNC 会话,不如创建一个 systemd 单元文件,以便您根据需要启动、停止和重新启动 VNC 服务。打开文本编辑器并将以下配置复制并粘贴到其中。 确保更改第 7 行的用户名以匹配您的用户名。

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

然后设置:

    [Unit]
    Description=Remote desktop service (VNC)
    After=syslog.target network.target
     
    [Service]
    Type=simple
    User=linuxize
    PAMName=login
    PIDFile=/home/%u/.vnc/%H%i.pid
    ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
    ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fg
    ExecStop=/usr/bin/vncserver -kill :%i
     
    [Install]
    WantedBy=multi-user.target

然后重启生效。

sudo systemctl daemon-reload

设置开机启动。

sudo systemctl enable vncserver@1.service

执行命令启动。

sudo systemctl start vncserver@1.service

第五、连接远程客户端

 这里,我们可以用TigerVNC, TightVNC, RealVNC, UltraVNC软件连接。



我们直接用5901端口登录。输入我们开始设置的VNC密码。

 
我们是不是看到,有些类似用过WIN客户端的界面,而且还有浏览器。这个就是我们在Linux服务器中安装VNC可视化桌面的过程。

参考文档:

1、https://www.banwagongvps.com/ubuntu-xfcevnc.html

2、https://blog.csdn.net/shuirenbushijun/article/details/108056338

3、https://blog.csdn.net/godbessinyou/article/details/84749389

原文链接:https://blog.csdn.net/u011805907/article/details/119546428

最新文章

  1. 交换机的交换原理、mac学习机制和老化机制
  2. sublime配置文件
  3. 调研Android平台开发环境的发展演变
  4. selenium滚动条
  5. JavaScript脚本语言基础(三)
  6. 【LeetCode】70 - Climbing Stairs
  7. Codeforces Round #327 (Div. 1) B. Chip 'n Dale Rescue Rangers 二分
  8. UVA 11134 - Fabled Rooks(贪心+优先队列)
  9. Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/Maps
  10. linux内存机制
  11. SPOJ 8222 Substrings(后缀自动机)
  12. php 不写闭合标签
  13. Redis集群功能预览
  14. Difference between hash() and id()
  15. P2690 接苹果 (DP)
  16. redis集群相关
  17. cas单点登陆。就这一篇就够了!!!!!
  18. Redis进阶实践之七Redis和Lua初步整合使用(转载 7)
  19. 关于log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).的问题
  20. 【Django】关于ORM的使用

热门文章

  1. java学习日记20230301-API文档
  2. Nodejs杀死本地应用(win)
  3. C语言联合体(共用体)使用方法及大小计算
  4. 这个仅2M的宝藏小工具,竟无需群发就能揪出微信所有单向好友!
  5. Flink 状态后端及RocksDBStateBackend的优势
  6. Ansible scp Python脚本
  7. k3s|如何将k8s集群的node节点设置不可调度或删除node节点?
  8. HttpURLConnection.openConnection状态码302
  9. Spring Boot--自定义异常类
  10. 微积分 I 笔记