CentOS7 快速搭建VNC Server 实现服务器远程控制台访问(Java Viewer)
前言
工作中会有使用到VNC的时候,尤其是做服务器运维相关工作的时候,往往远程管理网和办公网或者生产环境相互隔离,远程管理的工作就会变的复杂,因此为了实现方便管理同时保障网络安全性,往往服务器运维人员会将在远程数据中心(IDC)内搭建一套Windows桌面系统或者使用VNC实现远程管理KVM Java Viewer的访问。
准备工作
确认yum源可用确认有root或者sudo权限保证各部分的网络是可联通的开始部署
1. 安装CentOS桌面环境
CentOS的桌面环境有很多,如GNOME Desktop,KDE,Xfce,LXDE等,这里我们选择Xfce,其他的也都可以使用,看个人喜好。
安装Xfce比较简单,使用yum即可:
sudo yum group list #查看可以安装的软件包sudo yum -y groupinstall Xfce #安装Xfce桌面环境
2. 安装并配置VNC Server
(1)VNC Server的安装也很简单,CentOS默认使用的VNC Server是tigervnc,可以直接通过yum安装:
sudo yum -y install tigervnc-server #安装VNC Server
(2)安装完成以后,需要进行简单的配置,VNC Server最好不要使用root权限,创建一个专门用于VNC的账号,并设置密码。
使用root账号创建用户,我这里是创建的maintain用户:
useradd maintain#su maintian #切换到maintain用户#vncpasswd #执行vncpasswd 设置vnc 密码Password:Verify:Would you like to enter a view-only password (y/n)? nA view-only password is not used
密码设置完成后,会在/home/maintain/.vnc/下生成passwd文件,用于存储和验证密码。
(3)启动配置VNC Server,这里有两种方式:
第一种是使用服务配置文件的形式,需要复制配置文件并更改配置:
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service #指定服务实例编号,这里是数字1,同时也是端口号5901#vim /etc/systemd/system/vncserver@:1.service[Unit]Description=Remote desktop service (VNC)After=syslog.target network.target[Service]Type=xfce #修改成支持的桌面模式# Clean any existing files in /tmp/.X11-unix environmentExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' # %i 修改成 :1ExecStart=/usr/bin/vncserver_wrapper <USER> %i #USER修改成自己创建 的vnc 用户。ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' # %i 修改成 :1[Install]WantedBy=multi-user.target#systemctl daemon-reload #加载守护进程systemctl start vncserver@:1 #启动服务ID1的程序
这种启动方式我并未使用和验证,整个配置是参考了下面这篇文章,感兴趣的可以自行配置和验证。参考文章:https://serverspace.io/support/help/installing-and-configuring-a-vnc-server-on-centos-7/
第二种方式是直接在VNC用户下执行:vncserver,缺点是服务器重启后需要重新执行,或者写脚本做到开机自启动,优点是简单,同时可以满足需求。
vncserver #执行,第一次执行的时候会在用户家目录下的 /.vnc 生成两个主要配置文件config和xstartup#ls /home/maintain/.vncconfig <hostname>:1.log <hostname>:1.pid passwd xstartup#cd /home/maintain/.vncvim xstartup #更改配置文件#!/bin/shunset SESSION_MANAGERunset DBUS_SESSION_BUS_ADDRESSstartxfce4 #更换成使用的桌面模式,若是使用GNOME Desktop,则保持默认即可# Assume either Gnome or KDE will be started by default when installed# We want to kill the session automatically in this case when user logs out. In case you modify# /etc/X11/xinit/Xclients or ~/.Xclients yourself to achieve a different result, then you should# be responsible to modify below code to avoid that your session will be automatically killedif [ -e /usr/bin/gnome-session -o -e /usr/bin/startkde ]; thenvncserver -kill $DISPLAYfi#cat config #可以保持不变,不必须更改#securitytypes=vncauth,tlsvnc#desktop=xfce#vncserver #第一次更改完配置文件,再次执行,不用加“:1”,会自动往后排序,具体用法可以使用“-h”查看。vncserver -list #查看当前的服务进程的运行列表,可以看到“:1”存在。如无问题,则到此vnc server的配置和启动就完成了TigerVNC server sessions:X DISPLAY #PROCESS ID:1429387#netstat -tlnptcp 00 0.0.0.0:5902 0.0.0.0:*LISTEN554190/Xvnc#ss -tulpn| grep vnc
(4)连接验证
下载VNC Viewer,可通过官网下载并完成安装。
打开客户端,新建连接:
连接VNC server验证完成,可以开启VNC使用之旅了。
3. 安装Google-chrome浏览器
完成上面的VNC连接以后,开始安装浏览器(若是使用的GNOME Desktop桌面模式,默认自带Firefox浏览器),这里我选择的是Google-chrome浏览器,使用习惯问题,不必纠结。
这里安装是使用的yum方式,主机可以访问外网,若是环境不允许可以自行下载Linux版本的软件包,使用手动安装方式,可参考Google官网,不做介绍:/chrome/answer/95346?hl=zh-Hans&co=GENIE.Platform%3DDesktop#zippy=%2Clinux
请确保有权限或者在root用户下执行:
cat /etc/yum.repos.d/google-chrome.repo #创建repo源[google-chrome]name=google-chromebaseurl=/linux/chrome/rpm/stable/x86_64enabled=1gpgcheck=1gpgkey=/linux/linux_signing_key.pub#yum clean all#yum -y install google-chrome-stable
打开VNC桌面,查看Google-chrome的安装情况,并运行:
4. 安装Java jdk
浏览器完成安装以后,并不是我们最终的目标,服务器运维工程师在进行远程管理访问的时候是基于浏览器完成的,在具体操作时还需要Java的支持。
这里jdk的安装同样使用yum的方式安装:
yum list |grep ‘jdk’java-1.8.0-openjdk.x86_64java-1.8.0-openjdk-headless.x86_64#yum -y install java-1.8.0-openjdk.x86_64 #如果存量服务器都比较老,建议安装低版本jdkyum -y install java-1.8.0-openjdk-headless.x86_64#rpm -qa |grep jdkjava-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64java-1.8.0-openjdk-headless-1.8.0.302.b08-0.el7_9.x86_64
5. 安装icedtea-web软件
(1)icedtea简单理解就是Java jdk的一个工具,浏览器的插件,安装也非常的方便:
yum list |grep icedtea-webicedtea-web.x86_64icedtea-web-devel.noarchicedtea-web-javadoc.noarch#yum -y install icedtea-web
(2)添加Google-chrome支持
Google-chrome的默认安装目录是/opt/google/chrome/,添加Java icedtea插件支持:
mkdir /opt/google/chrome/plugins#cd /opt/google/chrome/plugins#ln -s /usr/lib64/IcedTeaPlugin.so .
至此整个过程完毕
最后
鉴于Java jdk这块使用的时候问题会比较多,因此建议后续服务器运维多选择HTML5 Viewer。关于Firefox浏览器插件的支持,Java官网同样给出了方发,同Google-chrome,只是库文件不一样,具体可查阅官网。参考文档
/title/TigerVNC#Initial_setup
https://serverspace.io/support/help/installing-and-configuring-a-vnc-server-on-centos-7/
Java官网:/zh-CN/download/help/enable_browser_ubuntu.html