Linux学习
在Docker中运行一个Ubuntu桌面并安装Chrome浏览器
Docker云桌面(docker-headless)
Docker 部署Jupyter Notebook
知了 - 开源音乐服务器
NoVNC安装部署
Redis
怎样连接到Redis
MooseFS的简介、部署及应用
Moose部署日记
Moose-Fast部署
Moosefs快速启动
MooseSSD部署
新Moosefs部署详情:
Fedora36 Linux 手动设置IP
umount 提示 target is busy
Mysql慢日志
PVE相关
PVE迁移失败故障案例:ssh秘钥问题
qemu-img 转换镜像格式
glusterfs部署日记
Ceph部署记录
PVE下的新Ceph
查看网卡速率
Iscsi 部署安装
OTRS-znuny部署记录
CubeFs部署日记
CasaOS安装记录
VMware ESXi部署
PVE硬盘直通的几种方式
ZFS内存高占用ARC
ZFS zpool学习文档
PVE节点退出集群
Linux操作问题,疑难杂症记录
乱码不显示中文
如何清除磁盘上残留的分区信息:
iperf3 网络性能测试工具
电视直播配置
本文档使用 MrDoc 发布
-
+
首页
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 ```
dz
2023年1月31日 14:39
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码