RealVNC是目前功能最全、性能最好的VNC商业软件套件,很多时候为了确保性能和功能的统一,还是大量地在使用RealVNC。最近在Fedora 22工作站上安装RealVNC Server 5.2.3最新版,碰到了一些问题,借这个机会,把RealVNC Server的安装、两种服务模式的配置(Server模式和Virtual模式)都基本上弄清楚了,在RHEL/CentOS 6.3/7.0等系统上的安装也几乎与Fedora别无二致。
首先,当然是从RealVNC官方网站下载for Linux的安装包。注意,从5.0开始,RealVNC提供了统一的打包安装文件(安装后就已经包含服务端、客户端以及相关附带工具及文档等了),不需要再分别下载服务端、客户端等等了。
下载完后,解压缩并执行安装程序,相关可执行文件默认被安装到/usr/local/bin目录下。安装完后记得执行vnclicense命令添加并查看许可证……过程的细节这里我就不多说了,重点讲一讲如何配置。
RealVNC Server提供两种运行模式,即Server模式和Virtual模式。Server模式是指主机启动进入图形模式后,无论登录与否,多个远端都可以通过VNC访问主机当前的X11图形环境,所有远端共享当前主机上的同一个图形管理器会话,主机上的图形环境下的操作或者某个远端对主机图形环境下的远程操作,包括主机在内以及所有远端都能同时看见。Virtual模式则有点类似于云桌面方式,即远端通过VNC远程连接到主机后,主机上的VNC Server开启一个幕后的图形环境会话专供这个远端远程控制使用,每个连接到主机的远端,都拥有一个各自独立的远程图形环境会话,互不干扰,主机自己的图形环境会话也是独立的,不受远端的干扰。
这两种模式各有各的优点,我们这里不讨论比较。针对配置而言,首先要知道,RealVNC的配置文件基本都位于/etc/vnc目录下。VNC至少有三种认证模式,第一种是VNC自己的VNCAuth认证模式,只需要提供密码即可远程登录,不需要用户名,比较方便;第二种是Windows系统认证模式,针对安装在Windows上的VNC Server而言,可以使用Windows系统的账户认证;第三种是UnixAuth认证模式,针对安装在Unix/Linux上的VNC Server而言,可以使用Unix/Linux系统的账户认证。我们首先配置VNCAuth模式的密码,执行命令:
# /usr/local/bin/vncpasswd
根据提示输入密码确认即可。生成的密码自动保存在名为/root/.vnc/passwd的这个文件中。然后我们开始配置RealVNC Server的安全选项及认证模式。进入/etc/vnc/config.d目录下,创建两个文件,名字分别为common.custom.virtual和common.custom.x11。这两个文件分别是对应Virtual模式和Server模式的配置文件。其内容分别如下:
common.custom.virtual的内容为:
AllowHttp=0
AlwaysShared=1
ReverseSecurityTypes=RA2,RA2ne,None
SecurityTypes=RA2,RA2ne
UserPasswdVerifier=UnixAuth
common.custom.x11的内容为:
AllowHttp=0
AlwaysShared=1
ReverseSecurityTypes=RA2,RA2ne,None
SecurityTypes=RA2,RA2ne,VncAuth
UserPasswdVerifier=VncAuth
保存好后,根据RealVNC Server运行模式的需要,可在/etc/vnc/config.d当前目录下创建一个软连接名为common.custom,指向common.custom.virtual或者common.custom.x11,以便适应两种不同的运行模式。然后返回到/etc/vnc目录下,创建一个名为xstartup.custom.mate的文件,编辑其内容如下:
#!/bin/bash
/usr/bin/mate-session &
保存好后,记住一点,如果要让RealVNC Server运行在Virtual模式下,则需要在/etc/vnc目录下生成一个软连接名为xstartup.custom,指向xstartup.custom.mate;如果要让RealVNC Server运行在Server模式下,则要删除xstartup.custom。接着,利用yum或者dnf安装MATE桌面环境。之所以要安装MATE桌面环境,是因为从GNOME 3.0以及KDE 5.0开始,由于它们都使用了更高级的OpenGL特性实现炫丽的桌面特效,导致RealVNC Server再带的Virtual模式模拟X服务器无法支持,从而导致RealVNC Server在Virtual模式下无法启动GNOME 3.0/KDE 5.0,导致Virtual模式启动失败。而MATE桌面环境仍然采用GTK+2.0及简单的XCompose复合效果,RealVNC Server自己的Virtual模式X服务器可以支持得很好。所以这样一来,在Virtual模式下,远端连接到主机后看到的就是MATE桌面啦,而主机自己则仍然使用GNOME 3.0/KDE 5.0桌面,互不干扰,很有趣。当然,如果你喜欢,你也可以安装XFCE等轻量级桌面,然后修改上面的配置,让远端连接主机后看到的是XFCE桌面……
最后,就是使RealVNC Server服务生效并启动了。如果你想使用RealVNC 的Server模式,则使用如下命令:
# systemctl enable vncserver-x11-serviced.service
# systemctl start vncserver-x11-serviced.service
如果你想使用Virtual模式,则使用如下命令:
# systemctl enable vncserver-virtuald.service
# systemctl start vncserver-virtuald.service
如果要修改RealVNC Server默认的网络监听端口(Server模式下是5900,Virtual模式下是5999),可以在common.custom中添加RfbPort参数指定为你想要的端口号。
common.custom中的那些参数可以通过RealVNC官方文档去查,当然,官方文档我觉得很零散,不好找,这里告诉你两个办法,可以通过类似
# vncserver-x11 -help