龙空技术网

CentOS7 - 配置TigerVNC

小白熊工作室 417

前言:

今天同学们对“centos7live”大概比较看重,兄弟们都需要学习一些“centos7live”的相关知识。那么小编在网上收集了一些关于“centos7live””的相关资讯,希望兄弟们能喜欢,兄弟们一起来学习一下吧!

配置TigerVNC

虚拟网络计算(VNC)通过捕获显示器的帧缓冲区并使其在网络上可用来工作。 此配方向您展示如何安装TigerVNC并对其进行配置,以便为远程用户提供对其图形桌面环境的访问,就像他们实际位于系统前一样。

做好准备

这个配方需要两个系统,一个CentOS系统来托管VNC服务器(远程系统)和一个本地计算机与一个VNC客户端连接到它。 它假定远程系统正在运行OpenSSH SSH服务器和图形桌面环境,如GNOME或KDE。 远程服务器上需要管理权限,可以使用root帐户登录,也可以使用sudo。 预计本地计算机将安装VNC客户端。

怎么做

请按照以下步骤安装和配置TigerVNC:

在远程系统上,安装TigerVNC服务器软件包:

yum install tigervnc-server
将随软件包提供的示例单元文件复制到/etc/systemd/system,调整其名称以包含使用VNC的人员的用户名:
cp /usr/lib/systemd/system/vncserver@.service  /etc/systemd/system/vncserver-tboronczyk@.service
使用文本编辑器打开新的单元文件:
vi /etc/systemd/system/vncserver-tboronczyk@.service
替换[Service]部分的ExecStart和PIDFile条目中显示的<USER>占位符:
ExecStart=/usr/sbin/runuser -l tboronczyk -c "/usr/bin/  vncserver %i"PIDFile=/home/tboronczyk/.vnc/%H%i.pid
保存更改并关闭文件。对将使用VNC连接到其桌面的每个用户重复步骤2到5。重新加载systemd的配置以使其了解新的单元文件:
systemctl daemon-reload
打开系统防火墙中的端口5900到5903以接受传入的VNC请求:
firewall-cmd --zone=public --permanent --add-service=vnc- serverfirewall-cmd --reload
使用VNC的用户应使用vncpasswd设置用于通过VNC服务器进行身份验证的密码:
vncpasswd
当用户想要连接时,在启动TigerVNC时在设备名称中指定@之后的显示数字:
systemctl start vncserver-tboronczyk@:1.service
不使用时停止服务器:
systemctl stop vncserver-tboronczyk@.service
工作原理

与VNC服务器一起,tigervnc-server软件包安装systemd单元文件以启动和停止服务器。 但是,在使用之前我们需要注意一些配置,因为服务器在用户的帐户下运行以获取其桌面。

当TigerVNC启动时,它连接到X服务器并登录到用户的桌面,就像用户坐在系统本身前面一样。 这意味着每个用户都需要自己运行的服务器实例,我们需要为每个用户配置它。 我们制作了/usr/lib/systemd/system下的原始单元文件的副本,每个用户一个。

cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/  vncserver-tboronczyk@.service

复制文件的名称包含用户名,以便我们可以保持一切有条理。 它们被放在/etc/systemd/system下,因为systemd在搜索/usr/lib/systemd之前在/etc/systemd中查找单元(事实上,/etc/systemd中的许多条目是/usr下它们原始文件的符号链接/LIB/systemd)。 因此,将副本放在那里可以让我们保持原件的完好无损,并保护我们在升级的情况下不会丢失我们的配置,直到原始文件被替换。

该系统具有为多个用户配置的VNC访问

我们使用适当的用户名替换了每个配置文件中[SERVICE]部分下任何<USER>占位符的出现:

ExecStart=/usr/sbin/runuser -l tboronczyk -c "/usr/bin/vncserver %i"PIDFile=/home/tboronczyk/.vnc/%H%i.pid

当我们使用systemctl start启动服务器时,将调用ExecStart条目中指定的命令; 它使用runuser在用户帐户下运行TigerVNC。 -l(小写L)参数提供用户名,-c指定runuser将执行的命令及其参数。 PIDFile条目指定正在运行的进程将跟踪其进程ID的目录。

注意

runuser的作者丹·沃尔什写了一篇博客文章,名为runuser vs su,详细介绍了该命令背后的故事。 您可以在在线阅读。

文件名中出现的@符号对systemd具有特殊意义。 之后和文件后缀之前的任何内容都将传递给替换%i的单元文件中的命令。 这使我们可以将有限的信息传递给服务器,例如TigerVNC的显示编号。 当我们按照配方中所示启动服务器时:@在@之后给出。 该值由systemd解析,TigerVNC在显示器1上启动。如果我们使用:2,服务器将在显示器2上启动。我们可以为不同用户启动多个TigerVNC实例,甚至可以为同一用户启动,只要显示器是 各有所不同:

systemctl start vncserver-tboronczyk@:1.service

防火墙应允许显示器对应端口的流量。 显示0使用端口5900,显示器1使用端口5901,显示器2使用端口5902,依此类推。 如果您使用的是FirewallD,则预定义的vnc-server服务将打开端口5900-5903:

firewall-cmd --zone=public --permanent --add-service=vnc-server

如果您需要其他端口或者如果您不需要打开整个范围,则可以使用--add-port打开您需要的内容:

firewall-cmd --zone=public --permanent --add-port=5901/tcp

用户需要先使用vncpasswd设置VNC密码才能连接到显示器。 密码长度必须至少为六个字符,尽管只有前八个字符有效。 而且,密码存储在用户的〜/ .vnc /目录中。 鉴于这些问题,建议用户不要使用与其帐户密码相同的密码。 仅在需要时运行VNC服务器也是明智的,因为知道显示号码和密码的任何人都可以连接到它。

用户还需要VNC客户端才能从本地计算机进行连接。 CentOS用户可以安装tigervnc软件包以使用TigerVNC的客户端。 其他受欢迎的客户是Ubuntu的Vinagre,Windows上的TightVNC RealVNC和OS X的VNC鸡:

yum install tigervnc

建立连接需要远程系统的IP地址或主机名以及运行VNC的显示器(端口)。 它们可以根据客户端以不同的方式提供,但大多数客户端接受的标准格式将显示附加到系统的地址,例如192.168.56.100:1。 然后将提示用户输入密码,如果一切顺利,他们将被连接到远程显示器:

See also

Refer to the following resources for more information on running TigerVNC and how systemd uses @ in filenames:

TigerVNC ()RHEL 7 System Administrator's Guide: TigerVNC ()ArchWiki: TigerVNC ()The @ symbol and systemctl ()Understanding Systemd Units and Unit Files ()

标签: #centos7live