如何实现一个简单的Ubuntu远程虚拟桌面


前言

最近搞的一个项目正好用noVNC实现了一个远程桌面,当然,noVNC主要是由后端部署的,不过在现在这个市场下,前端也必须得跟着卷一下。


一、什么是noVNC?

说到nvVNC, 必须得先介绍下VNC,即是虚拟网络控制台(Virtual Network Console)的缩写,分为server端和client端两部分,分别部署完成后在server端简单的配置即可使用,基于TCP的通信。而noVNC项目是通过取消VNC Client的安装,直接通过浏览器访问noVNC,然后由noVNC间接访问VNC server来达到client web化。
从上面部署方式看到,VNC server仍然保留且没有任何修改,处理的始终是TCP流量,但是浏览器和noVNC之间是在http基础上使用WebSocket交互,由于VNC server 无法处理websocket流量,因此引入了 websockify ,noVNC的姐妹项目,负责把WebSocket流量转换为普通的TCP流,使VNC server正常工作。noVNC其实是一个HTML形式的APP,websockify并充当了一个mini web server的角色,当浏览器访问时,会通过网络加载运行noVNC。
下边是一个多节点的noVNC部署图,可以借助这个图理解下noVNC的工作方式
多节点noVNC部署方式

二、如何部署

1.安装VNC服务端

1.1 安装tigervnc-standalone-server

sudo apt-get install tigervnc-standalone-server

安装过程如图
在这里插入图片描述

1.2 安装tigervnc-standalone-server

sudo apt-get install tigervnc-xorg-extension

安装过程如图
在这里插入图片描述

1.3 安装xserver-xorg-core

上一步提示缺少依赖包,所以装一下子

sudo apt-get install xserver-xorg-core

安装过程如图
在这里插入图片描述

1.4 设置VNC密码

当你用其他电脑的VNC Viewer来连接VNC Server时,需要一个密码。跟你系统用户密码没有关系。

vncpasswd

在这里插入图片描述
查看~/.vnc目录下有passwd,说明密码设置完毕。

2.安装桌面环境

2.1 安装xface4

这里我们的桌面就选择比较轻量的xface4

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

安装过程如图,因为比较长,所以只截了其中一部分
在这里插入图片描述

2.2 为VNC设置桌面环境

查看~/.vnc下有没有xstartup文件,没有的话新建一个

touch xstartup

然后复制以下内容到xstartup

#!/bin/sh

unset SESSION_MANAGER 
unset DBUS_SESSION_BUS_ADDRESS 
startxfce4 &    #启动xface4
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup 
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources 
xsetroot -solid grey    #设置背景色

2.3 给xstartup文件设置可执行权限

sudo chmod u+x ~/.vnc/xstartup 

2.4 启动vnc并查看

# 其中 :2为选择端口,此时表示VNC启动端口为5902
sudo vncserver :2 -localhost no
sudo netstat -ntupl|grep vnc

启动截图如下:
在这里插入图片描述


3.启动noVNC

3.1 clone noVNC项目

git clone https://github.com/novnc/noVNC.git

3.2 启动noVNC服务

./utils/novnc_proxy --vnc localhost:5902

4.访问noVNC

在客户端,找个浏览器直接访问远程ip(nvVNC所在服务器):6081即可

总结

通过上述步骤,我们就可以简单部署一个远程桌面服务了,大家可以简单的跟着试下,在上面的部署步骤中,nvVNC和VNC server是在同一台服务器的,然后访问noVNC的浏览器则在我们的客户端中,总体来说,还是非常简单的。

参考链接

猜你喜欢

转载自blog.csdn.net/qq_39544148/article/details/129770407