本指南将带您了解如何在 Rocky Linux 8 上安装 VNC Server。VNC 是 Virtual Network Computing 的首字母缩写词。 它可以轻松共享系统的图形桌面,以便对系统进行远程控制。
在 Rocky Linux 8 上安装 VNC 服务器
在本指南中,我们使用 TigerVNC 在 Rocky Linux 8 上设置 VNC 服务器。 TigerVNC 在客户端 – 服务器架构中工作 vncserver
是提供对远程桌面的访问的实用程序和 vncviewer
是用于连接到 VNC 服务器的客户端。
在 Rocky Linux 8 上安装 VNC 服务器
VNC 服务器由 tigervnc-server
默认 Rocky Linux 8 AppStream 存储库中提供的软件包。 因此,通过运行以下命令更新您的系统并安装 VNC 服务器;
sudo dnf update
sudo dnf install tigervnc-server
在 Rocky Linux 8 上配置 VNC 服务器
创建 VNC 连接用户帐户
安装完成后,继续配置 VNC 服务器以定义允许访问远程桌面的用户。
笔记: 用户必须已经存在于系统中。
但是,您可以为 VNC 登录创建一个用户帐户。
useradd janedoe
passwd janedoe
在 Rocky Linux 8 上禁用 Wayland 并启用 Xorg 显示服务器
默认情况下,Rocky Linux 8 使用 Wayland 是默认的 X 服务器. 要使 VNC 登录正常工作,您需要强制使用登录屏幕 Xorg 服务器通过取消注释行 #WaylandEnable=false
,在 /etc/gdm/custom.conf
配置文件。
sed -i 's/#WaylandEnable/WaylandEnable/' /etc/gdm/custom.conf
重新启动系统
重新启动 Rocky Linux 8 系统以应用更改。
系统启动后,以您将用于远程 VNC 桌面登录的用户身份登录, 在这种情况下,珍妮多。
创建 VNC Systemd 服务单元文件
接下来,在您希望允许通过 VNC 服务器连接到远程桌面的每个用户的主目录下创建每个用户的 VNC systemd 单元文件。
例如,如果要配置 VNC 服务器为用户提供显示, janedoe
, 在下为该用户创建 VNC systemd 配置文件 /home/janedoe/.config/systemd/user
.
作为有问题的用户并在上面创建服务单元目录;
su - janedoe
mkdir -p ~/.config/systemd/user
创建用户 vnc 服务如下。
cat > ~/.config/systemd/user/[email protected] << 'EOL' [Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/usr/bin/vncserver %i -geometry 1912x988 ExecStop=/usr/bin/vncserver -kill %i Restart=on-success RestartSec=15 [Install] WantedBy=default.target EOL
您还可以通过添加关键字来限制仅通过本地主机(环回)接口连接到 VNC 服务器, -localhost
到 ExecStart
线。
ExecStart=/usr/bin/vncserver -localhost %i
然后在运行时,它只在本地主机上打开连接。
要创建如上所示的 systemd 服务,您也可以复制 /usr/lib/systemd/system/[email protected]
文件到上面创建的用户 systemd 服务目录。
cp /usr/lib/systemd/user/[email protected] ~/.config/systemd/user
并修改它以适合您的设置。 例如,您可以调整 屏幕尺寸几何。
重新加载 systemd 配置以实现上述更改。
systemctl --user daemon-reload
笔记: 如果你得到错误, 无法连接到总线:没有那个文件或目录,那么你需要设置你的 XDG_RUNTIME_DIR
环境变量正确(这通常在您通过 GUI 登录时自动完成)。
如果您通过 GUI 登录并仍然遇到问题,请手动设置此环境变量, XDG_RUNTIME_DIR=/run/user/$(id -u)
, 在您的 bashrc 文件中。
echo ' XDG_RUNTIME_DIR=/run/user/$(id -u)' >> ~/.bashrc source ~/.bashrc
接下来,确认您的环境变量,使用 systemctl --user show-environment
命令。
systemctl --user show-environment
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/bus DESKTOP_SESSION=gnome DISPLAY=:1 GDK_BACKEND=x11 GDMSESSION=gnome GDM_LANG=en_US.UTF-8 GNOME_DESKTOP_SESSION_ID=this-is-deprecated HISTCONTROL=ignoredups HISTSIZE=1000 HOME=/home/janedoe ... ...
创建 VNC 连接密码
接下来,为已配置 VNC 显示的用户创建 VNC 密码。 密码可以使用 vncpasswd
命令。
vncpasswd
当提示设置只读密码时,您可以选择不设置
VNC 密码存储在 $HOME/.vnc/passwd
.
设置密码后,按退出 Ctrl+d
或者只是输入 exit
.
运行 VNC 服务器
VNC 服务器可以作为普通的 systemd 服务运行。 但是,要运行它,您需要为该服务分配一个显示编号。 Systemd 会自动替换 %i
具有指定的显示编号。
通过运行以下命令,在特定显示编号上启动并启用 VNC 服务器。
笔记 以远程 VNC 登录用户身份运行此命令, 珍妮多 在这种情况下,并在显示器编号 2 上启动 VNC 服务器。
确保您使用的显示编号未被使用;
echo $DISPLAY
在当前未使用的显示编号上启动 VNC。
systemctl --user enable [email protected]:2 --now
为保证服务持久运行,即使用户退出,启用延迟;
loginctl enable-linger
检查状态;
systemctl status --user [email protected]:2
● [email protected]:2.service - Remote desktop service (VNC) Loaded: loaded (/home/janedoe/.config/systemd/user/[email protected]; enabled; vendor preset: enabled) Active: active (running) since Mon 2021-06-21 13:29:55 EDT; 31s ago Process: 4696 ExecStart=/usr/bin/vncserver :2 -geometry 1912x988 (code=exited, status=0/SUCCESS) Process: 4690 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :2 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) CGroup: /user.slice/user-1001.slice/[email protected]/vncserver.slice/[email protected]:2.service ├─4703 /usr/bin/Xvnc :2 -auth /run/user/1001/gdm/Xauthority -desktop localhost.localdomain:2 (janedoe) -fp catalogue:/etc/X11/fontpath.d -geometry 1912x988 -pn > ├─4716 /usr/libexec/gnome-session-binary ├─4725 dbus-launch --sh-syntax --exit-with-session ├─4756 /usr/bin/dbus-daemon --syslog --fork --print-pid 6 --print-address 8 --session ├─4768 /usr/bin/VBoxClient --checkhostversion ├─4770 /usr/bin/VBoxClient --checkhostversion ├─4804 /usr/libexec/at-spi-bus-launcher ...
您也可以通过运行来停止 VNC 服务器会话;
systemctl --user stop [email protected]:2
在 FirewallD 上允许 VNC 服务器访问
VNC 服务器侦听 TCP 端口 590N. 其中 N 是 VNC 显示编号。 此端口根据 VNC 显示编号递增。 例如,对于显示编号 1,VCN 侦听端口 5901。
ss -alt | grep 590
LISTEN 0 5 0.0.0.0:5902 0.0.0.0:* LISTEN 0 5 [::]:5902 [::]:*
如果 firewalld 正在运行,则需要打开每个 VNC 显示端口。 例如为显示2打开5902端口,执行;
sudo firewall-cmd --add-port=5902/tcp --permanent
sudo firewall-cmd --reload
测试 VNC 服务器连接
那么如何通过 VNC 服务器连接到 Rocky Linux 8 桌面呢? vncviewer
是常用的 VNC 客户端,用于通过 VNC 服务器连接到远程桌面。
在另一个 Rocky Linux 8 上安装 TigerVNC 包,它提供 vncviewer
公用事业。
dnf install tigervnc
如果您是从 Ubuntu/Debain 连接,请安装 VNC 查看器客户端:
sudo apt install xtightvncviewer -y
安装完成后,您可以从另一台主机测试 VNC 服务器与 Rocky Linux 8 系统的连接;
vncviewer host_IP_or_hostname:5902
在哪里 host_IP_or_hostname 是运行 VNC 服务器的 Rocky Linux 8 桌面的可解析主机名。 它可以是一个 IP 地址。
如果一切顺利,系统会提示您输入 VNC 身份验证密码。
Connected to RFB server, using protocol version 3.8 Performing standard VNC authentication Password: PASSWORD_SET_WITH_vncpasswd
身份验证成功后,您现在应该登陆 Rocky Linux 8 桌面环境。
您已经通过 VNC 服务器成功连接到远程 Rocky Linux 8 桌面,这标志着我们的指南结束,关于如何在 Rocky Linux 8 上安装 VNC 服务器。
您可以通过以下链接使用 SSH 使用更安全的方式通过 VNC 登录到远程桌面。
通过 SSH 隧道连接到 VNC 服务器
其他 Rocky Linux 8 指南
在 Rocky Linux 8 上安装 phpLDAPadmin
在 Rocky Linux 8 上为 LDAP 身份验证配置 SSSD
在 Rocky Linux 8 上安装和设置 OpenLDAP
在 Rocky Linux 8 上启用 PowerTools 存储库