CentOS7 下 VNC 安装配置操作指引

目录

  1. Vnc 概述 2
  2. Vnc 安装部署 2 2.1 环境检查 2 2.2 图形化桌面安装 3 2.3 Vnc 软件安装 4
  3. Vnc 配置 5 3.1 需要了解的关键文档 5 3.2 Vnc配置文件配置 5 3.3 建立VNC用户 7
  4. Vncserver 服务运行 7 4.1 vncserver 启动 7 4.2 vncserver 自启动 9 4.3 Vncserver 关闭 9
  5. 防火墙配置 9
  6. Vnc 客户端安装步骤 10 6.1 软件安装 10 6.2 环境设置 14
  7. Vnc 连接黑屏解决办法 15 7.1 修改xstartup 文件 15 7.2 设置xstartup文件权限 16 7.3 配置vncservers文件 16 7.4 重启主机 16

1.Vnc 概述 VNC:virtual Network Console 虚拟网络控制台。是一款常用的远程控制工具软件。 VNC 包括以下四个命令:vncserver,vncviewer,vncpassword及vncconnect。 VNCclient端通过VNC协议远程连接到vnc server端,进行桌面共享及交互; 常用的VNC软件主要有:RealVNC、TightVNC、TigerVNC、UltraVNC。 RealVNC:由VNC团队部分成员开发,分为全功能商业版及免费版; TightVNC:精简型,较节省带宽; TigerVNC:是基于RealVNC 4和X.org代码库的VNC的高速版本; UltraVNC:可结合Active Directory 及NTLM的账号密码认证,但仅有Windows版本。 VNC默认使用TCP端口5900。 VNC服务使用的端口号与桌面号相关,端口从5900开始,对应关系如下: 桌面号为“1”  ---- 端口号为5901 桌面号为“2”  ---- 端口号为5902 桌面号为“3”  ---- 端口号为5903 …… 基于Java的VNC客户程序Web服务TCP端口从5800开始,对应关系如下: 桌面号为“1”  ---- 端口号为5801 桌面号为“2”  ---- 端口号为5802 桌面号为“3”  ---- 端口号为5803

2.Vnc 安装部署

2.1环境检查 在安装之前,需要先检查下系统版本以及是否已安装vnc软件。 而且,因为client通过vnc连接到server端的桌面,因此,在安装部署VNC server之前,Linux需要先安装好图形化桌面。 **[root@localhost ~]# cat /etc/redhat-release ** #检查系统版本 [root@localhost ~]# rpm -qa | grep vnc #检查是否已安装vnc

[root@localhost ~]# systemctl get-default #检查当前运行级别

**[root@localhost ~]# yum grouplist ** #检查可安装的group Available Environment Groups: GNOME Desktop Available Groups: Graphical Administration Tools 检查可以看到支持安装GNOME桌面及对应的图形化管理工具。

2.2图形化桌面安装 使用yum命令开始安装GNOME包及图形化管理工具。 [root@localhost ~]# yum groupinstall "GNOME Desktop" [root@localhost ~]# yum groupinstall "Graphical Administration Tools" --setopt=group_package_types=mandatory,default,optional

安装完后,再进行检查一遍,如下结果表示图形化桌面已安装OK: [root@localhost ~]# yum grouplist Installed Environment Groups: GNOME Desktop Installed Groups: Graphical Administration Tools

2.3Vnc 软件安装 图形化桌面安装好后,然后通过yum安装tightVNC软件包: [root@localhost ~]# yum isntall nvc-server

安装完毕后,再次检查下vnc安装包

[root@localhost ~]# rpm -qa |grep vnc

3.Vnc 配置 安装好后,不要急着开始启用,先了解下vnc几个基本配置文件。 3.1需要了解的关键文档 /lib/systemd/system/vncserver@.service #vnc配置文件 /usr/lib/systemd/system/vncserver@.service #vnc配置文件 /etc/systemd/system/vncserver@:N.service #vnc配置文件,N代表数字 /etc/sysconfig/vncservers #vnc user配置文件 /usr/bin/vncconfig /usr/bin/vncpasswd #vnc用户密码更改进程 /usr/bin/vncserver #vnc 服务进程

3.2Vnc配置文件配置 打开 /lib/systemd/system/vncserver@.service 文件,按提示进行配置:

按如上提示: 第一步:copy /lib/systemd/system/vncserver@.service 文件到 /etc/systemd/system/ 目录下,并命名为vncserver@:1.service

#cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

第二步:配置 /etc/systemd/system/vncserver@:1.service文件 [root@localhost system]# vim /etc/systemd/system/vncserver@:1.service [Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking #Clean any existing files in /tmp/.X11-unix environment ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/usr/sbin/runuser -l user -c "/usr/bin/vncserver %i" PIDFile=/home/user/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' [Install] WantedBy=multi-user.target

第三步:重新加载systemd服务 vncserver@.service文件配置好后,就需要重新加载systemd服务。 [root@localhost system]# systemctl daemon-reload

