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
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 =. 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地址替换username
和server_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服务器并连接到远程。如有任何疑问,请随时发表评论。