如何在CentOS 7上安装和配置VNC

来源:linux265.com 发布时间:2018-09-19
422

如何在CentOS 7上安装和配置VNC如何在CentOS 7上安装和配置VNC

在本教程中,我们将引导您完成在CentOS 7系统上安装和配置VNC服务器的步骤。 我们还将向您展示如何通过SSH隧道安全地连接到VNC服务器。

虚拟网络计算(VNC)是一种图形桌面共享系统,允许您使用键盘和鼠标远程控制另一台计算机。

准备条件

在继续学习本教程之前,请确保以具有sudo权限的用户身份登录。 我们假设您以名为linux265的用户身份登录。

安装Xfce桌面环境

CentOS服务器安装通常不会安装桌面环境,因此我们首先安装轻量级桌面环境。

在本指南中,我们将安装Xfce。 它快速,稳定且系统资源较少,因此非常适合在远程服务器上使用。

EPEL存储库中提供了Xfce包。 如果您的服务器上没有启用EPEL存储库,则可以键入以下命令:

sudo yum install epel-release

添加存储库后,键入以下命令在CentOS服务器上安装Xfce:

sudo yum groupinstall xfce

根据您的系统,下载和安装Xfce软件包和依赖项可能需要一些时间。

安装 VNC Server

TigerVNC是一款积极维护的高性能开源VNC服务器。

键入以下命令以在CentOS服务器上安装TigerVNC:

yum install tigervnc-server

现在安装了VNC服务器,下一步是运行vncserver命令,该命令将创建初始配置并设置密码。 不要将sudo添加到以下命令:

vncserver

系统将提示您输入并确认密码,以及是否将其设置为仅查看密码。 如果您选择设置仅查看密码,则用户将无法使用鼠标和键盘与VNC实例进行交互。

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n
/usr/bin/xauth:  file /home/linuxize/.Xauthority does not exist

New 'server2.linuxize.com:1 (linuxize)' desktop at :1 on machine server2.linuxize.com

Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/linuxize/.vnc/server2.linuxize.com:1.log

第一次运行vncserver命令时,它将创建密码文件并将其存储在〜/ .vnc目录中,如果不存在,将创建该目录。

注意:1输出上面的主机名后面。 这表示运行vnc服务器的显示端口号。 在我们的例子中,服务器在TCP端口5901(5900 + 1)上运行。 如果使用vncserver创建第二个实例,它将在下一个空闲端口上运行,即:2表示服务器正在端口5902(5900 + 2)上运行。

重要的是要记住,在使用VNC服务器时,:X是一个引用5900 + X的显示端口。

在继续下一步之前,首先使用带有-kill选项的vncserver命令和服务器编号作为参数来停止VNC实例。 在我们的例子中,服务器在端口5901(:1)中运行,因此我们将使用以下命令停止它:

vncserver -kill :1
输出结果:
Killing Xvnc process ID 2432

配置VNC Server

现在我们的CentOS服务器上安装了Xfce和TigerVNC,下一步是配置TigerVNC使用Xfce。 为此,请打开以下文件:

nano ~/.vnc/xstartup

更改文件中最后一行内容 exec /etc/X11/xinit/xinitrc 修改为 exec startxfce4:

~/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4 

保存并关闭文件。 无论何时启动或重启TigerVNC服务器,都将自动执行上述脚本。

如果需要将附加选项传递给VNC服务器,可以打开~/ .vnc/config文件并在每行添加一个选项。 最常见的选项列在文件中。 取消注释并根据自己的喜好进行修改。

这是一个例子:

~/.vnc/config
# securitytypes=vncauth,tlsvnc
# desktop=sandbox
geometry=1920x1080
# localhost
# alwaysshared
dpi=96

创建Systemd单元文件

我们将创建一个systemd单元文件,使我们能够根据需要轻松启动,停止和重新启动VNC服务,与任何其他systemd服务相同。

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

