首页 5G技术

Rocky Linux 8 远程桌面:VNC + KVM 虚拟机双管齐下完全指南

分类:5G技术
字数: (5996)
阅读: (1400)
内容摘要:Rocky Linux 8 远程桌面:VNC + KVM 虚拟机双管齐下完全指南,

在使用 Rocky Linux 8 作为服务器时,远程管理是绕不开的需求。尤其是涉及到 KVM 虚拟化时,我们需要同时管理宿主机和虚拟机。通常,我们会选择 VNC 作为远程桌面解决方案。但配置不当,会遇到连接不稳定、性能差等问题。本文将深入探讨 Rocky Linux 8 宿主机 VNC 和 KVM 虚拟机 VNC 的配置,助你打造高效稳定的远程管理环境。

宿主机 VNC 配置

安装 TigerVNC server

首先,安装 TigerVNC server,它是 VNC 协议的一个开源实现,性能较好。

dnf install tigervnc-server tigervnc-server-module -y

配置 VNC 密码

设置 VNC 连接密码,这是保证安全性的第一步。

vncpasswd

创建 VNC 配置文件

为每个用户创建一个 VNC 配置文件。例如,为用户 admin 创建 /home/admin/.vnc/xstartup 文件。注意赋予执行权限。

cat > /home/admin/.vnc/xstartup << EOF
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

xsetroot -solid grey
vncconfig -iconic &

# 使用 Gnome 桌面环境
export XKL_XMODMAP_DISABLE=1
gnome-session &
EOF

chmod +x /home/admin/.vnc/xstartup
chown admin:admin /home/admin/.vnc/xstartup

这里使用了 gnome-session,如果想使用其他的桌面环境,例如 Xfce,可以安装 xfce4 并将 gnome-session & 替换为 startxfce4 &

Rocky Linux 8 远程桌面:VNC + KVM 虚拟机双管齐下完全指南

配置 systemd 服务

创建 systemd 服务文件,方便管理 VNC 服务。创建一个名为 /etc/systemd/system/vncserver@:1.service 的文件,内容如下:

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

[Service]
Type=forking
User=admin  # 替换为你的用户名
Group=admin # 替换为你的用户组

ExecStartPre=-/usr/bin/vncserver -kill :1 > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -geometry 1920x1080 :1  # 分辨率可自定义
ExecStop=/usr/bin/vncserver -kill :1 > /dev/null 2>&1

[Install]
WantedBy=multi-user.target

注意替换 UserGroup 为你的用户名和用户组。:1 表示 VNC 服务的端口为 5901。

启动 VNC 服务

启用并启动 VNC 服务。

systemctl enable vncserver@:1.service
systemctl start vncserver@:1.service

防火墙配置

确保防火墙允许 VNC 端口通过。默认情况下,VNC 使用 5900 + display number 的端口。例如,display number 为 1,则端口为 5901。

Rocky Linux 8 远程桌面:VNC + KVM 虚拟机双管齐下完全指南
firewall-cmd --permanent --add-port=5901/tcp
firewall-cmd --reload

避坑经验:SELinux

如果遇到 VNC 无法正常启动,或者桌面环境无法加载,可能是 SELinux 阻止了相关操作。可以尝试临时禁用 SELinux 排查问题,或者配置 SELinux 策略允许 VNC 访问。

setenforce 0 # 临时禁用 SELinux
# 或者,配置 SELinux 策略

KVM 虚拟机 VNC 配置

确认虚拟机已安装图形界面

确保 KVM 虚拟机已经安装了图形界面环境,例如 Gnome 或 Xfce。如果没有,需要先安装。

配置 KVM 虚拟机 VNC 连接

使用 virsh edit vm_name 命令编辑虚拟机的 XML 配置文件。找到 <graphics> 标签,确保 VNC 已经启用。

<graphics type='vnc' port='5902' autoport='no' listen='0.0.0.0'>
  <listen type='address' address='0.0.0.0'/>
</graphics>

port 属性指定了 VNC 连接的端口。listen 属性指定了监听地址。设置为 0.0.0.0 表示监听所有地址,允许从任何 IP 地址连接。autoport='no' 表示不自动分配端口,使用指定的端口。将上述配置加入到虚拟机配置文件后,重启虚拟机。

Rocky Linux 8 远程桌面:VNC + KVM 虚拟机双管齐下完全指南

防火墙配置

同样需要确保防火墙允许虚拟机 VNC 端口通过。

firewall-cmd --permanent --add-port=5902/tcp
firewall-cmd --reload

使用 SSH 隧道连接

为了安全起见,建议使用 SSH 隧道连接 KVM 虚拟机 VNC。这样可以加密 VNC 连接,防止数据泄露。

ssh -L 5902:localhost:5902 user@server_ip

然后在本地使用 VNC 客户端连接 localhost:5902

远程连接与管理

配置完成后,可以使用 VNC 客户端连接到宿主机和 KVM 虚拟机。例如,使用 TigerVNC viewer 或 Remmina。

Rocky Linux 8 远程桌面:VNC + KVM 虚拟机双管齐下完全指南

连接宿主机 VNC:server_ip:5901 连接 KVM 虚拟机 VNC:server_ip:5902 (或者通过 SSH 隧道连接 localhost:5902

结合宝塔面板等工具,可以更方便地进行服务器和虚拟机的管理。宝塔面板提供了图形化的界面,可以轻松管理网站、数据库、SSL 证书等。

总结

本文详细介绍了 Rocky Linux 8 宿主机 VNC 和 KVM 虚拟机 VNC 的配置过程,并分享了一些避坑经验。通过合理的配置和安全措施,可以实现高效稳定的远程管理。

Rocky Linux 8 远程桌面:VNC + KVM 虚拟机双管齐下完全指南

转载请注明出处: 加班到秃头

本文的链接地址: http://m.acea1.store/blog/835537.SHTML

本文最后 发布于2026-03-31 23:44:08,已经过了26天没有更新,若内容或图片 失效,请留言反馈

()
您可能对以下文章感兴趣
评论
  • 太阳当空照 6 天前
    楼主,请问如果 KVM 虚拟机是桥接模式,是不是可以直接通过虚拟机 IP 地址连接 VNC?
  • 蛋炒饭 4 天前
    写的真不错,正好解决了我的 Rocky Linux 远程管理问题,感谢!