项目场景:
为了公司项目服务系统的售后服务轻松、远程操控方便,使用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
结束:最后开机重启即可
希望对大家有所帮助,有所启发!!!!!!!