虚拟网络计算(VNC)是一种图形桌面共享系统,允许您使用键盘和鼠标远程控制另一台计算机。
本文介绍了在 CentOS 8 上安装和配置 VNC 服务器的步骤。我们还将向您展示如何通过 SSH 隧道安全地连接到 VNC 服务器。
先决条件#
要遵循本指南,您需要以具有 sudo 权限的用户 在您的远程 CentOS 机器上。
安装桌面环境#
通常,服务器没有安装桌面环境。如果您要连接的计算机没有 GUI,则第一步是安装它。否则,请跳过此步骤。
运行以下命令在远程计算机上安装 CentOS 8 中的默认桌面环境 Gnome:
sudo dnf groupinstall "Server with GUI"
根据您的系统,下载和安装 Gnome 软件包和依赖项可能需要一些时间。
安装VNC服务器#
TigerVNC 是一个积极维护的高性能开源 VNC 服务器。它可以在默认的 CentOS 存储库中找到。要安装它,请键入:
sudo dnf install tigervnc-server
配置VNC服务器#
在 CentOS 8 中,TigerVNC 使用 systemd 守护进程进行配置。
在此示例中,我们将向您展示如何为一个或多个 VNC 用户配置 TigerVNC。
Use the vncpasswd
命令设置密码。以将访问 VNC 服务器的用户身份运行命令,请勿使用sudo
:
vncpasswd
系统将提示您输入并确认密码以及是否将其设置为仅供查看的密码。如果您选择设置仅查看密码,用户将无法使用鼠标和键盘与 VNC 实例交互。
第一次vncpasswd
命令运行后,它将创建密码文件并将其存储在用户的~/.vnc
目录。
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
如果您要添加第二个用户,切换到它 并设置密码vncpasswd
.
下一步是将 TigerVNC 配置为使用 Gnome。 VNC 从中读取用户配置设置~/.vnc/config
文件。打开文件并添加以下内容:
vim ~/.vnc/config
session = gnome
geometry = 1920x1200
localhost
alwaysshared
The session
选项指定您要启动的会话,以及geometry
选项指定 VNC 桌面的大小。
保存并关闭文件 。如果您要添加多个用户,请重复相同的步骤。
TigerVNC 附带一个文件,允许您将用户映射到特定端口。映射配置在/etc/tigervnc/vncserver.users
file:
sudo vim /etc/tigervnc/vncserver.users
该文件使用<display_port>=<username>
句法。在下面的示例中,我们正在映射显示端口:1
给用户 linuxize。使用相同的格式添加更多用户。
# TigerVNC User assignment
#
# This file assigns users to specific VNC display numbers.
# The syntax is <display>=<username>. E.g.:
#
# :2=andrew
# :3=lisa
:1 = linuxize
:1
是 VNC 服务器将运行的显示端口号。在我们的例子中,服务器在 TCP 端口上运行5901
(5900+1)。例如,如果您映射另一个用户以显示端口:2
,服务器也会监听端口5902
(5900+2)。
需要了解的重要一点是,在使用 VNC 服务器时,:X
是一个显示端口,指的是5900+X
.
启动 Tigervnc 服务器#
完成配置后,最后一步是启动 VNC 服务器。
为映射到显示端口的用户启动并启用 VNC 服务:1
, enter:
sudo systemctl enable vncserver@:1 --now
VNC 服务器将侦听端口5901
,正如我们在上一节中讨论的那样。
您可以通过以下方式验证服务是否已成功启动:
sudo systemctl status vncserver@:1
● vncserver@:1.service - Remote desktop service (VNC)
Loaded: loaded (/usr/lib/systemd/system/vncserver@.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2020-12-17 21:49:41 UTC; 8s ago
...
要为其他用户启用 VNC,只需替换1
将显示端口映射到用户。
连接到 VNC 服务器#
VNC 不是加密协议,可能会受到数据包嗅探的影响。推荐的方法是创建一个SSH隧道 在端口上安全地转发来自本地计算机的流量5901
到同一端口上的远程服务器。
在 Linux 和 macOS 上设置 SSH 隧道#
如果您的计算机上运行 Linux、macOS 或任何其他基于 Unix 的操作系统,则可以使用以下命令轻松创建隧道ssh 命令:
ssh -L 5901:127.0.0.1:5901 -N -f -l username remote_server_ip
系统将提示您输入用户密码。
不要忘记更换username
and server_ip_address
使用您的用户名和服务器的 IP 地址。
在 Windows 上设置 SSH 隧道#
Windows 用户可以使用以下命令设置 SSH 隧道PuTTY
.
打开 Putty 并在地址栏中输入您的服务器 IP 地址Host name or IP address
field.
在下面Connection
菜单,展开SSH
并选择Tunnels
。输入 VNC 服务器端口(5901
) 在里面Source Port
字段,输入server_ip_address:5901
in the Destination
字段并单击Add
按钮如下图所示:
返回到Session
页面保存设置,这样您就不需要每次都输入它们。要登录远程服务器,请选择保存的会话并单击Open
button.
使用 Vncviewer 连接#
要连接到远程服务器,请打开 VNC 查看器,然后输入localhost:5901
.
您可以使用任何 VNC 查看器,例如 TigerVNC、TightVNC、RealVNC、UltraVNC、Vinagre 和 VNC Viewer谷歌浏览器
.
我们正在使用 TigerVNC:
出现提示时输入密码,您应该会看到默认的 Gnome 桌面。它应该看起来像这样:
就是这样!现在,您可以使用键盘和鼠标从本地计算机开始在远程桌面上工作。
结论#
我们向您展示了如何设置 VNC 服务器并连接到远程 CentOS 8 计算机。
如果您有任何疑问,请随时发表评论。