myfreax
vnc

如何在CentOS 8安装VNC

VNC虚拟网络计算,是一个图形桌面共享系统,可让您使用键盘和鼠标远程控制另一台计算机

6 min read
By myfreax
如何在CentOS 8安装VNC
如何在CentOS 8安装VNC

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

本教程将说明如何在CentOS 8安装VNC服务器的步骤。我们还将向您展示如何通过SSH隧道安全连接到VNC服务器。

要继续本教程,您需要使用以root或者具有sudo权限的用户登录CentOS 8。

通常,Linux服务器都未安装桌面环境。如果您要使用vnc连接没有GUI的计算机,第一步就是是安装桌面环境。

否则,请跳过此步骤。运行dnf命令在远程计算机安装Gnome,CentOS 8中的默认桌面环境。

TigerVNC是一个持续维护的高性能开源VNC服务器。它在默认的CentOS仓库中可用。我们可以使用dnf命令要安装它。

根据您的系统网络情况,下载和安装Gnome软件包可能会花费一些时间。

sudo dnf groupinstall "Server with GUI"
sudo dnf install tigervnc-server

配置VNC服务器

与以前版本的CentOS不同,CentOS 8中的TigerVNC是使用systemd守护程序配置的。

在此示例中,我们将向您展示如何为一个或多个VNC用户配置TigerVNC。使用vncpasswd命令设置密码。

在没有参数运行vncpasswd命令时,vncpasswd命令将为当前用户设置VNC密码。

系统将提示您输入并确认密码以及是否设置仅作为查看的密码。Would you like to enter a view-only password (y/n)?。

请键入n不只是查看,如果您选择设置仅查看密码,则用户将无法使用鼠标和键盘与VNC服务器进行交互。

第一次运行vncpasswd命令时,它将创建密码文件并将其存储在用户的~/.vnc目录中。

vncpasswd
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文件中读取用户配置设置。使用你喜欢的文本编辑器编辑文件~/.vnc/config。在本教程我们使用vim编辑文件

vim ~/.vnc/config
session=gnome
geometry=1920x1200
alwaysshared
~/.vnc/config

session选项指定要启动的桌面环境,geometry选项指定VNC桌面分辨率的大小。完成后保存并关闭文件

TigerVNC的/etc/tigervnc/vncserver.users文件,可让您将用户映射到指定的端口。可在此文件中配置用户与端口的映射。

在下面的示例中,我们将端口:1映射到用户myfreax。你可以使用相同的格式添加更多用户。

sudo vim /etc/tigervnc/vncserver.users
# TigerVNC User assignment
#
# This file assigns users to specific VNC display numbers.
# The syntax is <display>=<username>. E.g.:
#
# :2=andrew
# :3=lisa
:1=myfreax

:1,这是vnc服务器的显示端口好。vnc服务器将会监听TCP端口5901,即5900 + 1。

如果运行vncserver命令创建第二个实例,它将在使用下一个显示端口即:2,这意味着VNC服务器将会监听端口5902,即5900 + 2。

配置防火墙

如果你CentOS 8正在运行防火墙,并且使用firewalld作为防火墙管理工具。则需要打开端口5901的连接。

如果你显示端口是:2。则需要打开端口5902的连接,以此类推,请随时添加你需要允许的端口。

运行命令sudo firewall-cmd --add-port=5901/tcp --permanent

sudo firewall-cmd --add-port=5901/tcp --permanent
sudo firewall-cmd reload

启动Tigervnc服务器

完成配置后,最后一步是启动VNC服务器。要为映射到端口:1的用户启动并启用VNC服务,运行systemctl命令。

如上一节所述,VNC服务器将监听端口5901。要验证服务是否已成功启动,可以运行命令sudo systemctl status vncserver@:1

要为其他用户启用VNC,只需将1替换为映射到该用户的端口即可。

sudo systemctl enable vncserver@:1 --now
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服务器

要连接到远程服务器,请打开Vncviewer,然后在VNC Server字段输入server_ip:5901

您现在可以使用键盘和鼠标从本地计算机开始在远程桌面上工作。如果你的Debian 9未安装tigervnc-viewer。

你可以简单运行命令sudo yum install tigervnc安装它。如果你的客户端计算机运行的是Windows系统,请点击此处下载tigervnc客户端

sudo yum install tigervnc

Linux macOS SSH隧道

VNC不是加密协议,可能会受到数据包嗅探。推荐的方法是创建SSH tunnel隧道,使用加密的数据连接到远程服务器。

如果您在计算机正在运行Linux,macOS或其他基于Unix的操作系统,则可以运行ssh命令轻松创建SSH隧道。

系统将提示您输入用户密码。不要忘记用您的用户名和服务器的IP地址替换usernameserver_ip_address

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

Windows SSH隧道

Windows用户可以使用PuTTY 。设置SSH tunnel隧道。打开Putty,然后在Host name or IP address字段中输入您的服务器IP地址。

Connection菜单下,展开SSH并选择Tunnels。在Source Port字段中输入VNC服务器端口5901

Destination字段中输入server_ip_address:5901,然后单击Add按钮。

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

结论

我们已向您展示了如何在CentOS 8计算机设置VNC服务器并连接到远程。如有任何疑问,请随时发表评论。

Related Articles