使用文本编辑器打开文件,并将替换为您的实际用户名。

sudo nano /etc/systemd/system/vncserver@\:1.service
/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 linuxize -c "/usr/bin/vncserver %i"
PIDFile=/home/linuxize/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

保存并关闭文件。 通知systemd我们创建了一个新的单元文件:

sudo systemctl daemon-reload

下一步是使用以下命令启用单元文件:

sudo systemctl enable vncserver@:1.service

@符号后面的数字1定义了VNC服务将在其上运行的显示端口,在我们的情况下是默认值1,VNC服务器将侦听端口5901,正如我们在上一节中讨论的那样。

执行以下命令启动VNC服务:

sudo systemctl start vncserver@:1.service

验证服务是否已成功启动:

sudo systemctl status vncserver@:1.service
输出结果:
● vncserver@:1.service - Remote desktop service (VNC)
   Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2018-09-16 09:59:53 UTC; 4s ago
  Process: 6391 ExecStart=/usr/sbin/runuser -l linuxize -c /usr/bin/vncserver %i (code=exited, status=0/SUCCESS)
  Process: 6389 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
 Main PID: 6413 (Xvnc)
   CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
           ‣ 6413 /usr/bin/Xvnc :1 -auth /home/linuxize/.Xauthority -desktop server2.linuxize.com:1 (linuxize) -fp catalogue:/etc/X11/fontpath.d -geometry 1024x768 -pn -rfbauth /home/linuxize/.vnc/passwd -rfbport ...

连接 VNC server

VNC不是加密协议,可以进行数据包嗅探。 建议的方法是创建一个SSH隧道,该隧道将安全地将来自本地计算机的端口5901上的流量转发到同一端口上的服务器。

在Linux和macOS上设置SSH隧道

如果在计算机上运行Linux,macOS或任何其他基于Unix的操作系统,则可以使用以下命令轻松创建SSH隧道:

ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

系统将提示您输入用户密码。

不要忘记将username和server_ip_address替换为您的用户名和服务器的IP地址。

在Windows上设置SSH隧道

如果运行Windows,则可以使用PuTTY SSH客户端设置SSH隧道。

打开Putty并在主机名或IP地址字段中输入您的服务器IP地址。

Putty configPutty config

然后从Category:框中,展开SSH并选择Tunnels。 在Source Port字段中输入VNC服务器端口(5901),在Destination字段中输入server_ip_address:5901,然后单击Add按钮,如下图所示:

Putty TunnelsPutty Tunnels

返回“会话”页面以保存设置,以便您不必每次都输入它们。 现在,您只需选择已保存的会话并通过单击“打开”按钮登录到远程服务器。

使用Vncviewer连接

现在您已经设置了SSH隧道,现在可以打开Vncviewer并连接到localhost:5901上的VNC服务器。

您可以使用任何VNC查看器,如TigerVNC,TightVNC,RealVNC,UltraVNC Vinagre和VNC Viewer for Google Chrome。

在这个例子中,我们将使用TigerVNC。 打开VNC查看器,输入localhost:5901并单击“连接”按钮。

VNCviewerVNCviewer

出现提示时输入密码,您应该会看到默认的Xfce桌面。 它应该看起来像这样:

VNC viewer desktopVNC viewer desktop

您现在可以使用键盘和鼠标从本地计算机开始与远程XFCE桌面交互。

总结

到目前为止,您应该启动并运行VNC服务器,并且可以使用图形界面轻松管理CentOS 7服务器。

要配置VNC服务器以启动多个用户的显示,请使用vncserver命令创建初始配置并设置密码,并使用其他端口创建新的服务文件。

相关资讯

留言(1条)

为什么要远程桌面呢,SSH不就一切搞定了!

我要发表看法

«-必填

«-必填,不公开

若看不清,请点击更换

«- 点击按钮

最新资讯TOP10

一周热门TOP10

一月热门TOP10

图书推荐