实战noVNC全过程操作(包含遇到的问题和解决)

项目场景:

为了公司项目服务系统的售后服务轻松、远程操控方便,使用VNC是一个很好的选择


工具准备:

资源准备:官网下载noVNC:Releases · novnc/noVNC · GitHub

开发工具和环境:Xshell7、Xftp7、和要部署的服务器(系统centos7)

实战noVNC全过程操作(包含遇到的问题和解决)_第1张图片

实战操作:

注意:全程Xshell7连接服务器,root用户操作,非用户操作命令前自行添加sudo

步骤一:vnc服务安装

which vncserver
yum install tigervnc-server -y

实战noVNC全过程操作(包含遇到的问题和解决)_第2张图片

 步骤二:vnc服务配置复制一份并且配置service文件为root用户,配置密码用于后面noVNC客户端登录时输入):

cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
vim /etc/systemd/system/vncserver@:1.service        #编辑服务文件

vncpasswd        #配置密码

实战noVNC全过程操作(包含遇到的问题和解决)_第3张图片实战noVNC全过程操作(包含遇到的问题和解决)_第4张图片

 步骤三:关闭防火墙和设为开机启动(亲测没有用哈,要自己编写脚本,在步骤八有)、启动服务、查看端口号

setenforce 0
systemctl stop firewalld        #关闭防火墙
systemctl disable firewalld        #关闭防火墙开机自启

systemctl enable vncserver@:1        #设置vnc服务开机自启

vncserver :1        #启动服务

netstat -lntup|grep 59        #查看端口显示如下:

tcp     0      0 0.0.0.0:5901      0.0.0.0:*      LISTEN      2765/Xvnc 
tcp6    0      0 :::5901           :::*           LISTEN      2765/Xvnc 

步骤四:安装解压noVNC

我下载的zip,所以unzip指令解压,如果时tar.gz则用tar命令:tar -xzvf file.tar.gz 

unzip noVNC-1.3.0.zip -d /usr/local        #指定文件解压位置,解压后目录/usr/local/novnc-noVNC-cdfb336

步骤五:配置noVNC(这里LZ的noVNC目录:/usr/local/novnc-noVNC-cdfb336

生成self.pem文件放到noVNC/utils底下(原因:VNC的默认会话不是安全的,我们需要创建一个安全的VNC连接,一路回车就好)

cd /usr/local/novnc-noVNC-cdfb336/utils        #进入novnc的utils目录

openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem        #创建安全连接

步骤六:启动noVNC服务

../utils/novnc_proxy --vnc localhost:5901

报错:这个时候启动可能会报错:/usr/local/novnc-noVNC-cdfb336/utils/websockify/run: 第 4 行:exec: python3: 未找到(原因很清楚了:缺少python3)

解决:安装python3

1、python默认路径是 /usr/bin/,如有改动可以输入指令查看:# whereis python,这里可以看出我的服务最高指向python2.7

cd /usr/bin/        #进入/usr/bin目录
ll python*        #查看python的软链接状态如下:

lrwxrwxrwx. 1 root root    7 6月  10 2020 python -> python2
lrwxrwxrwx. 1 root root    9 6月  10 2020 python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 8月   7 2019 python2.7

2、安装(因为我的centos7默认没有相关依赖和工具包,下载相关依赖和工具包:epel、pip、wget)最后通过wget从官网下载压缩包,xz编译,tar解压,进入python3.6.8,将其放到/usr/local目录下,然后make手动编译,接着安装依赖zlib、zlib-deve,最后下载默认没有python3-pip 命令并查看一下版本

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make        #下载zlib等工具
yum -y install epel-release        #下载epel

yum install python-pip        #下载python-pip

pip install wget        #下载wget

wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz        #下载python3

xz -d Python-3.6.8.tar.xz        #解压xz包

tar -xf Python-3.6.8.tar        #解压python3的tar包

cd Python-3.6.8        #进入python3目录

./configure prefix=/usr/local/python3        #配置前缀

make && make install        #编译

yum install zlib zlib        #重新下载zlib

yum install zlib zlib-devel        #下载zlib-devel

yum install -y python3-pip        #下载python3-pip

python3 -V        #查看python3的版本号

步骤七:使用浏览器访问服务器(http://服务器ip:6080/vnc.html)

连接服务器,通过以下命令重新启动novnc服务后,本地浏览器就可以访问了!

/usr/local/novnc-noVNC-cdfb336/utils/novnc_proxy --vnc localhost:5901

实战noVNC全过程操作(包含遇到的问题和解决)_第5张图片实战noVNC全过程操作(包含遇到的问题和解决)_第6张图片

实战noVNC全过程操作(包含遇到的问题和解决)_第7张图片

 步骤八:VNC和noVNC设置开机自启

1、编辑vncserver脚本

vim /etc/init.d/vncserver        #编辑脚本如下:

chmod 777 /etc/init.d/vncserver        #给脚本赋权

export USER='root'
eval cd ~$USER
case "$1" in
  start)
    # 启动命令行。此处自定义分辨率、控制台号码或其它参数。
    su $USER -c '/usr/bin/vncserver -depth 16 -geometry 1024x768 :1'
    echo "Starting TightVNC server for $USER "
    ;;
  stop)
    # 终止命令行。此处控制台号码与启动一致。
    su $USER -c '/usr/bin/vncserver -kill :1'
    echo "vncserver stopped"
    ;;
  *)
    echo "Usage: /etc/init.d/vncserver {start|stop}"
    exit 1
    ;;
esac
exit 0

2、编辑novnc脚本

vim /usr/local/start_novnc.sh        #编辑novnc启动脚本如下:

chmod 777 /usr/local/start_novnc.sh         #给脚本赋权

#启动novnc服务
/usr/local/novnc-noVNC-cdfb336/utils/novnc_proxy --vnc localhost:5901

3、脚本置于自启动文件末尾(/etc/rc.d/rc.local)

vim /etc/rc.d/rc.local        #编辑系统自启动脚本如下:

#update.rc.d自启动
/etc/init.d/vncserver start
#novnc开机自启动
/usr/local/start_novnc.sh

结束:最后开机重启即可

希望对大家有所帮助,有所启发!!!!!!!

你可能感兴趣的:(Linux,运维,容器,docker,服务器,linux)