跳过正文

在RHEL系列操作系统中安装VNC Server

·149 字·1 分钟
作者
王浩宇
记录服务器、虚拟化、网络和日常折腾。

在日常运维工作中,在一些特定情况下需要通过GUI图形化界面管理服务器,但是使用控制台又不太方便,VNC Server 作为一款常用的远程桌面工具,可以帮我们轻松实现图形化远程连接,本文将结合实操命令,一步步教大家完成安装和配置,全程复制命令即可上手,新手也能轻松搞定!
本次操作基于Rocky Linux9.x 系统,使用 root 用户登录操作,确保服务器能够正常联网或者使用本地软件仓库(用于安装所需软件包);提前准备好 VNC 客户端(如 RealVNC、TightVNC、VNC Viewer,用于连接测试)

前置条件
#

如果你的操作系统是最小化安装的,默认没有图形桌面环境,而 VNC 远程连接需要依赖图形界面才能正常显示,因此我们首先需要安装 GNOME 桌面环境。
dnf groupinstall -y "GNOME Desktop" "Graphical Administration Tools"

安装完成后,设置系统默认启动为图形界面(避免重启后仍进入命令行界面)

ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target

至此,图形桌面环境安装完成

安装 VNC Server
#

推荐使用 tigervnc-server 作为 VNC 服务端,兼容性好、操作简单

dnf install -y tigervnc-server

配置VNC Server
#

如果你的操作系统中启用了 firewalld | iptables | nftables 防火墙,VNC 连接默认使用 5901 端口(对应桌面编号 :1 如果配置多个桌面,端口依次为 5902、5903 等),因此需要开放 5901 端口,否则客户端无法连接到服务器,如果是云服务器也需要在对应的安全组中放行。 以firewalld为例:firewall-cmd --add-port=5901/tcp --permanent && firewall-cmd --reload

配置 VNC 登录用户及密码

VNC 连接需要指定登录用户,并设置对应密码,这里以 root 用户为例做配置(若使用普通用户,操作逻辑一致,只需切换到对应普通用户即可)

执行以下命令设置vnc连接密码

vncpasswd

输入两次密码,后续会提示是否设置“仅查看”密码(仅查看权限无法操作服务器,仅能查看界面),一般直接回车跳过就行

配置 VNC 服务
#

首先复制系统默认的 VNC 服务模板文件,生成我们自定义的服务文件(桌面编号为 :1,对应端口 5901),所以

cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@\:1.service
vim /etc/systemd/system/vncserver@\:1.service

/etc/systemd/system/vncserver@\:1.service

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
WorkingDirectory=/root
User=root
Group=root

PIDFile=/root/.vnc/%H%i.pid

ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver -autokill %i
ExecStop=/usr/bin/vncserver -kill %i

Restart=on-success
RestartSec=15

[Install]
WantedBy=multi-user.target

找到 [Service] 段中的 WorkingDirectory、User、Group 三行,将其中的“vnc用户名”替换为实际的登录用户(本文以 root 用户为例,替换后如下);同时确保 PIDFile、ExecStart 等参数配置没问题

服务文件配置完成后,需要重新加载 systemd 配置,使服务文件生效,然后启用 VNC服务就可以了 systemctl daemon-reload && systemctl enable --now vncserver@\:1.service