snow chuai汇总、整理、撰写---2020/2/24
最后更新日期---2023/05/10
本章节需要Linux系统都需要Desktop GUI |
2.1 安装与配置TigerVNC
1) 安装Xfce GUI图形界面 [root@srv1 ~]# yum groups install "Server with GUI" -y [root@srv1 ~]# yum --enablerepo=epel groups install "Xfce" -y
[root@srv1 ~]# echo "exec /usr/bin/xfce4-session" >> ~/.xinitrc
[root@srv1 ~]# startx
2) 安装tigervnc [root@srv1 ~]# yum install tigervnc-server -y
3) 防火墙设定 # vnc-server默认端口范围为5900-5903.如果不足可修改nvc-server.xml文件 [root@srv1 ~]# firewall-cmd --add-service=vnc-server --permanent success [root@srv1 ~]# firewall-cmd --reload success
4) 制定启动服务文件 # vncserver@:1.service说明: :1表示"桌面号",启动的端口号就是5900+桌面号,即是5901, :2表示端口号为5902 以此类推 [root@srv1 ~]# cp /lib/systemd/system/vncserver@.service \ /etc/systemd/system/vncserver@:1.service
[root@srv1 ~]# vim /etc/systemd/system/vncserver@\:1.service # 将<USERS>改为所需要接入VNC的账户名字 ...... ...... ExecStart=/usr/bin/vncserver_wrapper root %i" ..... .....
5) 设定vnc密码(密码允许与系统账户密码不同) [root@srv1 ~]# vncpasswd Password: Verify: Would you like to enter a view-only password (y/n)? y # 设定只读密码 Password: Verify:
6) 启动服务 [root@srv1 ~]# systemctl enable --now vncserver@\:1.service [root@srv1 ~]# netstat -lnatp | grep 5901 tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 5237/Xvnc tcp6 0 0 :::5901 :::* LISTEN 5237/Xvnc2.2 安装及配置novnc
1) 安装并启动novnc [root@srv1 ~]# wget https://github.com/novnc/noVNC/archive/refs/tags/v1.2.0.tar.gz [root@srv1 ~]# wget https://github.com/novnc/websockify/archive/refs/tags/websockify-0.11.0.tar.gz
[root@srv1 ~]# tar xfz v1.2.0.tar.gz [root@srv1 ~]# mv noVNC-1.2.0 noVNC
[root@srv1 ~]# tar xfz websockify-0.11.0.tar.gz [root@srv1 ~]# mv websockify-0.11.0 websockify [root@srv1 ~]# mv websockify noVNC/utils/
2) 生成证书密钥 [root@srv1 ~]# cd noVNC/utils/ [root@srv1 ~/noVNC/utils]# openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem Generating a 2048 bit RSA private key ..................................+++ ....+++ writing new private key to 'self.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:BeiJing Locality Name (eg, city) [Default City]:BeiJing Organization Name (eg, company) [Default Company Ltd]:1000y.cloud Organizational Unit Name (eg, section) []:tech Common Name (eg, your name or your server's hostname) []:srv1.1000y.cloud Email Address []:
3) 安装python及numpy库(维度数组与矩阵运算) [root@srv1 ~/noVNC/utils]# yum --enablerepo=epel install python36 -y
[root@srv1 ~/noVNC/utils]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
5) 启动noVNC # 将本地的5901端口与6080端口进行映射 [root@srv1 ~/noVNC/utils]# ./launch.sh --vnc localhost:5901 Using local websockify at /root/noVNC/utils/websockify/run Starting webserver and WebSockets proxy on port 6080 WebSocket server settings: - Listen on :6080 - Web server. Web root: /root/noVNC - SSL/TLS support - proxying from :6080 to localhost:5901
Navigate to this URL:
http://srv1.1000y.cloud:6080/vnc.html?host=srv1.1000y.cloud&port=6080
Press Ctrl-C to exit
6) 自启动novnc [root@srv1 ~]# chmod 755 /etc/rc.d/rc.local [root@srv1 ~]# vim /etc/rc.d/rc.local /root/noVNC/utils/launch.sh --vnc localhost:5901
# 如果vncserver报错: PID file /root/.vnc/localhost.localdomain:1.pid not readable ****解决方法****** [root@srv1 ~]# rm -rf /tmp/.X11-unix2.3 测试访问
[浏览器]===>http://srv1.1000cc.net:6080
2.4 支持KVM
1) 将KVM的VNC改为默认监听所有地址 [root@srv1 ~]# vim /etc/libvirt/qemu.conf # 取消66行注释,并改为如下内容 vnc_listen = "0.0.0.0"
2) 定义KVM实例的VNC端口 [root@srv1 ~]# virsh shutdown tsrv1
[root@srv1 ~]# virsh edit tsrv1 ...... ...... ...... ...... ...... ...... # 找到如下字段,在其下添加如下内容 <input type='keyboard' bus='ps2'/> # 设定使用协议为spice,监听端口为5900,监听地址为0.0.0.0,接入密码为password <graphics type='vnc' port='5900' autoport='no' listen='0.0.0.0' passwd='password'> <listen type='address' address='0.0.0.0'/> </graphics>
[root@srv1 ~]# systemctl restart libvirtd
[root@srv1 ~]# virsh start tsrv1
3) 可以获取KVM实例的VNC端口 [root@srv1 ~]# virsh vncdisplay tsrv1 :0 # :0代表5900 [root@srv1 ~]# virsh vncdisplay tsrv2 :2 # :2代表5902
4) 创建token文件 [root@srv1 ~]# vim vnc_tokens 格式说明: 实例主机名: 宿主机IP:宿主机端口 tsrv1: 192.168.10.10:5900 tsrv2: 192.168.10.10:5902
5) 启动 [root@srv1 ~]# cd noVNC/utils/websockify/ [root@srv1 websockify]# ./run -D --web=/root/noVNC/ --cert=/root/noVNC/utils/self.pem \ --target-config=/root/vnc_token 6080 WebSocket server settings: - Listen on :6080 - Web server. Web root: /root/noVNC/utils - SSL/TLS support - Backgrounding (daemon)
5) 访问测试 [浏览器]===>http://srv1.1000cc.net:6080 # 修改token,以连接指定的KVM 实例 1. 点击vnc.html 2. 点击 "齿轮" 图标 3. 点击 "高级" 4. 点击 "WebSocket" 5. 在 "路径" 对话框内输入: websockify/?token=您虚拟机实例的名字
![]()
1) 安装软件 [root@node1 ~]# yum --enablerepo=epel install xrdp -y [root@node1 ~]# systemctl enable --now xrdp |
1) 安装软件 [root@node1 ~]# yum install freerdp -y |