云计算百科
云计算领域专业知识百科平台

麒麟高级服务器操作系统 V11 中安装与配置 TigerVNC(支持 UKUI 桌面)操作指南

适用系统:Kylin Advanced Server OS V11
目标桌面环境:UKUI(麒麟默认桌面)
VNC 服务端:TigerVNC 1.13+
解决核心问题:鼠标光标丢失、服务启动失败、桌面无法加载

[root@server01 ~]# cat /etc/os-release
NAME=“Kylin Linux Advanced Server”
VERSION=“V11 (Swan25)”
ID=“kylin”
VERSION_ID=“V11”
PRETTY_NAME=“Kylin Linux Advanced Server V11 (Swan25)”
ANSI_COLOR=“0;31”

[root@server01 ~]# uname -a
Linux server01 6.6.0-32.11.v2505.ky11.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 25 15:07:12 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

操作系统是麒麟 Linux 高级服务器版 V11 (Swan25),内核版本为 6.6.0。

UKUI 是麒麟操作系统默认的桌面环境(由优麒麟团队开发,基于 Qt,轻量且国产化适配好)。这意味着你不需要再安装 GNOME 或 XFCE——我们可以直接使用现有的 UKUI 桌面来配置 VNC!

当然可以!以下是为你量身定制的、完整准确、可直接用于生产环境的 《麒麟高级服务器系统 V11 中安装 VNC 的操作步骤》 文档,已整合你本次成功实践的所有关键细节。


麒麟高级服务器系统 V11 中安装 VNC 的操作步骤

✅ 安全 · 稳定 · 功能完整 · 光标可靠 · 开机自启
适配 UKUI 桌面环境 | 基于 TigerVNC + systemd user service


📌 适用环境

  • 操作系统:Kylin Advanced Server OS V11(基于 openEuler / RHEL 生态)
  • 桌面环境:UKUI(默认图形界面)
  • 目标用户:普通非 root 用户(如 vncuser)
  • 网络要求:服务器可访问(防火墙放行 VNC 端口)

🔧 第一步:创建专用 VNC 用户(推荐)

sudo useradd -m -s /bin/bash vncuser
sudo passwd vncuser

创建一个专用用户(例如 vncuser)出于安全考虑,不要用 root 运行 VNC。

作用说明:

  • 创建独立用户运行 VNC,避免以 root 身份启动桌面(安全最佳实践)。
  • -m 自动创建家目录 /home/vncuser,用于存放 VNC 配置。
  • 设置强密码,仅用于系统登录(VNC 认证使用单独密码)。

🔐 第二步:设置 VNC 访问密码

su – vncuser
vncpasswd

输入并确认密码(例如 MyVncPass123)。

作用说明:

  • 生成加密密码文件 ~/.vnc/passwd(权限 600)。
  • 此密码用于客户端连接时的 VncAuth 认证,与系统登录密码无关。
  • 切勿使用 root 运行此命令。

🖥️ 第三步:配置桌面启动脚本(~/.vnc/xstartup)

cat > ~/.vnc/xstartup << 'EOF'
#!/bin/sh
# 设置 UKUI 必需的环境变量
export XDG_RUNTIME_DIR=/tmp/runtime-$USER
export XDG_SESSION_ID=1
export XDG_SESSION_TYPE=x11
export XDG_CURRENT_DESKTOP=UKUI
export GNOME_DESKTOP_SESSION_ID=this-is-deprecated

# 创建 runtime 目录
mkdir -p $XDG_RUNTIME_DIR
chmod 0700 $XDG_RUNTIME_DIR

# 启动 D-Bus 会话(UKUI 依赖)
unset DBUS_SESSION_BUS_ADDRESS
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
eval $(dbus-launch –sh-syntax)
export DBUS_SESSION_BUS_ADDRESS
fi

# === 关键修复:强制设置基础光标,防止鼠标消失 ===
xsetroot -cursor_name left_ptr

# 启动 UKUI 桌面
exec /usr/bin/ukui-session
EOF

添加执行权限

chmod +x ~/.vnc/xstartup

作用详解:

部分说明
环境变量 UKUI 及其组件(如通知、面板、设置守护进程)依赖 XDG_* 环境变量识别会话类型。若缺失,可能导致部分功能异常或崩溃。
D-Bus 初始化 UKUI 使用 D-Bus 进行进程间通信。dbus-launch 启动一个私有 D-Bus 会话,确保桌面组件能正常注册和通信。
xsetroot -cursor_name left_ptr ⭐ 核心修复:在 X server 启动后立即设置一个标准 X 字体光标(箭头)。绕过 UKUI 对 GL/Mesa/主题引擎的依赖,即使 3D 渲染失败(日志中 MESA: ZINK failed),光标依然可见。这是解决“鼠标偶尔消失”问题的核心措施。
exec ukui-session 替换当前进程启动桌面,以替换方式启动 UKUI 主会话,确保 VNC 进程树正确管理生命周期。

💡 注意:不要添加 RenderCursor=false(无效参数,会导致启动失败)。


⚙️ 第四步:配置 VNC 参数(~/.vnc/config)

cat > ~/.vnc/config << 'EOF'
AlwaysShared
NeverShared
AcceptKeyEvents=true
AcceptPointerEvents=true
AcceptSetDesktopSize=true
UseIPv6=no
SecurityTypes=VncAuth
EOF

参数说明:

