如何在CentOS 7中安装和配置VNC服务器

在本指南中,我们将介绍如何通过tigervnc-server程序在CentOS 7和RHEL 7 Desktop版本的最新版本中安装和配置VNC Remote Access。

在本指南中,我们将介绍如何通过tigervnc-server程序在CentOS 7RHEL 7 Desktop版本的最新版本中安装和配置VNC Remote Access

VNC虚拟网络计算 )是一种服务器 - 客户端协议,允许用户帐户通过使用图形用户界面提供的资源远程连接和控制远程系统。

与其他可直接连接到运行时桌面(例如VNC XVino)的 VNC服务器不同, tigervnc-vncserver使用为每个用户配置独立虚拟桌面的不同机制。

要求

  1. CentOS 7安装步骤
  2. RHEL 7安装步骤

第1步:在CentOS 7中安装和配置VNC

1. Tigervnc-server是一个执行Xvnc服务器并在VNC桌面上启动Gnome或其他桌面环境的并行会话的程序。

多个VNC客户端可以由同一用户访问启动的VNC用户会话。 为了在CentOS 7中安装TigerVNC服务器,打开一个终端会话,并以root权限发出以下命令。

$ sudo yum install tigervnc-server

2.之后,您已安装该程序,请使用要运行VNC程序的用户登录,并在终端中发出以下命令,以配置VNC服务器的密码。

请注意,密码长度必须至少为六个字符。

$ su - your_user  # If you want to configure VNC server to run under this user directly from CLI without switching users from GUI
$ vncpasswd

3.接下来,通过放在systemd目录树中的守护程序配置文件为用户添加一个VNC服务配置文件。 为了复制VNC模板文件,您需要使用root权限运行以下命令。

如果您的用户未被授予sudo权限,请直接切换到root帐户,或从具有root权限的帐户运行该命令。

# cp /lib/systemd/system/[email protected]  /etc/systemd/system/[email protected]:1.service

4.在下一步中,从/ etc / systemd / system /目录中编辑复制的VNC模板配置文件,并替换 以反映您的用户的值,如下面的示例所示。

@符号后的值1表示显示编号(端口5900 +显示 )。 此外,对于每个启动的VNC服务器,端口5900将增加1

# vi /etc/systemd/system/[email protected]\:1.service

将以下行添加到文件文件vncserver @:1.service

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l my_user -c "/usr/bin/vncserver %i -geometry 1280x1024"
PIDFile=/home/my_user/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target

5.对VNC服务文件进行适当的更改后,重新加载systemd系统初始化程序以接收新的vnc配置文件并启动TigerVNC服务器。

另外,检查VNC服务状态,并通过发出以下命令启用系统范围的VNC守护程序。

# systemctl daemon-reload
# systemctl start [email protected]:1
# systemctl status [email protected]:1
# systemctl enable [email protected]:1

启动VNC服务

启动VNC服务

6.要列出VNC服务器拥有的监听状态下的已打开端口,请运行ss命令 ,该命令用于CentOS 7显示网络套接字。 因为您只启动了一个VNC服务器实例,所以第一个打开的端口是5901 / TCP

再次,ss命令必须以root权限执行。 如果不同用户并行启动其他VNC实例,端口值将为5902 ,第三个端口值为5903依次类推。 端口6000+用于允许X应用程序连接到VNC服务器。

# ss -tulpn| grep vnc

验证VNC监听端口

验证VNC监听端口

7.为了允许外部VNC客户端连接到CentOS中的VNC服务器,您需要确保正确的VNC打开端口被允许通过防火墙。

在启动VNC服务器的一个实例的情况下,只需要打开第一个分配的VNC端口: 5901 / TCP,通过发出以下命令在运行时应用防火墙配置。

# firewall-cmd --add-port=5901/tcp
# firewall-cmd --add-port=5901/tcp --permanent

第2步:通过VNC客户端连接到CentOS桌面

