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

项目场景:

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


工具准备:

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

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

实战操作:

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

步骤一:vnc服务安装

1. 查看是否安装了vnc服务 

which vncserver

 2. 下载tigervnc

 yum install tigervnc-server -y

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

1. 备份服务文件

cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

2. 编辑服务文件 

 vim /etc/systemd/system/vncserver@:1.service

3. 配置密码 

vncpasswd

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

1. 暂时地关闭 SELinux 安全模块的强制访问控制机制

 setenforce 0

2. 关闭防火墙

 systemctl stop firewalld

3. 关闭防火墙开机自启

 systemctl disable firewalld

4. 设置vnc服务开机自启 

systemctl enable vncserver@:1

5.  启动服务

vncserver :1

6. 查看端口显示如下:

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 

1. 指定文件解压位置,解压后在目录/usr/local/下

unzip noVNC-1.3.0.zip -d /usr/local

步骤五:配置noVNC

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

1. 进入novnc的utils目录(这里LZ的noVNC目录:/usr/local/novnc-noVNC-cdfb336)

cd /usr/local/novnc-noVNC-cdfb336/utils

2. 创建安全连接

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

  •  进入/usr/bin目录

cd /usr/bin/

  • 查看python的软链接状态如下:

ll 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 命令并查看一下版本

  • 下载zlib等工具

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

  • 下载epel

yum -y install epel-release

  • 下载python-pip

yum install python-pip

  • 下载wget

pip install wget

  • 下载python3

wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz

  • 解压xz包

xz -d Python-3.6.8.tar.xz

  • 解压python3的tar包

tar -xf Python-3.6.8.tar

  • 进入python3目录

cd Python-3.6.8

  • 配置前缀

./configure prefix=/usr/local/python3

  • 编译

make && make install

  • 重新下载zlib

yum install zlib zlib

  • 下载zlib-devel

yum install zlib zlib-devel

  • 下载python3-pip

yum install -y python3-pip

  • 查看python3的版本号

python3 -V

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

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

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

 步骤八: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脚本

  • 编辑novnc启动脚本如下:

vim /usr/local/start_novnc.sh

  • 给脚本赋权

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

结束:最后开机重启即可

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

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热心码民阿振

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值