第十八章 VNC远程连接
18.1 VNC简介
我们知道在数据中心机房中,服务器一般是锁在机柜中的,服务器只有在刚买来第一次配置或安装系统时,才会连接显示器、键盘、鼠标等外设,初次配置完毕后,就会把这些外设都拔除,与外界通信只保留网络连接。所以,运维人员只可以通过远程登录服务连接管理服务器。
之前章节中我们介绍过ssh服务实现远程登录,但是ssh只支持字符界面的登录,如果我们想实现GUI图形界面的远程呢?那就需要使用VNC服务了。
所以VNC服务就是实现Linux中图形界面远程登录的。
18.2 VNC服务配置
关于VNS服务,我们这里使用三台虚拟机:一台Linux服务器,工作于GUI界面,ip地址192.168.10.10;一台Linux客户机,工作于GUI界面,ip地址192.168.10.11;一台windows客户机,IP地址192.168.10.12。
然后我们来配置VNC服务器。
12.1 VNC服务器配置
首先安装VNC服务端软件包:
yum -y install tigervnc-server
安装完毕,我们会在系统的服务文件位置看到vncserver@.service文件,如下图:
然后我们复制这个文件为配置文件,并配置它:
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
这里把配置文件名中加:1,是加的vnc的连接编号参数,客户端登录时也要指定这个参数来对应连接,同时这个参数也决定了服务器开启的服务端口号。VNC服务使用的端口号是5900系列的,也就是说,真正的服务端口是采用基数5900+参数的形式得到的,所以我们定义的:1号连接,它的服务器端口就是5901了。
vi /etc/systemd/system/vncserver@:1.service ---编辑服务配置文件
改里面的两行信息为:
User=root ---本连接以root用户身份登录
PIDFile=/root/.vnc/%H%i.pid ---指定VNC连接相关进程文件存在root家目下
tips:若要允许其他用户访问,如:zhang,则需指定用户名及家目录为zhang用户的相关信息,如下:
User=zhang ---本连接允许使用root登录
PIDFile=/home/zhang/.vnc/%H%i.pid
配置完毕后,重新加载一下systemd进程:
systemctl daemon-reload
为了安全,我们不会把用户的密码告知客户,所以需要设置vnc的连接密码,命令如下:
vncpasswd ---设置连接密码
注:设置密码的命令必须使用在vncserver@:1.service配置文件中授权的用户登录系统下运行。否则将不被授权。如:vncserver@:1.service中设置允许客户端以root身份连接VNC,则需要以root用户登录到系统后,运行vncpasswd命令;若vncserver@:1.service中设置允许客户端以用户zhang的身份连接VNC,则需要su到用户zhang的登录界面下,再运行vncpasswd命令。
另外,vncpasswd命令会要求设置两个密码,第一次设置的是允许连接后做操作的密码,第二次设置的是连接后只能查到桌面,但不能做操作的密码。
tips:设置两个密码的目的是,当有两个客户机同时连接到同一个VNC连接时,其实打开的是同一个shell,即同一个操作界面,若都使用的是允许操作的密码登录的,则两个人都可以做操作,就会出现操作冲突、争抢的现象。所以我们可以让一个用户使用允许操作密码登录,另一个用户使用仅查看的密码登录,则一方可动,另一方只能看了,并且完全可见到对方的操作过程,相当于现场教学了。
然后我们来启动VNC服务:
systemctl restart vncserver@:1.service
systemctl enable vncserver@:1.service
然后我们查看一下端口是否已被监听:
lsof -i:5901
这样VNC服务器就配置完毕了。
PS:当然我们也可以在复制出:2号、:3号等多个连接配置文件。
18.2.2 VNC的Linux客户机配置
关于Linux的客户机,配置就更为简单了,配置好ip后,关闭防火墙,然后安装VNC客户端软件包:
yum -y install tigervnc
安装完毕后,就可以访问了,使用的命令是vncview,具体如下:
vncviewer 192.168.10.10:1 ---连接VNC服务器:1号服务
回车后,会弹窗要求输入密码,之前服务器上我们设置过两个密码,所以若输入允许操作的密码登录后就可以鼠标操作了;如果输入仅查看的密码,登录后就只能看不能动了。
另外,我们也可以在客户机上打开两个终端界面,分别使用vncviewer登录到服务器上,一个允许操作,一个不允许操作,那么就会打开两个服务器的窗口,一个做操作,另一个是可以看到操作过程的。
18.2.3 VNC的windows客户机配置
其实在实际生产环境中,我们更多的是使用个人PC的windows系统,远程登录到VNC服务器的。但是windows本身是不支持连接VNC的,所以需要在windows上安装一款VNC客户端软件:vncviewer,安装完毕后打开链接项,输入服务器地址和编号就可以了:
18.3 小结
到此为止,我们的VNC服务就介绍完了。其实在实际的生产环境中,VNC的使用率并不高,而且CentOS7.4的VNC连接后并不是我们想象中的会把整个桌面都显示出来,其实只是桌面的主体部分(CentOS7.2、7.0等系统连接后显示的界面是全桌面化的),要做操作还是需要打开终端才可以。再者,我们都知道Linux系统的主要配置方式还是命令,所以,我们还是应该以熟悉ssh访问为主,VNC服务可以当做非重点知识了解即可。