8.作为独立于平台的协议,可以从几乎任何具有GUI和专用VNC客户端的操作系统执行远程图形用户界面VNC连接。

用于基于Microsoft的操作系统的受欢迎的VNC客户端,与Linux TigerVNC服务器完全兼容,是RealVNC VNC Viewer

为了通过VNC协议从Microsoft OS远程连接到CentOS Desktop,打开VNC Viewer程序,添加CentOS VNC服务器的IP地址和端口号,然后按[Enter]键。

VNC连接建立后,如下图所示,屏幕上应显示连接未加密的警告。

VNC Viewer客户端

VNC Viewer客户端

VNC Viewer客户端连接

VNC Viewer客户端连接

9.为了绕过警告,点击Continue按钮,在第2点添加VNC服务器的密码设置,并将用户配置为运行VNC服务器实例的远程连接到CentOS Desktop。

VNC服务器用户密码

VNC服务器用户密码

VNC Remote CentOS桌面

VNC Remote CentOS桌面

10.如果屏幕上出现新的验证信息,并且用户没有root用户权限,则只需点击取消按钮继续使用CentOS Desktop,如下图所示。

VNC服务器验证警告

VNC服务器验证警告

请注意,服务器和客户端之间建立的VNC通信以及交换的任何数据(密码除外)通过未加密的通道运行。 为了加密和保护VPN数据传输,首先需要设置一个安全的SSH隧道,并通过SSH隧道运行任何后续的VPN流量。

11.为了通过其他CentOS Desktop通过VNC协议远程连接到CentOS Desktop,首先请确保通过发出以下命令将vinagre软件包安装在系统上。

$ sudo yum install vinagre

12.要打开vinagre实用程序,请转到应用程序 - >实用程序 - >远程桌面查看器 ,如下图所示。

打开Vinagre工具

打开Vinagre工具

13.要远程连接到CentOS Desktop,请点击Connect按钮,从列表中选择VNC协议,并添加远程VNC服务器的IP地址和端口( 5900 +显示屏号码)。 另外,提供VNC用户的密码设置,如下面的屏幕截图所示。

选择远程桌面协议

选择远程桌面协议

输入远程VNC详细信息

输入远程VNC详细信息

远程VNC CentOS桌面

远程VNC CentOS桌面

14.另一个流行的基于Linux平台的VNC客户端是Remmina ,远程桌面客户端在运行GNOME桌面环境的基于Debian的发行版中特别有用。

要在基于Debian的发行版中安装Remmina Remote Desktop客户端,请发出以下命令。

$ sudo apt-get install remmina

第3步:在CentOS 7中配置多个VNC会话

15.如果您需要在同一用户下运行新的并行VNC会话,请打开终端控制台,使用要启动新VNC会话的用户登录并执行以下命令。

当您首次启动服务器时,系统将要求您提供此会话的新密码。 但是,请注意,此会话将以您登录的用户权限运行,并独立于启动的systemd VNC服务器会话。

$ vncserver

开始新的VNC会话

开始新的VNC会话

16.新的VNC会话将打开下一个可用的VNC端口(在这个例子中为5900 + 3显示)。 要显示已打开的端口,请执行无命令的ss命令 ,如下面的摘录所示。 它将仅列出用户所启动的VNC会话。

$ ss -tlpn| grep Xvnc

列出VNC开放端口

列出VNC开放端口

17.现在,使用新的VNC会话远程连接到CentOS Desktop,在VNC客户端中提供IP:端口组合(192.168.1.23:5903),如下图所示。

连接到VNC远程桌面

连接到VNC远程桌面

为了停止以该登录用户权限启动的VNC服务器实例,请发出以下命令,而不需要任何root权限。 此命令将销毁所有仅由声明用户的VNC实例。

$ su - your_user
$ killall Xvnc

另请参阅使用VNC模式远程安装CentOS 7或RHEL 7

就这样! 您现在可以使用操作系统提供的图形用户界面访问CentOS 7系统并执行管理任务。