Rocky Linux 8 远程管理配置指南(宿主机 VNC + KVM 虚拟机 VNC) - 指南

上篇:宿主机 TigerVNC 远程桌面配置(管理宿主机)

一、安装 TigerVNC 服务

  1. 检查可用包并安装

    yum list available tigervnc-server
    yum install -y tigervnc-server tigervnc-server-minimal
  2. 验证安装结果

    rpm -qa | grep tigervnc-server

二、解决 GPG 密钥安装错误

若安装时提示 “GPG 密钥验证失败”,执行:

# 手动导入 Rocky Linux 官方 GPG 密钥
rpm --import https://dl.rockylinux.org/pub/rocky/RPM-GPG-KEY-Rocky-8
# 若密钥导入失败,临时跳过 GPG 检查(应急用,不推荐长期使用)
yum install -y --nogpgcheck tigervnc-server

三、配置宿主机 VNC 服务

  1. 为宿主机用户设置 VNC 密码(以 root 为例)

    vncpasswd
    # 输入密码(无明文显示),确认密码;可选“仅查看密码”(输入 n 跳过)
  2. 创建 VNC 服务配置文件

    cat > /etc/systemd/system/vncserver@:0.service << EOF
    [Unit]
    Description=宿主机 VNC 远程桌面服务
    After=syslog.target network.target
    [Service]
    Type=forking
    User=root  # 若用普通用户,替换为实际用户名(如 user1)
    PIDFile=/root/.vnc/%H%i.pid  # 普通用户路径:/home/用户名/.vnc/%H%i.pid
    ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
    ExecStart=/usr/bin/vncserver %i -geometry 1280x720  # 分辨率可按需调整
    ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
    [Install]
    WantedBy=multi-user.target
    EOF
  3. 加载配置并启动服务

    systemctl daemon-reload
    systemctl start vncserver@:0.service  # :0 对应端口 5900
    systemctl enable vncserver@:0.service  # 开机自启
  4. 验证宿主机 VNC 服务状态

    systemctl status vncserver@:0.service -l
    ss -tuln | grep 5900  # 确认 5900 端口监听

四、宿主机防火墙配置

# 开放宿主机 VNC 端口(5900)
firewall-cmd --add-port=5900/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports  # 验证端口已开放

下篇:KVM 虚拟机创建与 VNC 远程配置(管理虚拟机)

若需在宿主机上创建 KVM 虚拟机,并通过 VNC 连接虚拟机(而非宿主机),则需要以下步骤:

一、安装并启动 KVM 相关服务

  1. 安装 KVM 虚拟化组件

    yum install -y qemu-kvm libvirt virt-install bridge-utils
  2. 启动并设置 libvirtd 服务开机自启(你提到的关键步骤)

    systemctl start libvirtd  # 启动 KVM 管理服务
    systemctl enable libvirtd  # 开机自启
    systemctl status libvirtd  # 验证服务状态(需显示 active (running))

二、创建 KVM 虚拟机(带 VNC 远程功能)

使用 virt-install 命令创建虚拟机,并指定 VNC 远程参数(你提供的命令优化后):

virt-install \
--virt-type kvm \                  # 虚拟化类型为 KVM
--os-type=linux \                  # 操作系统类型
--os-variant rhel7 \               # 系统版本(如 CentOS 7 对应 rhel7)
--name centos7 \                   # 虚拟机名称(自定义)
--memory 1024 \                    # 虚拟机内存(1024MB,按需调整)
--vcpus 1 \                        # 虚拟机 CPU 核心数(按需调整)
--disk path=/opt/centos2.raw,format=raw,size=10 \  # 磁盘路径、格式、大小(10GB)
--cdrom /opt/CentOS-7-x86_64-Minimal-2009.iso \    # 镜像文件路径(需确保路径正确)
--network=default \                # 网络模式(默认 NAT,也可配置桥接)
--graphics vnc,listen=0.0.0.0 \    # 启用 VNC 远程,监听所有网卡(方便外部连接)
--noautoconsole \                  # 不自动打开虚拟机控制台

三、查看虚拟机 VNC 端口(关键:确定虚拟机的 VNC 端口)

KVM 会为每个虚拟机分配独立的 VNC 端口(默认从 5901 开始,避免与宿主机 5900 冲突):

virsh vncdisplay centos7  # 查看名为“centos7”的虚拟机 VNC 端口
  • 示例输出::1 → 对应端口 5901;若输出 :2 → 对应端口 5902,以此类推。

四、虚拟机 VNC 防火墙配置

# 开放虚拟机 VNC 端口(以 5901 为例,需与实际端口匹配)
firewall-cmd --add-port=5901/tcp --permanent
firewall-cmd --reload

五、VNC 客户端连接虚拟机

  1. 打开 VNC Viewer(与连接宿主机相同的客户端);
  2. 输入连接地址:宿主机IP:虚拟机VNC端口(如 192.168.32.128:5901);
  3. 直接进入虚拟机安装界面(首次启动需安装系统),后续可远程管理虚拟机。

关键区别与适用场景

配置对象核心服务VNC 端口用途
宿主机vncserver5900(:0)远程管理宿主机桌面
KVM 虚拟机libvirtd5901+(:1+)远程安装 / 管理虚拟机

常见问题排查

  1. 虚拟机 VNC 连接超时

    • 确认 virsh vncdisplay 虚拟机名 得到的端口正确;
    • 检查宿主机防火墙是否开放了该端口;
    • 验证宿主机 IP 可 ping 通(客户端执行 ping 宿主机IP)。
  2. virt-install 提示 “镜像文件不存在”

    • 检查 --cdrom 后的镜像路径是否正确(如 /opt/CentOS-7.iso 是否存在);
    • 若路径错误,修改为实际镜像路径(可通过 ls /opt/ 查看文件)。
  3. 宿主机 VNC 启动失败(提示 “X Server 已运行”)

    # 停止宿主机图形服务(避免冲突)
    systemctl stop gdm && systemctl disable gdm
    # 清理残留锁文件
    rm -rf /tmp/.X0-lock /tmp/.X11-unix/X0
    # 重新启动宿主机 VNC
    systemctl restart vncserver@:0.service
posted @ 2025-10-04 19:03  yxysuanfa  阅读(23)  评论(0)    收藏  举报