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

简介:

image

本文最先发布在:https://www.itcoder.tech/posts/how-to-install-and-configure-vnc-on-centos-8/

Virtual Network Computing (VNC) 是一个图形桌面共享系统,它允许你使用本地的键盘和鼠标来远程控制另外一台计算机。

本文涉及如何在 CentOS 8 上安装和配置 VNC 的步骤。我们将会向你展示,如何通过 SSH 隧道技术来安全连接到 VNC 服务器。

一、前提条件。

想要继续这篇指南,你需要以拥有 sudo 权限的用户身份登录远程 CentOS 机器上。

二、安装桌面环境

通常,服务器没有安装任何的桌面环境。如果你拥有的一台机器没有 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 实例进行交互。

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)。如果你创建了第二个实例,他将会运行到下一个闲置的端口上,例如::2,这意味着,服务器运行在端口号5902(5900+2)上。

在和 VNC 服务器上工作的时候,最重要的一点就是,:X就是显示端口号,即:5900+X

在继续下面的步骤之前,第一步通过使用vncserver命令加上-kill选项,停止 VNC 实例。在我们的例子中,服务器运行在端口号 5901(:1),因此,停止它,运行:

vncserver -kill :1

输出如下:

Killing Xvnc process ID 19681

四、配置 VNC 服务器

现在 Gnome 和 TigerVNC 都被安装在远程 CentOS 机器上,下一步就是配置 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 Unit 文件

Unit files 允许你很容易地启动,停止,和重启服务。通常情况下,存储用户 unit 文件的最好位置是~/.config/systemd/user。创建文件夹:

mkdir -p ~/.config/systemd/user

拷贝默认的 vncserver unit 文件:

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

通知 systemd,一个新的用户 unit 文件已经存在:

systemctl --user daemon-reload

启动 VNC 服务,并且启用开机启动:

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

@:后面的数字1定义了 VNC 服务将会监听的显示端口,我们将会使用1,这意味着 VNC 服务器将会监听我们在前面讨论过的5901端口。

启用 lingering 以便在用户没有登录时,用户服务可以保持开机启动并且保持运行状态。

loginctl enable-linger

验证服务是否成功启动,运行:

systemctl --user status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC)
   Loaded: loaded (/home/linuxize/.config/systemd/user/vncserver@.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-01-30 22:14:08 UTC; 2s ago
  Process: 20813 ExecStart=/usr/bin/vncserver :1 (code=exited, status=0/SUCCESS)
  Process: 20807 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
   CGroup: /user.slice/user-1000.slice/user@1000.service/vncserver.slice/vncserver@:1.service
  ...

六、连接到 VNC 服务器

VNC 不是一个加密协议,并且可以被包嗅探工具定位分析。推荐的访问方式,就是从你本地机器的5901端口到远程服务器的同一个端口之间 创建一个 SSH 隧道。

6.1 在 Linux 和 macOS 系统上设置 SSH 隧道

如果 你在你的机器上运行着 Linux,macOS 或者其他类Unix 操作系统,你可以很容易地使用下面的 ssh 命令来创建一个隧道:

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

你将会被提示输入用户密码。

不要忘记将usernameserver_ip_address替换成你自己的用户名和远程服务器 IP 地址。

6.2 在 Windows 上设置 SSH 隧道

Windows 上使用 Putty 来设置 SSH 隧道。

打开 Putty 并且在Host name or IP address文本域处输入你的服务器 IP 地址。

image

Connection菜单下,展开SSH并且选择Tunnels。在文本域Source Port处输入 VNC 服务器端口(5901),在文本域Destination处输入server_ip_address:5901,并且像下图一样点击Add按钮:

image

返回Session页面保存设置,以便你不用每次都需要输入它们。想要登录远程服务器,选择保存的会话,并且点击Open按钮.

6.3 使用 Vncviewer 进行连接

想要连接你的远程服务器,打开你的 VNC 查看器并且输入localhost:5901

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

我们使用 TigerVNC:

image

出现提示的时候,输入密码,你将会看到默认的 Gnome 桌面。它应该像下面这样:

image

就这些!现在你已经可以从你的本地机器上使用你的键盘和鼠标,在你的远程桌面上进行工作。

七、 总结

我们已经向你展示,如何在一个远程的 CentOS 8 机器上设置一个 VNC 服务器并且连接上去。

想要为多用户创建显示器,重复同样的步骤。创建初始化配置,使用vncserver命令设置密码,并且使用不同的端口创建一个新服务。






如果你有任何疑问,请通过以下方式联系我们:

微信: sn0wdr1am86

itcoder_weixin_jpeg

微信群:
加上面的微信,备注微信群

QQ: 3217680847

itcoder_qq_jpeg

QQ 群: 82695646
itcoder_qqqun_jpeg

相关文章
|
2天前
|
关系型数据库 MySQL Linux
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
|
2天前
|
Linux
CentOS 7 配置yum阿里源 (三步即可)
CentOS 7 配置yum阿里源 (三步即可)
|
7天前
|
运维 安全 Linux
如何在CentOS7一键安装宝塔面板并实现固定地址访问内网宝塔进行管理
如何在CentOS7一键安装宝塔面板并实现固定地址访问内网宝塔进行管理
|
7天前
|
Linux 测试技术 数据安全/隐私保护
CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台
CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台
|
8天前
|
Linux Docker 容器
centos7安装docker图文详解
该文档提供了在CentOS上安装Docker的步骤:检查系统内核版本(需大于3.10),更新yum,卸载旧版Docker,安装yum-utils和依赖包,设置Docker仓库,列出并选择Docker版本,安装Docker,最后启动并设置Docker开机启动,通过`docker version`验证安装是否成功。
|
8天前
|
关系型数据库 MySQL 应用服务中间件
centos7在线安装jdk1.8+tomcat+mysql8+nginx+docker
现在,你已经成功在CentOS 7上安装了JDK 1.8、Tomcat、MySQL 8、Nginx和Docker。你可以根据需要配置和使用这些服务。请注意,安装和配置这些服务的详细设置取决于你的具体需求。
28 2
|
10天前
|
NoSQL Linux 网络安全
【专栏】如何在 RHEL 8 或者 CentOS 8 上安装 MongoDB?
【4月更文挑战第28天】本文档介绍了如何在RHEL或CentOS 8上安装MongoDB,包括环境准备(系统更新、依赖安装、硬件需求和sudo用户)、导入MongoDB GPG公钥、创建Yum仓库、安装MongoDB社区版,以及后续的基本配置和验证(启动服务、防火墙设置和连接验证)。通过这些步骤,用户可以顺利安装并运行MongoDB,以处理非结构化数据和扩展技术栈。
|
10天前
|
安全 Linux 网络安全
【专栏】如何进行 CentOS 8 最小安装
【4月更文挑战第28天】本文介绍了如何进行CentOS 8的最小安装,包括准备工作(确认硬件兼容性、下载ISO镜像、制作启动盘及备份数据)和安装步骤(选择语言、最小环境、网络设置、安全策略、分区、用户设置及开始安装)。安装后需进行基础配置,如系统更新、SELinux设置、防火墙配置、安装必要软件包和服务优化。最小安装提供了一个精简高效的环境,便于用户根据需求自定义和管理服务器。
|
11天前
|
存储 Linux 持续交付
【docker】CentOS 7上安装Docker的详细过程
【docker】CentOS 7上安装Docker的详细过程
|
13天前
|
安全 关系型数据库 Linux
centos7_安装mysql8(局域网访问navicat连接)
centos7_安装mysql8(局域网访问navicat连接)
18 1

热门文章

最新文章