NoVNC安装部署
noVNC 是一个 HTML5 VNC 客户端,采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现,noVNC 被普遍用在各大云计算、虚拟机控制面板中,比如 OpenStack Dashboard 和 OpenNebula Sunstone 都用的是 noVNC。
noVNC 采用 WebSockets 实现,但是目前大多数 VNC 服务器都不支持 WebSockets,所以 noVNC 是不能直接连接 VNC 服务器的,需要一个代理来做 WebSockets 和 TCP sockets 之间的转换。这个代理在 noVNC 的目录里,叫做 websockify
一、安装VNC服务
1、查看本地是否有安装vncserver(一般情况下系统会自带vncserver)
[root@localhost ~]# which vncserver /usr/bin/vncserver
2、安装vncserver(如果没有vncserver)
yum install -y tigervnc-server
然后在使用第一条命令查看是否安装成功
3、查看vncserver版本
[root@localhost ~]# rpm -qa | grep vnc
tigervnc-license-1.8.0-13.el7.noarch
tigervnc-server-minimal-1.8.0-13.el7.x86_64
tigervnc-server-1.8.0-13.el7.x86_64
二、启动VNC服务
启动vnc服务有两种方式,一种直接启动vncserver,第二种配置vncserver@.service(在第五节讲)
1、直接启动vncserver
$ vncserve :1
此时会要求输入密码。这里需要注意:
The VNC server will run in the background. The port that it runs on is the display number + 5900 (i.e. 5901 in the case above).
意思就是当你执行vncserver :1设置为1时,下面要运行VNC是的端口号应该是5900+1,那就是5901,VNC的默认端口是5900。
2、查看日志
[root@localhost ~]# cat /root/.vnc/localhost.localdomain:1.log Xvnc TigerVNC 1.3.1 - built Nov 16 2016 13:38:44
Copyright (C) 1999-2011 TigerVNC Team and many others (see README.txt)
See http://www.tigervnc.org for information on TigerVNC.
Underlying X server release 11702000, The X.Org Foundation Tue May 28 15:34:07 2019
vncext: VNC extension running!
vncext: Listening for VNC connections on all interface(s), port 5901
vncext: created VNC server for screen 0
PS:localhost.localdomain为服务器名称,:1 就是vncserver启动的参数
3、查看端口
[root@localhost ~]# netstat -npl | grep 59
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 4056/Xvnc
tcp6 0 0 :::5901 :::* LISTEN 4056/Xvnc
三、NoVNC部署
1、下载
下载地址:https://github.com/novnc/noVNC
2、解压
$ tar -zxf noVNC-1.1.0.tar.gz /usr/local/novnc/
3、运行
[root@localhost ~]$ /usr/local/novnc/utils/launch.sh --vnc localhost:5901
Using local websockify at /usr/local/novnc/utils/websockify/run
Starting webserver and WebSockets proxy on port 6080
/usr/local/novnc/utils/websockify/websockify/websocket.py:30: UserWarning: no 'numpy' module, HyBi protocol will be slower
warnings.warn("no 'numpy' module, HyBi protocol will be slower")
WebSocket server settings:
- Listen on :6080
- Web server. Web root: /usr/local/novnc
- SSL/TLS support
- proxying from :6080 to localhost:5901 Navigate to this URL: http://localhost.localdomain:6080/vnc.html?host=localhost.localdomain&port=6080 Press Ctrl-C to exit
4、访问
在Chrome、Firefox等浏览器中访问 http://ip:6080/vnc.html
PS:浏览器需要支持html5
四、关于self.pem文件
1.我们可以利用openssl生成,具体命令如下:
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
2.将生成的self.pem文件放到noVNC/utils底下
3.重新启动noVNC即可
五、vncserver@.service启动
1、检查vncserver状态
VNC服务器在首次安装时不会自动启动。若要检查这一点,请运行以下命令:
systemctl status vncserver@:.service
输出将是这样的:
vncserver@:.service - Remote desktop service (VNC) Loaded: loaded (/usr/lib/systemd/system/vncserver@.service; disabled) Active: inactive (dead)
你也可以运行这个命令:
systemctl is-enabled vncserver@.service
这应该显示出这样的输出:
disabled
那么为什么它被禁用了呢?这是因为每个用户都会启动一个单独的VNC服务守护进程实例。换句话说,VNC不是作为服务于每个用户请求的一个进程运行的。每个通过VNC连接的用户都必须启动守护进程的新实例(或者系统管理员可以自动实现)。
CentOS7使用systemd守护进程启动其他服务,本地系统下运行的每个服务都有一个服务单元文件存放在/lib/systemd/system/目录下,在启动时自动启动的进程有一个指向该服务单元文件的链接。
在本例中,在/lib/systemd/system/目录,但没有链接/etc/systemd/system/. 要测试这一点,请运行以下命令:
[root@localhost ~]# ls -l /lib/systemd/system/vnc*
-rw-r--r--. 1 root root 1828 Nov 3 2018 /lib/systemd/system/vncserver@.service
然后检查/etc/systemd/system/目录:
[root@localhost ~]# ls -l /etc/systemd/system/*.wants/vnc*
ls: cannot access /etc/systemd/system/*.wants/vnc*: No such file or directory
2、启动一个新的VNC服务器实例
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
3、编辑vncserver@:1.service文件
vi /etc/systemd/system/vncserver@:4.service
替换<USER>为运行的用户,本机上默认使用root用户运行vncserver,所以将<USER>替换为root,添加“-geometry 1280x1024”到ExecStart参数的结尾处
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target [Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i -geometry 1280x1024"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' [Install]
WantedBy=multi-user.target
4、重启守护进程,并启动VNC服务
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl enable vncserver@:1.service
ln -s '/etc/systemd/system/vncserver@:1.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:1.service'
5、设置VNC密码
[root@localhost ~]# vncpasswd
You will require a password to access your desktops. Password:
Verify:
xauth: file /rootc/.Xauthority does not exist New 'localhost.localdomain:1 (joevnc)' desktop is localhost.localdomain:1 Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log
6、重启服务
[root@localhost ~]# systemctl daemon-reload [root@localhost ~]# systemctl restart vncserver@:1.service
NoVNC安装部署的更多相关文章
- 在Ubuntu 12.10 上安装部署Openstack
OpenStack系统有几个关键的项目,它们能够独立地安装但是能够在你的云计算中共同工作.这些项目包括:OpenStack Compute,OpenStack Object Storage,OpenS ...
- OpenStack安装部署管理中常见问题解决方法
一.网络问题-network 更多网络原理机制可以参考<OpenStack云平台的网络模式及其工作机制>. 1.1.控制节点与网络控制器区别 OpenStack平台中有两种类型的物理节点, ...
- CentOS7.4安装部署openstack [Liberty版] (一)
一.OpenStack简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack是一个 ...
- Oracle安装部署,版本升级,应用补丁快速参考
一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...
- KVM安装部署
KVM安装部署 公司开始部署KVM,KVM的全称是kernel base virtual machine,对KVM虚拟化技术研究了一段时间, KVM是基于硬件的完全虚拟化,跟vmware.xen.hy ...
- Linux平台oracle 11g单实例 + ASM存储 安装部署 快速参考
操作环境:Citrix虚拟化环境中申请一个Linux6.4主机(模板)目标:创建单机11g + ASM存储 数据库 1. 主机准备 2. 创建ORACLE 用户和组成员 3. 创建以下目录并赋予对应权 ...
- 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署
少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...
- C# winform安装部署(转载)
c# winform 程序打包部署 核心总结: 1.建议在完成的要打包的项目外,另建解决方案建立安装部署项目(而不是在同一个解决方案内新建),在解决方案上右击-〉添加-〉现有项目-〉选择你要打包的项目 ...
- Ubuntu14.04 Django Mysql安装部署全过程
Ubuntu14.04 Django Mysql安装部署全过程 一.简要步骤.(阿里云Ubuntu14.04) Python安装 Django Mysql的安装与配置 记录一下我的部署过程,也方便 ...
随机推荐
- RS232串口通信详解
串口是计算机上一种非常通用的设备通信协议. ---------------------------------串口的引脚定义: 9芯 信号方向来自 缩写 描述 1 调制解调器 CD 载波检测 2 调制 ...
- bug宝典linux篇 LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory(转)
升级glibc库后,使用xShell登录linux,提示: Connecting to ... Connection established. To escape to local shell, pr ...
- cs231n spring 2017 lecture6 Training Neural Networks I
1. 激活函数: 1)Sigmoid,σ(x)=1/(1+e-x).把输出压缩在(0,1)之间.几个问题:(a)x比较大或者比较小(比如10,-10),sigmoid的曲线很平缓,导数为0,在用链式法 ...
- SpringMVC静态资源拦截的问题
通常在web.xml中的核心控制器的DispatcherServlet中的url-pattern属性配置成类似“/”的拦截路径,但是会出现静态资源找不到的问题,比如js脚本.图片.css等无法加载,那 ...
- 为Nginx启用目录浏览功能
今天工作需要,要给客户提供一个patch的下载地址,于是想用nginx的目录浏览功能来做,需要让客户看到指定一个目录下的文件列表,然后让他自己来选择该下载那个文件: 我们都知道在apache下可以配置 ...
- git 第一次上传本地代码到远程仓库,解决 ! [rejected] master -> master (non-fast-forward)错误
使用git想GitHub远程仓库上传代码的基本步骤一般是 初始化为git仓库 git init 添加所有要提交的文件 git add . 本次提交说明 git commit -m '提交说明' 关联G ...
- IOC @Autowired/@Resource/@Qulified的用法实例
首先要知道另一个东西,default-autowire,它是在xml文件中进行配置的,可以设置为byName.byType.constructor和autodetect:比如byName,不用显式的在 ...
- Spring常用注解(讲解的通俗易懂,很透彻)
使用注解来构造IoC容器 用注解来向Spring容器注册Bean.需要在applicationContext.xml中注册<context:component-scan base-package ...
- docker 使用:镜像和容器
docker 镜像 docker image是一个极度精简版的Linux程序运行环境,官网的java镜像包括的东西更少,除非是镜像叠加方式的如centos+java7,需要定制化build的一个安装包 ...
- Win10下JDK环境搭建的两种方法
jdk1.8--64位官网下载的百度网盘 https://pan.baidu.com/s/1A7jYfupwMWZawb5z_RSdJg 提取码: 92eu 第一种方法(建议) 变量名: ...