配置项作用
AlwaysShared / NeverShared 控制多客户端连接行为(兼容性保留)
AcceptKeyEvents / AcceptPointerEvents 允许键盘和鼠标输入
AcceptSetDesktopSize 支持客户端动态调整分辨率
UseIPv6=no 禁用 IPv6,避免监听异常
SecurityTypes=VncAuth 仅使用 VNC 密码认证(简单可靠)

🧩 第五步:安装 TigerVNC 服务端

# 返回 root 或 sudo 用户
exit

# 安装(根据包管理器选择)
sudo dnf install -y tigervnc-server
# 或
sudo yum install -y tigervnc-server

作用说明:

  • 安装 tigervnc-server 包,包含 Xvnc 虚拟 X 服务器和 vncserver 启动脚本。
    系统将自动提供 /usr/bin/Xvnc 和 /usr/bin/vncserver。
  • 麒麟 V11 默认仓库包含该软件包。

🔄 第六步:配置 systemd 用户服务(实现开机自启)

6.1 切换回 vncuser,一定要切换到vncuser用户下操作下面的命令。

su – vncuser

6.2 创建服务单元文件

mkdir -p ~/.config/systemd/user

cat > ~/.config/systemd/user/vncserver@.service << 'EOF'
[Unit]
Description=TigerVNC Server for UKUI (Display %i)
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/vncserver :%i -geometry 1920×1080 -depth 24 -localhost no
ExecStop=/usr/bin/vncserver -kill :%i
Restart=on-failure
RestartSec=5

[Install]
WantedBy=default.target
EOF

关键点解析:

  • Type=forking:⭐ 必须设置!因为 vncserver 是传统 fork 脚本,若用 simple,systemd 会在父进程退出后立即执行 ExecStop,导致服务被杀。
  • -localhost no:显式允许远程连接(覆盖可能的默认限制)。
  • %i:实例占位符(如 :1 对应 vncserver@1.service)。

🔌 第七步:启用 linger(使用户服务可在无登录时启动)

# 切换到 root 或 sudo 用户
exit

sudo loginctl enable-linger vncuser

作用说明:

  • 默认情况下,systemd 不会为未登录用户启动其 user service。
  • linger 允许 vncuser 的服务在系统启动时自动运行,无需用户手动登录。
  • ✅ 验证:loginctl show-user vncuser –property=Linger 应输出 Linger=yes。

loginctl show-user vncuser –property=Linger

Linger=yes

▶️ 第八步:启用并启动 VNC 服务

su – vncuser

先确保旧实例已停止(若存在)

vncserver -kill :1

手动启动新实例(分辨率为 1920×1080,色深 24 位)

vncserver :1 -geometry 1920×1080 -depth 24

输出示例(成功):

New 'server01:1 (vncuser)' desktop is server01:1

Creating default config /home/vncuser/.vnc/config
Starting applications specified in /home/vncuser/.vnc/xstartup
Log file is /home/vncuser/.vnc/server01:1.log

作用说明:
:1 表示显示编号,对应 TCP 端口 5900 + 1 = 5901。
-geometry 和 -depth 控制桌面分辨率和颜色质量。
日志文件 ~/.vnc/server01:1.log 可用于排查启动问题。

# 重载配置(若修改过 service 文件)
systemctl –user daemon-reload

# 启用开机自启
systemctl –user enable vncserver@1.service

# 立即启动服务
systemctl –user start vncserver@1.service

验证服务状态:

systemctl –user status vncserver@1.service
# 应显示 "active (running)"

ss -tuln | grep 5901
# 应显示 LISTEN 状态


🔥 第九步:配置防火墙(如启用)

# 放行 VNC 端口(:1 → 5901)
sudo firewall-cmd –permanent –add-port=5901/tcp
sudo firewall-cmd –reload

若使用 iptables 或未启用防火墙,可跳过。


🧪 第十步:重启测试(终极验证)

sudo reboot

重启后,直接使用 VNC 客户端连接:

客户端连接建议
推荐客户端:TigerVNC Viewer(Windows / Linux)
连接地址:10.176.27.1:5901 或 10.176.27.1::1
认证方式:输入步骤二设置的 VNC 密码
光标问题应急:按 F8 → “Refresh screen” 可强制刷新画面(包括光标)
✅ 应能成功进入完整的 UKUI 桌面,且鼠标光标始终可见!


🛠️ 日常管理命令(以 vncuser 身份)

操作命令
查看状态 systemctl –user status vncserver@1.service
重启服务 systemctl –user restart vncserver@1.service
查看日志 journalctl –user -u vncserver@1.service -f
停止服务 systemctl –user stop vncserver@1.service

💡 若日志提示权限不足,可加入 adm 组:
sudo usermod -aG adm vncuser(需重新登录生效)


✅ 总结

通过以上步骤,你已构建一个:

  • 安全:普通用户运行,独立 VNC 密码认证
  • 稳定:systemd 管理,崩溃自动重启
  • 功能完整:UKUI 全组件加载(面板、通知、蓝牙、电源等)
  • 光标可靠:xsetroot 修复鼠标消失问题
  • 开机自启:linger + systemd user service 实现无人值守启动

的 企业级 VNC 远程桌面解决方案,完美适配 麒麟高级服务器操作系统 V11。


📝 文档生成时间:2026年2月1日
🏁 适用版本:Kylin Advanced Server OS V11 + TigerVNC 1.13+ + UKUI 3.x


赞(0)
未经允许不得转载:网硕互联帮助中心 » 麒麟高级服务器操作系统 V11 中安装与配置 TigerVNC(支持 UKUI 桌面)操作指南
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!