云网牛站
所在位置:首页 > Linux云服务器 > 在CentOS 8上安装和配置VNC,然后通过SSH隧道安全地连接到VNC服务器

在CentOS 8上安装和配置VNC,然后通过SSH隧道安全地连接到VNC服务器

2020-01-31 09:53:25作者:项中强稿源:云网牛站

本文介绍了在CentOS 8操作系统上安装和配置VNC服务器的步骤,同时还将向您展示如何通过SSH隧道安全地连接到VNC服务器。先决条件是:您需要以具有sudo特权的用户身份在远程CentOS计算机上登录。

在CentOS 8上安装和配置VNC,然后通过SSH隧道安全地连接到VNC服务器

 

安装桌面环境

通常,服务器没有安装桌面环境,如果您要连接的计算机没有GUI,则第一步是安装它,否则,请跳过此步骤。

运行以下命令在远程计算机上安装Gnome(CentOS 8中的默认桌面环境):

sudo dnf groupinstall "Server with GUI"

根据您的系统,下载和安装Gnome软件包以及相关性可能会花费一些时间。

 

安装VNC服务器

TigerVNC是积极维护的高性能开源VNC服务器,在默认的CentOS存储库中可以找到它,进行安装:

sudo dnf install tigervnc-server

安装VNC服务器后,运行vncserver命令以创建初始配置并设置密码,运行以下命令时请勿使用sudo:

vncserver

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

在CentOS 8上安装和配置VNC,然后通过SSH隧道安全地连接到VNC服务器

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

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

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

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

vncserver -kill :1

输出:

Killing Xvnc process ID 19681

参考:在Linux下使用Kill命令的技术点:包括重新加载进程和终止进程

 

配置VNC服务器

现在,在远程CentOS计算机上都安装了Gnome和TigerVNC,下一步是配置TigerVNC以使用Gnome,创建新桌面时,VNC服务器使用~/.vnc/xstartup文件启动应用程序,打开文件:

vim ~/.vnc/xstartup

并如下编辑它:

#!/bin/sh

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

vncconfig -iconic &

dbus-launch --exit-with-session gnome-session &

保存并关闭文件,每当您启动或重新启动TigerVNC服务器时,以上脚本都会自动执行。

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

这是一个例子:

# securitytypes=vncauth,tlsvnc

# desktop=sandbox

geometry=1920x1080

# localhost

# alwaysshared

 

创建一个Systemd单位文件

单位文件使您可以轻松启动、停止和重新启动服务,通常,存储用户单元文件的最佳位置是~/.config/systemd/user,创建目录:

mkdir -p ~/.config/systemd/user

复制默认的vncserver单元文件:

cp /usr/lib/systemd/user/vncserver@.service ~/.config/systemd/user/

通知systemd一个新的用户单元文件存在:

systemctl --user daemon-reload

启动VNC服务并在启动时启用它:

systemctl --user enable vncserver@:1.service --now

@:后的数字1定义VNC服务将在其上侦听的显示端口,我们使用1,这意味着VNC服务器将在上一节中讨论的5901端口上进行侦听。

启用延迟,以便用户服务在启动时启动并在用户未登录时保持运行:

loginctl enable-linger

验证服务是否成功启动:

systemctl --user status vncserver@:1.service

在CentOS 8上安装和配置VNC,然后通过SSH隧道安全地连接到VNC服务器

 

连接到VNC服务器

VNC不是加密协议,可能会受到数据包嗅探的影响,推荐的方法是创建SSH隧道,以安全地将流量从5901端口上的本地计算机转发到同一端口上的远程服务器,参考安装与使用Mole在Linux CLI上创建SSH隧道的方法

1、在Linux和macOS上设置SSH隧道

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

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

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

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

2、在Windows上设置SSH隧道

Windows用户可以使用PuTTY设置SSH隧道。

打开Putty,然后在主机名或IP地址字段中输入服务器的IP地址:

在CentOS 8上安装和配置VNC,然后通过SSH隧道安全地连接到VNC服务器

在连接菜单下,展开SSH,然后选择隧道,在源端口字段中输入VNC服务器端口(5901),在目标字段中输入server_ip_address:5901,然后单击添加按钮,如下图所示:

在CentOS 8上安装和配置VNC,然后通过SSH隧道安全地连接到VNC服务器

返回会话页面以保存设置,这样您无需每次都输入它们,要登录到远程服务器,请选择保存的会话,然后单击打开按钮。

3、使用Vncviewer连接

要连接到远程服务器,请打开VNC查看器,然后输入localhost:5901。

您可以将任何VNC查看器(例如TigerVNC、TightVNC、RealVNC、UltraVNC Vinagre和VNC查看器)用于Google Chrome。

我们正在使用TigerVNC:

在CentOS 8上安装和配置VNC,然后通过SSH隧道安全地连接到VNC服务器

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

在CentOS 8上安装和配置VNC,然后通过SSH隧道安全地连接到VNC服务器

就是这样!现在,您可以使用键盘和鼠标从本地计算机开始在远程桌面上工作了。

 

相关主题

在CentOS系统中安装与运行noVNC

精选文章
热门文章