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)? n
A 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 environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' # %i 修改成 :1
ExecStart=/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/.vnc
config <hostname>:1.log <hostname>:1.pid passwd xstartup
#
cd /home/maintain/.vnc
vim xstartup #更改配置文件
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 #更换成使用的桌面模式,若是使用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 killed
if [ -e /usr/bin/gnome-session -o -e /usr/bin/startkde ]; then
vncserver -kill $DISPLAY
fi
#
cat config #可以保持不变,不必须更改
#securitytypes=vncauth,tlsvnc
#desktop=xfce
#
vncserver #第一次更改完配置文件,再次执行,不用加“:1”,会自动往后排序,具体用法可以使用“-h”查看。
vncserver -list #查看当前的服务进程的运行列表,可以看到“:1”存在。如无问题,则到此vnc server的配置和启动就完成了
TigerVNC server sessions:
X DISPLAY # PROCESS ID
:1 429387
#
netstat -tlnp
tcp 0 0 0.0.0.0:5902 0.0.0.0:* LISTEN 554190/Xvnc
#
ss -tulpn| grep vnc
(4)连接验证
下载VNC Viewer,可通过官网下载并完成安装。
打开客户端,新建连接:
连接VNC server验证完成,可以开启VNC使用之旅了。
3. 安装Google-chrome浏览器
完成上面的VNC连接以后,开始安装浏览器(若是使用的GNOME Desktop桌面模式,默认自带Firefox浏览器),这里我选择的是Google-chrome浏览器,使用习惯问题,不必纠结。
这里安装是使用的yum方式,主机可以访问外网,若是环境不允许可以自行下载Linux版本的软件包,使用手动安装方式,可参考Google官网,不做介绍:https://support.google.com/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-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl.google.com/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_64
java-1.8.0-openjdk-headless.x86_64
#
yum -y install java-1.8.0-openjdk.x86_64 #如果存量服务器都比较老,建议安装低版本jdk
yum -y install java-1.8.0-openjdk-headless.x86_64
#
rpm -qa |grep jdk
java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64
java-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-web
icedtea-web.x86_64
icedtea-web-devel.noarch
icedtea-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,只是库文件不一样,具体可查阅官网。
参考文档
https://wiki.archlinux.org/title/TigerVNC#Initial_setuphttps://serverspace.io/support/help/installing-and-configuring-a-vnc-server-on-centos-7/Java官网:https://www.java.com/zh-CN/download/help/enable_browser_ubuntu.html