第四步:启动vncserver服务。 **[root@localhost system]# systemctl start vncserver@:1.service ** 注意:如有多个用户需要通过VNC 连接到vnc server,可重复以上步骤,建立多个vncserver@:N.service 文件,并运行。 3.3建立VNC用户 新增一个用户并设置密码: [root@localhost system]# useradd user [root@localhost system]# passwd user

以刚才建立的用户登录: [root@localhost system]# su - user [user@localhost ~]$ vncpasswd

如上图所示,可以设置vnc账号两个密码,vncpasswd密码具有用户正常的权限; 使用 view-only密码连接vnc,仅有桌面浏览权限。 设置vncpasswd密码后,在账号的家目录里就会自动建立 .vnc 文件:

4.Vncserver 服务运行 4.1vncserver 启动 可以针对不同的vnc用户启用对应的vncserver服务。 [root@localhost ~]# systemctl start vncserver@:1.service [root@localhost ~]# systemctl status vncserver@:1.service

启用服务后,再检查服务状态,从上图可以看出,vncserver@:1.service 已加载 /etc/systemd/system/vncserver@:1.service 文件。 再检查监听的端口: [root@localhost ~]# netstat -nutpl |grep vnc

[root@localhost ~]# ps -ef |grep vnc

查看日志信息: 每个vnc用户目录下都会生成一个对应的日志文件 [root@localhost ~]# tail -f /home/user/.vnc/localhost.localdomain:1.log

4.2vncserver 自启动 [root@localhost ~]# systemctl enable vncserver@:1.service 命令执行后会在 /etc/systemd/system/multi-user.target.wants/ 下建立一个对应的ln连接,以后开机时就会自动加载vncserver@:1.service进程。

4.3Vncserver 关闭 使用以下命令关闭vncserver@:1.service进程,仅关闭此用户的vnc服务,对其他用户的vnc连接不受影响。 **[root@localhost ~]# systemctl stop vncserver@:1.service **

5.防火墙配置 全部配置好后,服务也启动了,还需要针对该服务放通防火墙。 可以针对端口进行放通,也可以针对该服务进行放通。 防火墙的默认端口为TCP的5900 - 590N,第一个vnc用户使用TCP 5901,则第二个vnc用户使用TCP 5902,依次类推。 [root@localhost~]# firewall-cmd --zone=public --add-port=5901/tcp --permanent

如果担心端口变化,也可以针对服务进行放通: [root@localhost ~]# firewall-cmd --add-service vnc-server --permanent

服务放通后,还需要重新加载防火墙,使更改生效: [root@localhost ~]# firewall-cmd --reload [root@localhost ~]# firewall-cmd --list-services

6.Vnc 客户端安装步骤 6.1软件安装 可以根据自己的爱好从官网下载对应的软件。我这里使用realvnc viewer。 首先进入官网:https://www.realvnc.com/en/connect/download/viewer/

下载后双击VNC-Viewer-6.19.715-Windows.exe开始安装: 选择语音:

点击下一步:

接受许可协议:

选择安装组件:

点击安装:

安装完毕后,进入安装目录C:\Program Files\RealVNC\VNC Viewer打开vncviewer程序:

输入连接的vncserver IP地址及端口:

在 vncviewer会自动保留刚才所建立的连接:

双击打开,输入用户的vnc连接密码:

6.2环境设置 如果是第一次登陆的话,还需要配置下基本的桌面环境, 语言设置:

位置服务设置:

在线账号,可以直接跳过,后续有必要可在设置:

配置好后,点击开始应用:

到此,VNC已基本配置OK,可以正式使用。

7.Vnc 连接黑屏解决办法 通过vncviewer连接后,出现黑屏,主要处理办法: 7.1修改xstartup 文件 进入vnc用户家目录下的xsartup文件 [root@localhost ~]# vim /home/user/.vnc/xstartup #!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS #/etc/X11/xinit/xinitrc #vncserver -kill $DISPLAY exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & #xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #twm & gnome-session &

7.2设置xstartup文件权限 Xstartup权限默认为

可以设置权限为777 [root@localhost ~]# chmod 777 /home/user/.vnc/xstartup

7.3配置vncservers文件 **[root@localhost ~]# vim /etc/sysconfig/vncservers ** #THIS FILE HAS BEEN REPLACED BY /lib/systemd/system/vncserver@.service VNCSERVERS=”1:root” VNCSERVERARGS[1]="-geometry 800×600"

7.4重启主机 配置完毕后,重启服务,如还是不行,再重启主机。

  1. vnc无法启动问题处理

出现入下错误信息: job for vncserver@:1.service failed because a timeout was exceed.

检查vncserver@:1.service 的状态:

具体解决办法: 编辑 /etc/systemd/system/vncserver@:1.service ,配置type=simple

然后,重加载以下命令:

systemctl daemon-reload

重新运行vncserver@:1.service 服务。

systemctl start vncserver@:1.service

Zabbix5.0企业级分布式监控系统:精讲与企业应用: Zabbix5.0企业级分布式监控系统