在Linux系统下搭建远程桌面,VNC(虚拟网络计算)一直是备受信赖的解决方案。特别是在企业级部署环境中,VNC凭借其稳定可靠、开放源代码、跨平台兼容等优势,使用体验甚至超越某些商业软件。下面将详细梳理VNC服务器的搭建流程,同时介绍常见操作与底层原理。整个过程并不复杂,跟随步骤即可顺利完成。
一、VNC服务器搭建完整步骤
1. 首先确认TigerVNC是否已安装。 通过以下命令检查:
[root@localhost ~]# rpm -qa | grep tigervnc
若返回以下结果,说明已安装,继续后续操作:
tigervnc-1.1.0-5.el6_4.1.x86_64tigervnc-server-1.1.0-5.el6_4.1.x86_64
如果未安装,使用 yum install 命令快速安装即可。
2. 编辑VNC服务的主配置文件。
[root@localhost ~]# vim /etc/sysconfig/vncservers
在此配置文件中指定用户及对应的桌面编号。例如,将1号桌面分配给root用户,2号桌面分配给bob用户。桌面号从1起始,对应端口依次为5901、5902……最多支持6个用户同时连接。注意:所有用户必须已存在于系统。
VNCSERVERS="1:root 2:bob"
还可为每个用户单独设置分辨率等参数,示例如下:
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp"VNCSERVERARGS[2]="-geometry 1024x768 -nolisten tcp"
3. 首次启动VNC,为root用户配置登录密码。 该密码将保存在 /root/.vnc/passwd 文件中。
[root@localhost ~]# vncserverpassword:verify:
4. 同样,为bob用户设置独立的登录密码。 切换用户后再启动VNC:
[root@localhost ~]# su - bob[bob@localhost ~]$ vncserverpassword:verify:
5. 返回root用户,修改其桌面启动文件。 该文件决定远程登录后的桌面环境——默认采用简陋的twm窗口管理器,可改为更友好的GNOME或KDE桌面。
[bob@localhost ~]$ exit[root@localhost ~]# vim /root/.vnc/xstartup
将文件中的 twm & 注释掉,并在末尾添加:
gnome-session & (若使用KDE桌面,则填写 startkde &)
6. 同样,bob用户也需要修改自己的xstartup文件。
[bob@localhost ~]# vim /home/bob/.vnc/xstartup
执行相同操作:注释 twm &,追加 gnome-session &(或 startkde &)。
7. 启动VNC服务。 可使用 service vncserver start 或 systemctl start vncserver(具体取决于系统版本)。至此,服务器端搭建完成。
8. 在Windows客户端安装VNC Viewer。 该软件安装过程简单,一路默认选项即可。连接时输入 IP地址:1 对应root用户,IP地址:2 对应bob用户,以此类推。
二、其他常用VNC操作命令
1. 关闭root用户的VNC桌面(指定桌面号:1)。 注意,关闭操作不会影响其他用户。
[root@localhost ~]# vncserver -kill :1
若提示进程死锁,可先手动终止对应进程,再重新执行kill以清理socket文件。重新启动桌面也很简便:
[root@localhost ~]# vncserver :1
启动后出现类似提示:
New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1Starting applications specified in /root/.vnc/xstartupLog file is /root/.vnc/localhost.localdomain:1.log
2. 修改VNC登录密码。 直接运行 vncpasswd 命令即可。以root用户为例:
[root@localhost ~]# vncpasswdPassword:Verify:
更新后,后续连接需使用新密码。bob用户的密码修改方式类似,先切换到bob账户再执行 vncpasswd。
三、VNC技术详解
VNC全称Virtual Network Computer,即虚拟网络计算机。它由AT&T欧洲研究实验室开发,在Linux生态中占据重要地位。作为开源、免费、跨平台的远程控制工具,其远程操控能力毫不逊色于Windows远程桌面或Mac屏幕共享。在Linux环境下,VNC主要包含四个核心命令:vncserver、vncviewer、vncpasswd、vncconnect。日常运维中最常用的是前两个。
工作流程清晰易懂:
1)服务器端启动VNC Server。
2)客户端通过浏览器或VNC Viewer连接至VNC Server。
3)VNC Server向客户端弹出对话框,要求输入连接密码并指定要访问的显示设备(即桌面编号)。
4)客户端输入密码后,VNC Server完成权限校验。
5)验证通过后,客户端请求VNC Server显示桌面环境。
6)VNC Server通过X Protocol向X Server请求将画面控制权移交至VNC Server。
7)VNC Server将从X Server获取的桌面环境通过VNC通信协议传输给客户端,同时允许客户端远程操控服务器的桌面及输入设备。
